User API
Tasks
Create, list, and manage tasks
/tasksList tasks
Query parameters
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"tasks": [
{
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
]
}/tasksCreate a task
Request body
lowmediumhighResponses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"title": "string",
"assistant": "string"
}'Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}Get a task with activities and executions
Path parameters
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z",
"activities": [
null
],
"executions": [
null
]
}
}/tasks/{taskId}Update a task
Path parameters
Request body
pendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setscheduledcompleteddone_user_markederrorarchivedabandoneddeferred_accessfailed_accessautotime-boxedmanualnulllowmediumhighResponses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"assistant": "string",
"type": "string",
"status": "pending",
"order": 0
}'Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}Delete a task
Path parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"task": {
"id": "string"
}
}/tasks/{taskId}/assigneesUpdate task assignees
Path parameters
Request body
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/assignees' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"emails": [
"string"
]
}'Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}/feedbackSubmit task feedback
Path parameters
Request body
likedislikenullResponses
trueRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/feedback' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"status": "like"
}'Response
{
"ok": true,
"feedback": {
"success": true,
"taskId": "string",
"status": "string",
"message": "string"
}
}/tasks/{taskId}/stopStop task execution
Path parameters
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/stop' \
-X POST \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}/mark-doneMark task as done by user (stops agent, sets done_user_marked status)
Path parameters
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/mark-done' \
-X POST \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}/mark-not-doneReopen a completed/done_user_marked task and force-wake Prime with a reason (same mechanism as an alarm wake)
Path parameters
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/mark-not-done' \
-X POST \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}/approveApprove an agent-created task (flips approvalGate to approved and enqueues execution)
Path parameters
Request body
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/approve' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"reason": "string"
}'Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}/declineDecline an agent-created task (flips approvalGate to declined; task never runs)
Path parameters
Request body
Responses
trueuserassistantcontactuserassistantcontactuserassistantcontacttemplatetaskreminderrecipientpendingexecutingon_holdpausedawaiting_user_inputawaiting_non_user_responsealarm_setsubtasks_runningscheduledmessage_receivedconversationcompleteddone_user_markederrorarchivedabandonedhandled_by_otherdeferred_accessfailed_accesscredits_blockedchatnewTaskUItask_activityemailslackteamssmswhatsappimessagephonediscordtelegramworkflow_spawnedunknownnulluserassistantuserassistantnullpendingcompletedcancellednormalinternallowmediumhighlowmediumhighuseragentpending_user_approvalapproveddeclinedportalemail_linkpushsmsinboxapprovedeclineautotime-boxedmanualnullautotime-boxedmanualdeniednullsetfiredcancelledusersubtask_fallbacknullprimeautonullto_backupto_primaryactivateendseizerevertwidenarrowopensubmittedpending_approvaltime_boxedapprovedexecutingexecutedcancelledrejectedfailedexecutecancelnullautotime-boxedmanualnullexecutecancelnullauto_sentmanually_approvedauto_sent_expirymanually_deniedauto_cancelled_expiryfailedperiodicunlimitedRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/decline' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"reason": "string"
}'Response
{
"ok": true,
"task": {
"id": "string",
"status": "pending",
"title": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/approve-batchApprove multiple agent-created tasks in one request
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/tasks/approve-batch' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"taskIds": [
"string"
]
}'Response
{
"ok": true,
"batch": {
"approved": [
"string"
],
"failed": [
{
"taskId": "string",
"error": "string"
}
]
}
}/tasks/{taskId}/processProcess task (trigger AI)
Path parameters
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/process' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"message": "string",
"files": [
null
]
}'Response
{
"ok": true,
"process": {
"success": true,
"taskId": "string"
}
}/tasks/{taskId}/seenMark task as seen (updates lastSeenAt, clears unread)
Path parameters
Request body
Responses
trueRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/seen' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"lastSeenAt": "string"
}'Response
{
"ok": true,
"lastSeen": {
"lastSeenAt": "2025-01-15T10:30:00.000Z"
}
}/tasks/{taskId}/usagePer-run usage breakdown for a task (Trace rollup grouped by run + model)
Path parameters
Responses
Request
curl 'https://app.openassistant.us/api/tasks/<taskId>/usage' \
-H "Authorization: Bearer ak_live_..."Response
{
"total": {
"inputTokens": 0,
"outputTokens": 0,
"cacheReadTokens": 0,
"cacheCreationTokens": 0,
"totalTokens": 0,
"costUsd": 0
},
"rows": [
{
"runId": "string",
"runType": "string",
"runLabel": "string",
"seq": 0,
"model": "string",
"provider": "string"
}
]
}/tasks/{taskId}/scheduling-snapshotAggregated scheduling state for the live Scheduling Engine UI (organizer sees full data; non-organizers see redacted participant rows)
Path parameters
Responses
truependingsubmittedavailableno_slotsdegradedfailednonelowmediumhighclean_overlapsingle_yieldmulti_yieldRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/scheduling-snapshot' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"snapshot": {
"parentTaskId": "string",
"meetingId": "string",
"meetingWindow": {
"startsAt": "2025-01-15T10:30:00.000Z",
"endsAt": "2025-01-15T10:30:00.000Z"
},
"viewerIsOrganizer": true,
"totalRecipients": 0,
"submittedCount": 0
}
}/tasks/{taskId}/scheduling-previewLive SlotSolver preview with currently-submitted recipient data (organizer only)
Path parameters
Request body
Responses
truenonelowmediumhighclean_overlapsingle_yieldmulti_yieldRequest
curl 'https://app.openassistant.us/api/tasks/<taskId>/scheduling-preview' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"excludeEmails": [
"string"
]
}'Response
{
"ok": true,
"preview": {
"meetingId": "string",
"ranAt": "2025-01-15T10:30:00.000Z",
"hasCleanOverlap": true,
"noMatch": true,
"strategies": [
{
"id": "string",
"friction": "none",
"type": "clean_overlap",
"slot": {
"startsAt": null,
"endsAt": null,
"duration": null
},
"moves": [
null
],
"affectedParticipants": [
null
]
}
],
"participantCount": 0
}
}