Skip to main content
POST
Assist
Use this endpoint for every Assist turn. Create once, then pass the returned assistId for follow-ups. Read state with Get assist request. The Plan, Coordinate, and Update guides explain the full lifecycle. Authenticate each request with a Darwin API key in x-api-key or Authorization: Bearer. Text messages have { "type": "text", "text": "..." }. Copy IDs from your responses. Never manufacture user consent: the exact typed approvals in Coordinate record separate decisions by the authorized person. Guest tokens cannot authorize execution or payment. Application-only keys cannot act as a person. All commands return the same Assist state shape. An accepted command is not proof of completed provider work. Budget and execution commands keep their original live-scope, ownership, idempotency, quote-expiry, wallet, and settlement checks.

Authorizations

x-api-key
string
header
required

Headers

X-Assist-Token
string
Idempotency-Key
string

Body

application/json
type
string
required
Allowed value: "turn"
clientMessageId
string
required
Required string length: 1 - 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9_.:-]*$
message
object
required
assistId
string
Pattern: ^asst_[a-f0-9-]{36}$
mode
default:auto

Modes: search, live_search, execute, route, chat. Omit for Auto. Execute coordinates work; Route hands over direct threads. Approvals remain required.

Available options:
search,
live_search,
execute,
route,
chat
planOnly
boolean

When true, propose work without starting agents. Use with coordinate or automatic routing. A later turn may approve the saved plan; payment and operation approvals remain separate.

context
object[]
Maximum array length: 10
attachments
object[]
Maximum array length: 10
externalUserId
string
Required string length: 1 - 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9_.:-]*$
userId
string
Required string length: 1 - 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9_.:-]*$
memoryAgentId
string
Required string length: 1 - 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9_.:-]*$
userMemory
string
Maximum string length: 4000

Response

Current Assist conversation, revisions, quote, funding, run and previous runs. Only an explicitly authorized execute request starts work.

assistId
string
required
Pattern: ^asst_[a-f0-9-]{36}$
status
enum<string>
required
Available options:
planning,
ready,
running,
paused,
completed,
cancelled
goal
string
required
messages
object[]
required
revisions
object[]
required
Maximum array length: 32
latestRevisionId
string | null
required
Pattern: ^arev_[a-f0-9-]{36}$
quote
object | null
required
funding
object | null
required
run
object | null
required
previousRuns
object[]
required
Maximum array length: 32
createdAt
string<date-time>
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
updatedAt
string<date-time>
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
assistToken
string
conversation
object
Last modified on October 27, 2026