Skip to content
Get started

Omni AI

ModelsExpand Collapse
ActionButton object { buttonId, label, prompt, structuredAction }

Button metadata shared by chart and suggested-actions payloads.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional PromptButtonAction { prompt }

Follow-up prompt to submit as the next user message.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional StructuredActionButtonAction { actionId }

Structured action in the same message to execute on click.

actionId: optional string

UUID of a structured_action content part in the same message.

formatuuid
ChartPayload object { chartId, actionButtons, dataChart, symbolChart }

Typed chart payload rendered inline in assistant content.

chartId: string

Stable chart identifier scoped to the content part.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Buttons associated with this chart.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional PromptButtonAction { prompt }

Follow-up prompt to submit as the next user message.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional StructuredActionButtonAction { actionId }

Structured action in the same message to execute on click.

actionId: optional string

UUID of a structured_action content part in the same message.

formatuuid
dataChart: optional DataChart { series }

Explicit series-driven chart definition.

series: optional array of ChartSeries { name, points }
name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
symbolChart: optional SymbolChart { symbol, timeframe }

Symbol-driven chart definition.

symbol: string
timeframe: optional string
ChartPoint object { x, y }

Single chart coordinate.

x: string
y: number
ChartSeries object { name, points }

Named data series within a chart.

name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
ContentPartChartPayload object { payload }

Chart payload content part.

payload: ChartPayload { chartId, actionButtons, dataChart, symbolChart }

Typed chart payload rendered inline in assistant content.

chartId: string

Stable chart identifier scoped to the content part.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Buttons associated with this chart.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional PromptButtonAction { prompt }

Follow-up prompt to submit as the next user message.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional StructuredActionButtonAction { actionId }

Structured action in the same message to execute on click.

actionId: optional string

UUID of a structured_action content part in the same message.

formatuuid
dataChart: optional DataChart { series }

Explicit series-driven chart definition.

series: optional array of ChartSeries { name, points }
name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
symbolChart: optional SymbolChart { symbol, timeframe }

Symbol-driven chart definition.

symbol: string
timeframe: optional string
ContentPartCustomPayload object { payload }

Escape-hatch custom payload content part.

payload: unknown
ContentPartStructuredActionPayload object { action, action_id }

Structured action content part.

Structured actions that Omni AI can return to clients.

These actions provide machine-readable instructions for the client to execute, such as prefilling an order ticket, opening a chart, or navigating to a route.

One of the following:
PrefillOrder object { prefill_order }

Prefill an order ticket for user confirmation

prefill_order: PrefillOrderAction

Prefill an order ticket for user confirmation

One of the following:
PrefillNewOrderAction = PrefillNewOrderAction { orders }

Create one or more new orders.

action_type: "NEW"
PrefillCancelOrderAction = PrefillCancelOrderAction { orders }

Cancel one or more existing orders.

action_type: "CANCEL"
OpenChart object { open_chart }

Open a chart for a symbol

open_chart: OpenChartAction { symbol, extras, timeframe }

Open a chart for a symbol

symbol: string

Trading symbol to chart

extras: optional unknown

Additional chart configuration (indicators, overlays, etc.)

timeframe: optional string

Chart timeframe (e.g., “1D”, “1W”, “1M”, “3M”, “1Y”, “5Y”)

OpenScreener object { open_screener }

Open a stock screener with filters

open_screener: OpenScreenerAction { filters, field_filter, page_size, 2 more }

Open a stock screener with filters

filters: array of ScreenerFilter { field, operator, value }

Filter criteria for the screener

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

field_filter: optional array of string

Optional field/column selection for screener results.

page_size: optional number

Optional page size.

formatint32
sort_by: optional string

Optional sort field for screener rows.

sort_direction: optional string

Optional sort direction (ASC or DESC).

OpenEntitlementConsent object { open_entitlement_consent }

Open entitlement consent flow

Open entitlement consent flow

Stable entitlement agreement family key.

action_id: string
ContentPartSuggestedActionsPayload object { payload }

Suggested actions payload content part.

payload: SuggestedActionsPayload { actionButtons }

Suggested follow-up buttons rendered at the end of an assistant message.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Ordered message-level buttons.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional PromptButtonAction { prompt }

Follow-up prompt to submit as the next user message.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional StructuredActionButtonAction { actionId }

Structured action in the same message to execute on click.

actionId: optional string

UUID of a structured_action content part in the same message.

