Skip to main content

Endpoints

GET

Retrieve action items

POST

Create action item

PATCH

Update action item

DELETE

Delete action item

POST Batch

Create up to 50

Get Action Items

GET /v1/dev/user/action-items

Retrieve your action items with optional filtering

Query Parameters

ParameterTypeDefaultDescription
limitinteger100Maximum number of items to return
offsetinteger0Number of items to skip
completedboolean-Filter by completion status
conversation_idstring-Filter by conversation ID
start_datedatetime-Filter by creation start date (inclusive)
end_datedatetime-Filter by creation end date (inclusive)
curl -H "Authorization: Bearer $API_KEY" \
  "https://api.omi.me/v1/dev/user/action-items?completed=false&limit=50"

Response Example

[
  {
    "id": "action_101",
    "description": "Review budget proposal",
    "completed": false,
    "created_at": "2025-01-20T10:15:00Z",
    "updated_at": "2025-01-20T10:15:00Z",
    "due_at": null,
    "completed_at": null,
    "conversation_id": "conv_202"
  },
  {
    "id": "action_102",
    "description": "Call dentist for appointment",
    "completed": true,
    "created_at": "2025-01-19T14:00:00Z",
    "updated_at": "2025-01-20T09:00:00Z",
    "due_at": "2025-01-25T00:00:00Z",
    "completed_at": "2025-01-20T09:00:00Z",
    "conversation_id": null
  }
]
FieldTypeDescription
idstringUnique identifier
descriptionstringThe action item text
completedbooleanWhether the item is completed
created_atdatetimeWhen the item was created
updated_atdatetimeWhen the item was last updated
due_atdatetimeDue date (null if not set)
completed_atdatetimeWhen completed (null if not completed)
conversation_idstringAssociated conversation ID (null for standalone items)

Create Action Item

POST /v1/dev/user/action-items

Create a new action item (task/to-do)

Request Body

ParameterTypeRequiredDescription
descriptionstringYesThe action item description (1-500 characters)
completedbooleanNoWhether completed (default: false)
due_atdatetimeNoDue date in ISO 8601 format with timezone
curl -X POST "https://api.omi.me/v1/dev/user/action-items" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Review pull request #123",
    "completed": false,
    "due_at": "2025-12-08T15:00:00+00:00"
  }'

Response Example

{
  "id": "action_abc123",
  "description": "Review pull request #123",
  "completed": false,
  "created_at": "2025-12-06T10:30:00Z",
  "updated_at": "2025-12-06T10:30:00Z",
  "due_at": "2025-12-08T15:00:00+00:00",
  "completed_at": null,
  "conversation_id": null
}
Push notifications are automatically sent to the Omi app if a due_at date is provided.

Create Action Items (Batch)

POST /v1/dev/user/action-items/batch

Create multiple action items in a single request (max 50)

Request Body

ParameterTypeRequiredDescription
action_itemsarrayYesList of action item objects (max 50)
Each action item object accepts the same fields as the single create endpoint.
curl -X POST "https://api.omi.me/v1/dev/user/action-items/batch" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "action_items": [
      {"description": "Review Q1 report", "due_at": "2025-12-10T17:00:00Z"},
      {"description": "Schedule team meeting"}
    ]
  }'

Response Example

{
  "action_items": [
    { "id": "action_001", "description": "Review Q1 report", ... },
    { "id": "action_002", "description": "Schedule team meeting", ... }
  ],
  "created_count": 2
}

Update Action Item

PATCH /v1/dev/user/action-items/{action_item_id}

Update an action item’s description, completion status, or due date

Path Parameters

ParameterTypeDescription
action_item_idstringThe ID of the action item to update

Request Body

ParameterTypeRequiredDescription
descriptionstringNoNew description (1-500 characters)
completedbooleanNoNew completion status
due_atdatetimeNoNew due date (ISO 8601 format)
At least one field must be provided. Setting completed: true automatically sets completed_at.
curl -X PATCH "https://api.omi.me/v1/dev/user/action-items/action_abc123" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "completed": true
  }'

Response Example

{
  "id": "action_abc123",
  "description": "Review pull request #123",
  "completed": true,
  "created_at": "2025-12-06T10:30:00Z",
  "updated_at": "2025-12-25T14:00:00Z",
  "due_at": "2025-12-08T15:00:00+00:00",
  "completed_at": "2025-12-25T14:00:00Z",
  "conversation_id": null
}
When updating due_at, a push notification is sent to the Omi app to remind the user.

Delete Action Item

DELETE /v1/dev/user/action-items/{action_item_id}

Delete an action item permanently

Path Parameters

ParameterTypeDescription
action_item_idstringThe ID of the action item to delete
curl -X DELETE "https://api.omi.me/v1/dev/user/action-items/action_abc123" \
  -H "Authorization: Bearer $API_KEY"

Response Example

{
  "success": true
}
This action is permanent. Deleted action items cannot be recovered.

Use Case: Import Tasks

Import tasks from an external task management system into Omi:
import requests

API_KEY = "omi_dev_your_api_key"

# Your tasks from another app
external_tasks = [
    {"title": "Complete project proposal", "due": "2025-12-15T10:00:00Z", "done": False},
    {"title": "Send weekly report", "due": "2025-12-12T17:00:00Z", "done": False},
    {"title": "Review team feedback", "due": None, "done": True}
]

# Convert to Omi action items format
action_items = [
    {
        "description": task["title"],
        "due_at": task["due"],
        "completed": task["done"]
    }
    for task in external_tasks
]

# Create batch
response = requests.post(
    "https://api.omi.me/v1/dev/user/action-items/batch",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={"action_items": action_items}
)

print(f"Imported {response.json()['created_count']} action items")

Use Case: Get Pending Tasks

# Get all incomplete action items
curl -H "Authorization: Bearer $API_KEY" \
  "https://api.omi.me/v1/dev/user/action-items?completed=false"