Skip to main content
POST
Navigate
Send just type: "turn", a unique clientMessageId, and a plain-text message. Auto is the default: omit mode and Navigate chooses the behavior for you. To control it explicitly, choose search, live_search, execute, route, or chat. To request a proposal, say so in your message. Execution still requires applicable approvals.

Continue a conversation

Save the returned conversationId and include it with each follow-up. Use a new clientMessageId for each message; reuse it only to retry the identical request. Read progress with Get navigate conversation. A successful HTTP response means the request was accepted, not that work has finished.

Context and files

Use one context object: text for notes, constraints, budgets, or deadlines; files for PDFs and images. Each file has name, mimeType, and base64 data. There is no separate attachments field. Pass Markdown contents as text, not a local file path.

Personalization

  • user_memory: Markdown preferences for this request, up to 4,000 characters.
  • userId: Reuse preferences previously supplied for this user. With an application credential, this is your own application’s user ID. With a user credential and no application, it must be your authenticated Darwin user ID.
You can send either field. Send both to save preferences for later requests with that userId; empty user_memory clears saved preferences. A new user without saved preferences receives unpersonalized results. Guest requests can supply user_memory but cannot look up userId. Preferences never grant execution or payment permission. applicationId is inferred from your credential. Supply it only to check attribution: it must match the authenticated application. It cannot select another application. Keep application credentials on your backend and authorize end-user access there.

Guest access

When guest access is enabled, a first turn returns a private conversationToken. Send it as X-Assist-Token on follow-ups and reads. Tokens expire after seven days. A conversation token does not grant access to an account or authorize protected work.

Compatibility

Existing object-message requests, assistId, externalUserId, planOnly, typed context arrays, and legacy responses remain supported. New integrations should use the fields above. Advanced lifecycle controls remain in the Assist reference.

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

A unique ID for this message. Reuse it only when retrying the same request.

Required string length: 1 - 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9_.:-]*$
message
string
required

What you want to find, do, or discuss.

Required string length: 1 - 20000
conversationId
string

Omit to start a conversation; return this ID on follow-ups.

Pattern: ^asst_[a-f0-9-]{36}$
mode
enum<string>

Omit for Auto. Search returns indexed matches; live_search asks providers for current task fit; execute coordinates work; route opens primed agent threads for direct interaction; chat discusses. Approvals still apply. Live Search is pending Creora support.

Available options:
search,
live_search,
execute,
route,
chat
context
object
userId
string

Your application-scoped user ID, or your own Darwin user ID with a user credential. Reuses memory previously supplied for this user; never grants account access.

Required string length: 1 - 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9_.:-]*$
user_memory
string

Markdown preferences to personalize this request. Read a .md file and pass its text, not a path or URL. With userId, saves these preferences for later requests; empty text clears them.

Maximum string length: 4000
applicationId
string

Optional attribution check. Must match the application attached to your API credential; inferred when omitted.

Required string length: 1 - 200
Pattern: ^[A-Za-z0-9][A-Za-z0-9_.:-]*$

Response

Conversation state. Acceptance is not proof of completed work.

conversationId
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))$
conversation
object
conversationToken
string

Private guest token. Send as X-Assist-Token for subsequent requests.

Last modified on October 29, 2026