formatuuid
ContentPartTextPayload object { text }

Text content part.

text: string
ContentPartThinkingPayload object { thoughts }

Thinking content part shown on dynamic response polling.

thoughts: array of string
DataChart object { series }

Chart represented by explicit data series.

series: optional array of ChartSeries { name, points }
name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
OpenChartAction object { symbol, extras, timeframe }

Action to open a chart for a symbol.

symbol: string

Trading symbol to chart

extras: optional unknown

Additional chart configuration (indicators, overlays, etc.)

timeframe: optional string

Chart timeframe (e.g., “1D”, “1W”, “1M”, “3M”, “1Y”, “5Y”)

Action to open entitlement consent flow for one or more accounts.

Stable entitlement agreement family key.

OpenScreenerAction object { filters, field_filter, page_size, 2 more }

Action to open a stock screener with filters.

filters: array of ScreenerFilter { field, operator, value }

Filter criteria for the screener

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

field_filter: optional array of string

Optional field/column selection for screener results.

page_size: optional number

Optional page size.

formatint32
sort_by: optional string

Optional sort field for screener rows.

sort_direction: optional string

Optional sort direction (ASC or DESC).

PrefillCancelOrderAction object { orders }

Cancel-order prefill action.

orders: array of CancelOrderRequest { account_id, order_id }

Orders to cancel using the same identifiers required by the cancel-order API.

account_id: number

Account ID (from path parameter)

formatint64
order_id: string

Order ID to cancel (from path parameter)

PrefillNewOrderAction object { orders }

New-order prefill action.

orders: array of NewOrderRequest { instrument_type, order_type, quantity, 13 more }

Orders to prefill using the same shape accepted by the orders API.

instrument_type: SecurityType

Type of security

One of the following:
"COMMON_STOCK"
"PREFERRED_STOCK"
"OPTION"
"CASH"
"OTHER"
order_type: RequestOrderType

Type of order

One of the following:
"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
quantity: string

Quantity to trade. For COMMON_STOCK: shares (may be fractional if supported). For OPTION (single-leg): contracts (must be an integer)

side: Side

Side of the order

One of the following:
"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
time_in_force: RequestTimeInForce

Time in force

One of the following:
"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
id: optional string

Optional client-provided unique ID (idempotency). Required to be unique per account.

maxLength64
expires_at: optional string

The timestamp when the order should expire (UTC). Required when time_in_force is GOOD_TILL_DATE.

formatdate-time
extended_hours: optional boolean

Allow trading outside regular trading hours. Some brokers disallow options outside RTH.

instrument_id: optional InstrumentIDOrSymbol

OEMS instrument UUID

formatuuid
limit_offset: optional string

Limit offset for trailing stop-limit orders (signed)

limit_price: optional string

Limit price (required for LIMIT and STOP_LIMIT orders)

position_effect: optional PositionEffect

Required when instrument_type is OPTION. Specifies whether the order opens or closes a position.

One of the following:
"OPEN"
"CLOSE"
stop_price: optional string

Stop price (required for STOP and STOP_LIMIT orders)

symbol: optional string

Trading symbol. For equities, use the ticker symbol (e.g., “AAPL”). For options, use the OSI symbol (e.g., “AAPL 250117C00190000”). Either symbol or instrument_id must be provided.

trailing_offset: optional string

Trailing offset amount (required for trailing orders)

trailing_offset_type: optional TrailingOffsetType

Trailing offset type (PRICE or PERCENT_BPS)

One of the following:
"PRICE"
"BPS"
PrefillOrderAction = PrefillNewOrderAction { orders } or PrefillCancelOrderAction { orders }

Action to prefill order details for user confirmation.

The user must review and authorize the order before submission to the trading API. This action provides parsed order data that can be used to prefill an order ticket UI or submitted directly via the orders API after user confirmation.

One of the following:
PrefillNewOrderAction = PrefillNewOrderAction { orders }

Create one or more new orders.

action_type: "NEW"
PrefillCancelOrderAction = PrefillCancelOrderAction { orders }

Cancel one or more existing orders.

action_type: "CANCEL"
PromptButtonAction object { prompt }

Prompt-style button behavior.

prompt: string

Prompt text to submit as the next user turn.

ScreenerFilter object { field, operator, value }

A single filter criterion for the screener.

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

StructuredAction = object { prefill_order } or object { open_chart } or object { open_screener } or object { open_entitlement_consent }

Structured actions that Omni AI can return to clients.

These actions provide machine-readable instructions for the client to execute, such as prefilling an order ticket, opening a chart, or navigating to a route.

One of the following:
PrefillOrder object { prefill_order }

Prefill an order ticket for user confirmation

prefill_order: PrefillOrderAction

Prefill an order ticket for user confirmation

One of the following:
PrefillNewOrderAction = PrefillNewOrderAction { orders }

Create one or more new orders.

action_type: "NEW"
PrefillCancelOrderAction = PrefillCancelOrderAction { orders }

Cancel one or more existing orders.

action_type: "CANCEL"
OpenChart object { open_chart }

Open a chart for a symbol

open_chart: OpenChartAction { symbol, extras, timeframe }

Open a chart for a symbol

symbol: string

Trading symbol to chart

extras: optional unknown

Additional chart configuration (indicators, overlays, etc.)

timeframe: optional string

Chart timeframe (e.g., “1D”, “1W”, “1M”, “3M”, “1Y”, “5Y”)

OpenScreener object { open_screener }

Open a stock screener with filters

open_screener: OpenScreenerAction { filters, field_filter, page_size, 2 more }

Open a stock screener with filters

filters: array of ScreenerFilter { field, operator, value }

Filter criteria for the screener

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

field_filter: optional array of string

Optional field/column selection for screener results.

page_size: optional number

Optional page size.

formatint32
sort_by: optional string

Optional sort field for screener rows.

sort_direction: optional string

Optional sort direction (ASC or DESC).

OpenEntitlementConsent object { open_entitlement_consent }

Open entitlement consent flow

Open entitlement consent flow

Stable entitlement agreement family key.

StructuredActionButtonAction object { actionId }

Structured-action button behavior.

actionId: optional string

UUID of a structured_action content part in the same message.

formatuuid
SuggestedActionsPayload object { actionButtons }

Suggested follow-up buttons rendered at the end of an assistant message.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Ordered message-level buttons.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional PromptButtonAction { prompt }

Follow-up prompt to submit as the next user message.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional StructuredActionButtonAction { actionId }

Structured action in the same message to execute on click.

actionId: optional string

UUID of a structured_action content part in the same message.

formatuuid
SymbolChart object { symbol, timeframe }

Chart for a single symbol and timeframe.

symbol: string
timeframe: optional string

Omni AIEntitlements

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use trading_account_ids.

Get Entitlements
GET/v1/omni-ai/entitlements
Create Entitlements
POST/v1/omni-ai/entitlements
Delete Entitlement
DELETE/v1/omni-ai/entitlements/{entitlement_id}
Get Entitlement Agreements
GET/v1/omni-ai/entitlement-agreements
ModelsExpand Collapse
DeleteEntitlementResponse object { entitlement_id, revoked }
entitlement_id: string
revoked: boolean
EntitlementAgreementKey = "omni_account_data_access"

Stable entitlement agreement family key.

EntitlementAgreementResource object { agreement_id, agreement_key, document_content, 4 more }
agreement_id: string

Stable entitlement agreement family key.

document_content: string
document_sha256: string
entitlement_codes: array of EntitlementCode
title: string
version: number
EntitlementAgreementResourceList = array of EntitlementAgreementResource { agreement_id, agreement_key, document_content, 4 more }
agreement_id: string

Stable entitlement agreement family key.

document_content: string
document_sha256: string
entitlement_codes: array of EntitlementCode
title: string
version: number
EntitlementCode = "omni.account_data"

Stable entitlement code granted by an agreement.

EntitlementResource object { agreement_id, entitlement_code, entitlement_id, 2 more }
agreement_id: string
entitlement_code: EntitlementCode

Stable entitlement code granted by an agreement.

entitlement_id: string
granted_at: string
trading_account_id: number
EntitlementResourceList = array of EntitlementResource { agreement_id, entitlement_code, entitlement_id, 2 more }
agreement_id: string
entitlement_code: EntitlementCode

Stable entitlement code granted by an agreement.

entitlement_id: string
granted_at: string
trading_account_id: number
EntitlementGetEntitlementsResponse = BaseResponse { metadata, error }
data: EntitlementResourceList { agreement_id, entitlement_code, entitlement_id, 2 more }
agreement_id: string
entitlement_code: EntitlementCode

Stable entitlement code granted by an agreement.

entitlement_id: string
granted_at: string
trading_account_id: number
EntitlementCreateEntitlementsResponse = BaseResponse { metadata, error }
data: EntitlementResourceList { agreement_id, entitlement_code, entitlement_id, 2 more }
agreement_id: string
entitlement_code: EntitlementCode

Stable entitlement code granted by an agreement.

entitlement_id: string
granted_at: string
trading_account_id: number
EntitlementDeleteEntitlementResponse = BaseResponse { metadata, error }
data: DeleteEntitlementResponse { entitlement_id, revoked }
entitlement_id: string
revoked: boolean
EntitlementGetEntitlementAgreementsResponse = BaseResponse { metadata, error }
data: EntitlementAgreementResourceList { agreement_id, agreement_key, document_content, 4 more }
agreement_id: string

Stable entitlement agreement family key.

document_content: string
document_sha256: string
entitlement_codes: array of EntitlementCode
title: string
version: number

Omni AIMessages

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use trading_account_ids.

Get Message By ID
GET/v1/omni-ai/messages/{message_id}
Submit Feedback
POST/v1/omni-ai/messages/{message_id}/feedback
ModelsExpand Collapse
CreateFeedbackResponse object { created_at, feedback_id }
created_at: string
feedback_id: optional string
MessageGetMessageByIDResponse = BaseResponse { metadata, error }
data: Message { id, content, created_at, 5 more }

Final immutable message.

id: string
content: MessageContent { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
One of the following:

Text content part.

type: "text"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
created_at: string

Immutable terminal outcome for a finalized assistant message.

One of the following:
"completed"
"errored"
"canceled"

Finalized message role in the public contract.

One of the following:
"USER"
"ASSISTANT"
seq: number
thread_id: string
error: optional ErrorStatus { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
MessageSubmitFeedbackResponse = BaseResponse { metadata, error }
data: CreateFeedbackResponse { created_at, feedback_id }
created_at: string
feedback_id: optional string

Omni AIResponses

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use trading_account_ids.

Get Response By ID
GET/v1/omni-ai/responses/{response_id}
Cancel Response
DELETE/v1/omni-ai/responses/{response_id}
ModelsExpand Collapse
CancelResponsePayload object { canceled }
canceled: boolean
ErrorStatus object { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
Response object { id, status, thread_id, 4 more }

Dynamic pollable response.

id: string

Dynamic lifecycle status for a pollable response.

One of the following:
"queued"
"running"
"succeeded"
"failed"
"canceled"
thread_id: string
user_message_id: string
content: optional ResponseContent { parts }

Dynamic response content container. May include thinking parts.

parts: array of ResponseContentPart
One of the following:

Text content part.

type: "text"

Thinking content part shown on dynamic response polling.

type: "thinking"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
error: optional ErrorStatus { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
output_message_id: optional string
ResponseContent object { parts }

Dynamic response content container. May include thinking parts.

parts: array of ResponseContentPart
One of the following:

Text content part.

type: "text"

Thinking content part shown on dynamic response polling.

type: "thinking"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
ResponseContentPart = ContentPartTextPayload { text } or ContentPartThinkingPayload { thoughts } or ContentPartStructuredActionPayload { action, action_id } or 3 more

Dynamic content part visible on a pollable response.

One of the following:

Text content part.

type: "text"

Thinking content part shown on dynamic response polling.

type: "thinking"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
ResponseStatus = "queued" or "running" or "succeeded" or 2 more

Dynamic lifecycle status for a pollable response.

One of the following:
"queued"
"running"
"succeeded"
"failed"
"canceled"
ResponseGetResponseByIDResponse = BaseResponse { metadata, error }
data: Response { id, status, thread_id, 4 more }

Dynamic pollable response.

id: string

Dynamic lifecycle status for a pollable response.

One of the following:
"queued"
"running"
"succeeded"
"failed"
"canceled"
thread_id: string
user_message_id: string
content: optional ResponseContent { parts }

Dynamic response content container. May include thinking parts.

parts: array of ResponseContentPart
One of the following:

Text content part.

type: "text"

Thinking content part shown on dynamic response polling.

type: "thinking"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
error: optional ErrorStatus { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
output_message_id: optional string
ResponseCancelResponseResponse = BaseResponse { metadata, error }
data: CancelResponsePayload { canceled }
canceled: boolean

Omni AIThreads

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use trading_account_ids.

Get Threads
GET/v1/omni-ai/threads
Get Thread By ID
GET/v1/omni-ai/threads/{thread_id}
Create Thread
POST/v1/omni-ai/threads
Get Thread Response
GET/v1/omni-ai/threads/{thread_id}/response
Get Messages
GET/v1/omni-ai/threads/{thread_id}/messages
Create Message
POST/v1/omni-ai/threads/{thread_id}/messages
ModelsExpand Collapse
CreateMessageResponse object { response_id, thread_id, user_message_id }

Response payload for continuing a thread with a new message.

response_id: string
thread_id: string
user_message_id: string
CreateThreadResponse object { response_id, thread_id, user_message_id }

Response payload for thread creation.

response_id: string
thread_id: string
user_message_id: string
Message object { id, content, created_at, 5 more }

Final immutable message.

id: string
content: MessageContent { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
One of the following:

Text content part.

type: "text"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
created_at: string

Immutable terminal outcome for a finalized assistant message.

One of the following:
"completed"
"errored"
"canceled"

Finalized message role in the public contract.

One of the following:
"USER"
"ASSISTANT"
seq: number
thread_id: string
error: optional ErrorStatus { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
MessageContent object { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
One of the following:

Text content part.

type: "text"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
MessageContentPart = ContentPartTextPayload { text } or ContentPartStructuredActionPayload { action, action_id } or ContentPartChartPayload { payload } or 2 more

Final immutable content part visible on persisted messages.

One of the following:

Text content part.

type: "text"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
MessageList = array of Message { id, content, created_at, 5 more }
id: string
content: MessageContent { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
One of the following:

Text content part.

type: "text"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
created_at: string

Immutable terminal outcome for a finalized assistant message.

One of the following:
"completed"
"errored"
"canceled"

Finalized message role in the public contract.

One of the following:
"USER"
"ASSISTANT"
seq: number
thread_id: string
error: optional ErrorStatus { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
MessageOutcome = "completed" or "errored" or "canceled"

Immutable terminal outcome for a finalized assistant message.

One of the following:
"completed"
"errored"
"canceled"
MessageRole = "USER" or "ASSISTANT"

Finalized message role in the public contract.

One of the following:
"USER"
"ASSISTANT"
Thread object { id, created_at, title, updated_at }

Thread metadata returned by list/get thread endpoints.

id: string
created_at: string
title: string
updated_at: string
ThreadList = array of Thread { id, created_at, title, updated_at }
id: string
created_at: string
title: string
updated_at: string
ThreadGetThreadsResponse = BaseResponse { metadata, error }
data: ThreadList { id, created_at, title, updated_at }
id: string
created_at: string
title: string
updated_at: string
ThreadGetThreadByIDResponse = BaseResponse { metadata, error }
data: Thread { id, created_at, title, updated_at }

Thread metadata returned by list/get thread endpoints.

id: string
created_at: string
title: string
updated_at: string
ThreadCreateThreadResponse = BaseResponse { metadata, error }
data: CreateThreadResponse { response_id, thread_id, user_message_id }

Response payload for thread creation.

response_id: string
thread_id: string
user_message_id: string
ThreadGetThreadResponseResponse = BaseResponse { metadata, error }
data: Response { id, status, thread_id, 4 more }

Dynamic pollable response.

id: string

Dynamic lifecycle status for a pollable response.

One of the following:
"queued"
"running"
"succeeded"
"failed"
"canceled"
thread_id: string
user_message_id: string
content: optional ResponseContent { parts }

Dynamic response content container. May include thinking parts.

parts: array of ResponseContentPart
One of the following:

Text content part.

type: "text"

Thinking content part shown on dynamic response polling.

type: "thinking"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
error: optional ErrorStatus { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
output_message_id: optional string
ThreadGetMessagesResponse = BaseResponse { metadata, error }
data: MessageList { id, content, created_at, 5 more }
id: string
content: MessageContent { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
One of the following:

Text content part.

type: "text"
ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"

Chart payload content part.

type: "chart"

Suggested actions payload content part.

type: "suggested_actions"

Escape-hatch custom payload content part.

type: "custom"
created_at: string

Immutable terminal outcome for a finalized assistant message.

One of the following:
"completed"
"errored"
"canceled"

Finalized message role in the public contract.

One of the following:
"USER"
"ASSISTANT"
seq: number
thread_id: string
error: optional ErrorStatus { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown
ThreadCreateMessageResponse = BaseResponse { metadata, error }
data: CreateMessageResponse { response_id, thread_id, user_message_id }

Response payload for continuing a thread with a new message.

response_id: string
thread_id: string
user_message_id: string