DocsCloud SDK reference

BEEOS CLOUD / DEVELOPER REFERENCE

Appendix: object structures and enums

Every shared object structure and every enum of the Cloud SDK, with field tables, union variants, and the meaning of each allowed value.

This appendix defines the 171 named object structures and 75 enums that the method pages of the Cloud SDK refer to. In a field table, click a type name to jump to its structure here, and the link after a list of allowed values (or the "values" link of a long enum) to see each value on its own row. Descriptions are the OpenAPI document's; a field or value without one shows "—".

Object structures

SchemaKindUsed by
A2AAgentCardobjectA2A
A2AArtifactobjectA2A
A2ADataPartOutobjectA2A
A2AFilePartOutobjectA2A
A2AMessageobjectA2A
A2AOutputPartunionA2A
A2ATaskStatusobjectA2A
a2aTaskViewobjectA2A
A2ATextPartOutobjectA2A
ActiveConversationResponseobjectConversations
AgentAgentobjectAgents
agentBindDetailsWireobjectDevice bindings
agentBindWireobjectDevice bindings
AgentPageobjectAgents
AgentPatchobjectAgents
AgentResponseobjectAgents
AgentSkillobjectAgents
AgentSnapshotobjectAgents
agentTemplateCatalogViewobjectCatalog
ApprovalModeResultobjectConversations
ApprovalModeResultResponseobjectConversations
ApprovalModeSettingsobjectConversations
BindingobjectIdentity
BindingNativevariant structureIdentity
BindingWebvariant structureIdentity
bindRuntimeWireobjectDevice bindings
CancelConversationInputobjectConversations
CanvasSessionDocumentobjectInstances
CanvasShareobjectCanvases
CanvasSnapshotobjectCanvases
CanvasTicketClaimsobjectInstances
CatalogSpecobjectCatalog
CatalogSpecValueobjectCatalog
CatalogVariantobjectCatalog
ClearConversationReceiptobjectConversations
ClearConversationReceiptResponseobjectConversations
ClientSessionInputobjectIdentity
ClientSessionInputNativevariant structureIdentity
ClientSessionInputWebvariant structureIdentity
ClientSessionResponseobjectIdentity
CommandReceiptobjectConversations
CommandReceiptResponseobjectConversations
ConnectURLResponseobjectInstances
ConversationobjectConversations
ConversationPageobjectConversations
ConversationResponseobjectConversations
CreateConversationInputobjectConversations
CreateServerInstanceInputobjectInstances
DeletionobjectIdentity
DeletionAcceptedobjectIdentity
DeployModelobjectCatalog
DeployRegionobjectCatalog
DeviceBindingErrorResponseobject—
ErrorResponseobject—
ExternalUserIDstringIdentity
FileChatUploadContextobjectFiles
FileConfirmInputobjectFiles
FileFileobjectFiles
FileOriginobjectFiles
FilePageobjectFiles
FilePrepareUploadInputobjectFiles
FileResolutionobjectFiles
FileShareResponseobjectFiles
FileSummaryobjectFiles
FileTransferDescriptorobjectFiles
InstancePageobjectInstances
InstanceSummaryobjectInstances
InstanceTemplateobjectCatalog
InstanceTemplatePageobjectCatalog
JSONValueunionIdentity, Catalog, Instances, Messages, Responses, Harnesses, Automations, A2A
MessageobjectMessages
MessageContentAgentRefusevariant structureMessages
MessageContentAgentReplyvariant structureMessages
MessageContentChatCancelvariant structureMessages
MessageContentChatMessagevariant structureMessages
MessageContentDeviceCommandvariant structureMessages
MessageContentDeviceErrorvariant structureMessages
MessageEnvelopeobjectMessages
MessageEnvelopeResponseobjectMessages
MessagePageobjectMessages
MessagePartCustomvariant structureMessages
MessagePartFilevariant structureMessages
MessagePartSourcevariant structureMessages
MessagePartTextvariant structureMessages
MessagePartThinkingvariant structureMessages
MessagePartToolResultvariant structureMessages
MessagePartToolUsevariant structureMessages
ModelPageobjectCatalog
portalBindWireobjectDevice bindings
ProtoAutomationInputobjectAutomations
ProtoAutomationPatchobjectAutomations
ProtoAutomationRuleobjectAutomations
ProtoAutomationRunobjectAutomations
ProtoAutomationRunInputobjectAutomations
ProtoAutomationScheduleobjectAutomations
ProtoAutomationSessionobjectAutomations
ProtoAutomationTargetobjectAutomations
ProtoAutomationWebhookInputobjectAutomations
ProtoListAutomationRunsResponseobjectAutomations
ProtoListAutomationsResponseobjectAutomations
ProviderobjectCatalog
ProviderCapabilitiesobjectCatalog
ProviderPageobjectCatalog
RealtimeTicketHeaderobjectInstances
ReasoningResultobjectConversations
ReasoningResultResponseobjectConversations
ReasoningSettingsobjectConversations
RegionPageobjectCatalog
ReplyShareResponseobjectMessages
RuntimeExecResultobjectInstances
RuntimeInstanceResultobjectInstances
RuntimeInstanceStatusResultobjectInstances
RuntimeInstanceSummaryobjectInstances
RuntimeLLMobjectInstances
RuntimeLLMModelobjectInstances
RuntimeLLMProviderobjectInstances
RuntimeLLMProviderViewobjectInstances
RuntimeLLMViewobjectInstances
RuntimeMethodResponseobjectA2A
RuntimeOperationSummaryobjectInstances
RuntimeUpgradeJobobjectInstances
ServerUsageSummaryobjectUsage
SetConversationModelInputobjectConversations
TerminalSessionDocumentobjectInstances
TerminalTicketClaimsobjectInstances
UHPAnnotationobjectResponses
UHPCapabilitiesobjectCatalog
UHPContentPartobjectResponses
UHPContentPartOutputTextvariant structureResponses
UHPContentPartSummaryTextvariant structureResponses
UHPCreateResponseRequestobjectResponses
UHPDiscoveryobjectCatalog
UHPErrorobjectResponses
UHPErrorEnvelopeobject—
UHPEventobjectResponses
UHPEventAnnotationAddedvariant structureResponses
UHPEventApprovalvariant structureResponses
UHPEventContentPartvariant structureResponses
UHPEventErrorvariant structureResponses
UHPEventFunctionCallArgumentsDeltavariant structureResponses
UHPEventFunctionCallArgumentsDonevariant structureResponses
UHPEventOutputItemvariant structureResponses
UHPEventOutputTextDeltavariant structureResponses
UHPEventOutputTextDonevariant structureResponses
UHPEventQuestionvariant structureResponses
UHPEventReasoningSummaryPartvariant structureResponses
UHPEventReasoningSummaryTextDeltavariant structureResponses
UHPEventResponsevariant structureResponses
UHPHarnessobjectHarnesses
UHPHarnessCreateobjectHarnesses
UHPHarnessModelsobjectHarnesses
UHPMcpServerobjectHarnesses
UHPModelobjectHarnesses
UHPModelCatalogobjectHarnesses
UHPOutputItemobjectResponses
UHPOutputItemFunctionCallvariant structureResponses
UHPOutputItemFunctionCallOutputvariant structureResponses
UHPOutputItemMessagevariant structureResponses
UHPOutputItemReasoningvariant structureResponses
UHPPluginobjectHarnesses
UHPPluginManifestobjectHarnesses
UHPPluginMcpServerobjectHarnesses
UHPPluginSkillobjectHarnesses
UHPPluginSkippedobjectHarnesses
UHPResponseobjectResponses
UHPResponseStatusenumResponses
UHPSkillobjectHarnesses
UHPSkillFileobjectHarnesses
UHPUsageobjectResponses
UpdateConversationInputobjectConversations
UpdateServerInstanceInputobjectInstances

A2AAgentCard

—

Used by: A2A

FieldTypeRequiredDescription
namestringyesDisplay name of the agent.
descriptionstringyesDescription of the agent.
urlstringnoURL of the agent's JSON-RPC endpoint. Returned only when the request sends A2A-Version: 0.3; version 1.0 lists the endpoint in supportedInterfaces.
versionstringyesVersion of the agent: its resource version, a decimal number.
protocolVersionstringnoA2A protocol version spoken at url. Returned only when the request sends A2A-Version: 0.3.
defaultInputModesarray<string>yesMedia types the agent accepts as input, for example text/plain.
defaultOutputModesarray<string>yesMedia types the agent produces as output, for example text/plain.
supportedInterfacesarray<object>noInterfaces through which the agent can be reached. Returned unless the request sends A2A-Version: 0.3.
supportedInterfaces[].urlstringyesURL of the interface.
supportedInterfaces[].protocolBindingstringyesTransport the interface uses: JSONRPC.
supportedInterfaces[].protocolVersionstringyesA2A protocol version the interface speaks.

A2AArtifact

—

Used by: A2A

FieldTypeRequiredDescription
artifactIdstringyesID of the artifact. When the agent supplies none, the server uses <task ID>-a<index>, counting from 0.
namestringnoDisplay name of the artifact. Omitted when it is not set.
descriptionstringnoDescription of the artifact. Omitted when it is not set.
partsarray<A2AOutputPart>yesContent of the artifact as parts, in order. Each part is a text part, a file part or a data part.
metadatamap<string, JSONValue>noExtra metadata attached to the artifact. Omitted when there is none.
extensionsarray<string>noURIs of the protocol extensions that apply to the artifact. Omitted when there are none.

A2ADataPartOut

—

Used by: A2A

FieldTypeRequiredDescription
dataJSONValueyesStructured content of the part, as any JSON value. Nullable.
metadatamap<string, JSONValue>noExtra metadata attached to the part. Omitted when there is none.

A2AFilePartOut

—

Used by: A2A

FieldTypeRequiredDescription
urlstringnoURL the file can be fetched from. Omitted when it is not set.
filenamestringnoName of the file. Omitted when it is not set.
mediaTypestringnoMedia type (MIME type) of the file. Omitted when it is not set.
metadatamap<string, JSONValue>noExtra metadata attached to the part. Omitted when there is none.

A2AMessage

—

Used by: A2A

FieldTypeRequiredDescription
messageIdstringyesID of the message. The server generates a new ID for every message it renders.
rolestringyesWho wrote the message: ROLE_USER for the caller or ROLE_AGENT for the agent. Allowed values: "ROLE_USER" — The message was written by the caller; "ROLE_AGENT" — The message was written by the agent. (enum table)
partsarray<A2AOutputPart>yesContent of the message as parts, in order. Each part is a text part, a file part or a data part.
contextIdstringnoID of the context (conversation) the message belongs to. Omitted when it is not set.
taskIdstringnoID of the task the message belongs to. Omitted when it is not set.
referenceTaskIdsarray<string>noIDs of other tasks this message refers to. Omitted when there are none.
metadatamap<string, JSONValue>noExtra metadata attached to the message. Omitted when there is none.

A2AOutputPart

One piece of content in a message or artifact. It is a text part (text), a file part (url, filename, mediaType) or a data part (data); which one is told by the field it carries.

Used by: A2A

Union: exactly one alternative applies.

Variant: A2ATextPartOut

FieldTypeRequiredDescription
textstringyesText content of the part.
metadatamap<string, JSONValue>noExtra metadata attached to the part. Omitted when there is none.

Variant: A2AFilePartOut

FieldTypeRequiredDescription
urlstringnoURL the file can be fetched from. Omitted when it is not set.
filenamestringnoName of the file. Omitted when it is not set.
mediaTypestringnoMedia type (MIME type) of the file. Omitted when it is not set.
metadatamap<string, JSONValue>noExtra metadata attached to the part. Omitted when there is none.

Variant: A2ADataPartOut

FieldTypeRequiredDescription
dataJSONValueyesStructured content of the part, as any JSON value. Nullable.
metadatamap<string, JSONValue>noExtra metadata attached to the part. Omitted when there is none.

A2ATaskStatus

—

Used by: A2A

FieldTypeRequiredDescription
statestringyesCurrent state of the task. Allowed values: see the table below, A2ATaskStatus.state values.
messageA2AMessagenoMessage that explains the state, such as an error text. It is an agent message with one text part. Omitted when there is nothing to report. Nullable.
timestampstringnoTime of the last update of the task, or its creation time when it was never updated, as a UTC timestamp such as 2026-01-02T15:04:05.000Z.

A2ATaskStatus.state values

ValueMeaning
"TASK_STATE_SUBMITTED"The task was created and is waiting for the agent to start. It is also reported once the message has reached the agent.
"TASK_STATE_WORKING"The agent is processing the task.
"TASK_STATE_COMPLETED"Final state. The task finished successfully.
"TASK_STATE_FAILED"Final state. The task finished with an error or timed out.
"TASK_STATE_CANCELED"Final state. The task was canceled before it finished.
"TASK_STATE_INPUT_REQUIRED"The task is paused: the agent needs more input from the caller to continue.
"TASK_STATE_REJECTED"Final state. The agent declined the task.
"TASK_STATE_AUTH_REQUIRED"The task is paused: the agent needs additional authentication to continue.

a2aTaskView

—

Used by: A2A

FieldTypeRequiredDescription
idstringyesID of the task.
contextIdstringyesID of the context (conversation) the task belongs to.
statusA2ATaskStatusyesCurrent status of the task.
artifactsarray<A2AArtifact>noOutputs the agent produced for the task. Omitted while there are none.
historyarray<A2AMessage>noMessages of the task. A single-task read returns at most history_length of them. When no history is stored it holds the original request as one message. Omitted when there are none.
metadatamap<string, JSONValue>noExtra metadata of the task. Omitted when there is none.
caller_principal_idstringyesID of the principal that submitted the task.
caller_agent_idstringyesID of the agent that submitted the task, if any.
caller_owner_idstringyesID of the owner of the submitting side. Cloud derives it from the credential's organization and app. Callers do not send an end-user id.
target_principal_idstringyesID of the principal the task was sent to.
target_agent_idstringyesID of the agent the task was sent to.
target_owner_idstringyesID of the owner of the receiving side.
channel_idstringnoID of the channel that carries the streaming replies of the task. Omitted when the task does not use channel-based delivery.
created_atstringnoTime the task was created, as a UTC timestamp such as 2026-01-02T15:04:05.000Z. Omitted when it is not known.
updated_atstringnoTime the task was last updated, in the same format as created_at. Omitted when it is not known.
completed_atstringnoTime the task finished, in the same format as created_at. Omitted until the task is finished.

A2ATextPartOut

—

Used by: A2A

FieldTypeRequiredDescription
textstringyesText content of the part.
metadatamap<string, JSONValue>noExtra metadata attached to the part. Omitted when there is none.

ActiveConversationResponse

—

Used by: Conversations

FieldTypeRequiredDescription
response_idstringyesID of the response being produced. Use it with the responses API.
last_event_idstringyesID of the latest event recorded for the response. Send it as Last-Event-ID to continue the response's event stream after that event.
user_message_idstringnoID of the chat_message that started the response. Omitted when it is not recorded.
reply_message_idstringnoID of the message the agent's reply is written to. Omitted until the reply message exists.

AgentAgent

—

Used by: Agents

FieldTypeRequiredDescription
idstringyesID of the agent.
instance_idstringyesID of the instance the agent runs on.
namestringyesName of the agent.
avatar_urlstringnoURL of the agent's avatar image. Omitted when none is set.
display_namestringnoHuman-readable name of the agent. Omitted when none is set.
descriptionstringyesDescription of the agent. Empty when none is set.
resource_versionintegeryesVersion of the agent to send as If-Match, in double quotes, when you update it. The same value is returned in the ETag header when you read or update a single agent.
statusstringyesWhether the agent is currently provided by its instance. Allowed values: "active" — The instance currently provides the agent; "inactive" — The instance no longer provides the agent, for example because it was removed or replaced by another agent with the same name. The record is kept. (enum table)
visibilitystringyesWhich callers other than the owner can use the agent. Change it with the update operation. Allowed values: see the table below, AgentAgent.visibility values.
mcp_enabledbooleanyesWhether the agent is published as a tool through BeeOS MCP endpoints.
a2a_enabledbooleanyesWhether the agent accepts Agent-to-Agent (A2A) requests. When false, A2A requests for the agent are refused with 403 a2a_disabled.
capabilitiesmap<string, boolean>yesFeatures the agent supports, as an object that maps a feature name to true or false. Known names include canvas, terminal, webSsh, fileSystem, image, audio, mcp, cron, streaming, pushNotifications, a2a, extendedAgentCard, multipleConversations, loadConversation, createConversation, modelsList, modelsSet, skillsList, skillsInstall, skillsUninstall, skillsUpdate and automationWake. A name that is absent or false means the agent does not support the feature. New names can be added, so ignore names you do not know.
skillsarray<AgentSkill>yesSkills of the agent.
conversation_transportstringyesHow conversation messages reach the agent. New values can be added, so ignore values you do not know. Allowed values: "acp" — Conversation messages are exchanged with the agent over its ACP connection; "message-service" — Conversation messages are delivered to the agent as messages through BeeOS messaging. (enum table)
created_atstringyesTime the agent was created, in RFC 3339 format. Constraints: format=date-time.
updated_atstringyesTime the agent was last changed, in RFC 3339 format. Constraints: format=date-time.

AgentAgent.visibility values

ValueMeaning
"private"Callers other than the owner cannot invoke the agent or read its agent card. It is not listed in catalogs.
"unlisted"Callers other than the owner can invoke the agent and read its agent card if they know its ID. It is not listed in catalogs.
"org"Reserved. The value is accepted, but it does not currently give callers other than the owner access to the agent.
"public"Callers other than the owner can invoke the agent and read its agent card, and it is listed in catalogs.
"marketplace"The agent is listed in catalogs. That is all this value grants: callers other than the owner cannot invoke the agent or read its agent card by ID.

agentBindDetailsWire

—

Used by: Device bindings

FieldTypeRequiredDescription
bind_idstringyesID of the bind session.
hostnamestringyesHost name the device reported.
fingerprint_shortstringyesFirst 16 characters of the device key fingerprint. Show it to the user to compare with the device.
harnessstringyesHarness the device runs, as the device reported it.
os_typestringnoOperating system the device reported. Omitted when it did not report one.
expires_atintegeryesTime the session expires, in Unix seconds.
statusstringyesState of the bind session. A session that has expired is deleted, so lookups of an expired session fail with 404 not_found instead. Allowed values: "pending" — Created by the device and waiting for a user to confirm it; "confirming" — A user confirmed it and the instance for the device is being created; "bound" — Confirmed: the instance exists and the device can connect to it. (enum table)
server_timeintegeryesCurrent server time in Unix seconds. Compare it with expires_at to get the remaining time without clock skew.

agentBindWire

—

Used by: Device bindings

FieldTypeRequiredDescription
statusstringyesState of the bind session. After a successful confirmation it is bound; a session that is still waiting for confirmation reports pending. Allowed values: "pending" — Created by the device and waiting for a user to confirm it. A session that is being confirmed also reports pending; "bound" — Confirmed: the instance exists and the device can connect to it. (enum table)
bind_idstringnoID of the bind session.
instance_idstringnoID of the instance created for the device. Present once the session is bound.
public_keystringnoPublic key the device registered for the session.
hostnamestringnoHost name the device reported.
expires_atintegernoTime the session expires, in Unix seconds.
runtime_bindingbindRuntimeWirenoAddresses a bound self-hosted agent connects to. Present once the session is bound. Nullable.

AgentPage

—

Used by: Agents

FieldTypeRequiredDescription
dataarray<AgentAgent>yesAgents on this page, newest first.
totalintegeryesTotal number of agents that match the filters, across all pages.

AgentPatch

Exposure settings to change. Send at least one field; fields you omit keep their current value.

Used by: Agents

FieldTypeRequiredDescription
visibilitystringnoNew visibility of the agent. The values are described on the visibility field of the agent. Allowed values: see the table below, AgentPatch.visibility values.
mcp_enabledbooleannoSet to true to publish the agent as a tool through BeeOS MCP endpoints, or to false to stop publishing it.
a2a_enabledbooleannoSet to true to let the agent accept Agent-to-Agent (A2A) requests, or to false to refuse them with 403 a2a_disabled.

AgentPatch.visibility values

ValueMeaning
"private"Callers other than the owner cannot invoke the agent or read its agent card. It is not listed in catalogs.
"unlisted"Callers other than the owner can invoke the agent and read its agent card if they know its ID. It is not listed in catalogs.
"org"Reserved. The value is accepted, but it does not currently give callers other than the owner access to the agent.
"public"Callers other than the owner can invoke the agent and read its agent card, and it is listed in catalogs.
"marketplace"The agent is listed in catalogs. That is all this value grants: callers other than the owner cannot invoke the agent or read its agent card by ID.

AgentResponse

—

Used by: Agents

FieldTypeRequiredDescription
dataAgentSnapshotyesThe agent.

AgentSkill

—

Used by: Agents

FieldTypeRequiredDescription
idstringyesID of the skill. Empty when the instance did not report one.
namestringyesName of the skill.
descriptionstringyesWhat the skill does.
tagsarray<string>yesTags that describe the skill. Empty when there are none.
enabledbooleanyesWhether the skill is currently enabled for the agent.

AgentSnapshot

—

Used by: Agents

FieldTypeRequiredDescription
idstringyesID of the agent.
instance_idstringyesID of the instance the agent runs on.
namestringyesName of the agent.
display_namestringnoHuman-readable name of the agent. Omitted when none is set.
descriptionstringyesDescription of the agent. Empty when none is set.
statusstringyesWhether the agent is currently provided by its instance. Allowed values: "active" — The instance currently provides the agent; "inactive" — The instance no longer provides the agent, for example because it was removed or replaced by another agent with the same name. The record is kept. (enum table)
visibilitystringyesWhich callers other than the owner can use the agent. Change it with the update operation. Allowed values: see the table below, AgentSnapshot.visibility values.
conversation_transportstringyesHow conversation messages reach the agent. New values can be added, so ignore values you do not know. Allowed values: "acp" — Conversation messages are exchanged with the agent over its ACP connection; "message-service" — Conversation messages are delivered to the agent as messages through BeeOS messaging. (enum table)
resource_versionintegeryesVersion of the agent to send as If-Match, in double quotes, when you update it. The same value is returned in the ETag header when you read or update a single agent. Constraints: minimum=1, format=int64.
mcp_enabledbooleanyesWhether the agent is published as a tool through BeeOS MCP endpoints.
a2a_enabledbooleanyesWhether the agent accepts Agent-to-Agent (A2A) requests. When false, A2A requests for the agent are refused with 403 a2a_disabled.
capabilitiesmap<string, boolean>yesFeatures the agent supports, as an object that maps a feature name to true or false. Known names include canvas, terminal, webSsh, fileSystem, image, audio, mcp, cron, streaming, pushNotifications, a2a, extendedAgentCard, multipleConversations, loadConversation, createConversation, modelsList, modelsSet, skillsList, skillsInstall, skillsUninstall, skillsUpdate and automationWake. A name that is absent or false means the agent does not support the feature. New names can be added, so ignore names you do not know.
skillsarray<AgentSkill>yesSkills of the agent.
created_atstringyesTime the agent was created, in RFC 3339 format. Constraints: format=date-time.
updated_atstringyesTime the agent was last changed, in RFC 3339 format. Constraints: format=date-time.

AgentSnapshot.visibility values

ValueMeaning
"private"Callers other than the owner cannot invoke the agent or read its agent card. It is not listed in catalogs.
"unlisted"Callers other than the owner can invoke the agent and read its agent card if they know its ID. It is not listed in catalogs.
"org"Reserved. The value is accepted, but it does not currently give callers other than the owner access to the agent.
"public"Callers other than the owner can invoke the agent and read its agent card, and it is listed in catalogs.
"marketplace"The agent is listed in catalogs. That is all this value grants: callers other than the owner cannot invoke the agent or read its agent card by ID.

agentTemplateCatalogView

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyesID of the template. Pass it as template_id when creating a harness from the template.
display_namestringyesDisplay name of the template, in the language of Accept-Language when a translation exists.
summarystringyesOne-line summary of what the template is for, localized like display_name.
descriptionstringyesFull description of the template, localized like display_name.
categorystringyesCategory the template is listed under. Use it as the category filter of the list operation.
vibestringyesShort phrase describing the personality of the agent the template creates, localized like display_name.
icon_urlstringyesURL of the template icon. Empty when the template has none.
banner_urlstringyesURL of the template banner image. Empty when the template has none.
default_modelstringyesID of the model the template selects as the agent's primary model.
tagsarray<string>yesTags that describe the template.
harnessstringyesHarness (agent runtime) the template is applied to, for example openclaw.
template_versionstringyesVersion of the template package, as a semantic version such as 1.2.0.

ApprovalModeResult

—

Used by: Conversations

FieldTypeRequiredDescription
approval_modestringyesApproval mode now in effect for the conversation. null means the instance default applies. Nullable.
metadata_versionintegeryesVersion of the conversation settings after this change. Send it, in double quotes, as If-Match of the next update. It is also returned in the ETag header. Constraints: minimum=1, format=int64.
statusstringyesOutcome of the change at the time the call returned. Allowed values: "completed" — The approval mode was changed before the call returned.

ApprovalModeResultResponse

—

Used by: Conversations

FieldTypeRequiredDescription
dataApprovalModeResultyesThe result of the change.

ApprovalModeSettings

—

Used by: Conversations

FieldTypeRequiredDescription
approval_modestringyesApproval mode to set for the conversation: lowercase letters, digits and underscores, starting with a letter, at most 32 characters. ask and full are the modes defined so far. New modes can be added, and an agent treats a mode it does not know as ask. Send null to remove the setting so the instance default applies. Nullable. Constraints: minLength=1, maxLength=32, pattern=^[a-z][a-z0-9_]*$.

Binding

—

Used by: Identity

FieldTypeRequiredDescription
client_typestringyesHow the token is bound to the client. Allowed values: "web" — Bound to a web page origin, returned in origin; "native" — Bound to a device key, whose thumbprint is returned in cnf_jkt. (enum table) Structure by client_type: see the variant table.
originstringnoOrigin the token is bound to. Returned when client_type is web. Constraints: format=uri.
cnf_jktstringnoThumbprint of the device key the token is bound to. Returned when client_type is native.

Binding by client_type

The structure of Binding depends on its own client_type value.

Value of client_typeDescriptionStructure
"web"Bound to a web page origin, returned in origin.BindingWeb
"native"Bound to a device key, whose thumbprint is returned in cnf_jkt.BindingNative

BindingNative

Binding of a token to a device key.

Used by: Identity

FieldTypeRequiredDescription
client_typestringyesAlways native.
cnf_jktstringyesThumbprint of the device key the token is bound to. Returned when client_type is native.

Additional properties are accepted.

BindingWeb

Binding of a token to a web page origin.

Used by: Identity

FieldTypeRequiredDescription
client_typestringyesAlways web.
originstringyesOrigin the token is bound to. Returned when client_type is web. Constraints: format=uri.

Additional properties are accepted.

bindRuntimeWire

—

Used by: Device bindings

FieldTypeRequiredDescription
instance_idstringyesID of the instance the agent is bound to.
agent_gateway_urlstringyesBase URL of the API the agent connects to for agent traffic.
message_service_urlstringyesBase URL of the API the agent connects to for messages.

CancelConversationInput

—

Used by: Conversations

FieldTypeRequiredDescription
target_message_idstringyesID of the chat_message whose turn should stop, 1 to 256 characters. Constraints: minLength=1, maxLength=256.
reasonstringnoWhy the turn is stopped, as free text of at most 256 characters. When it is omitted or empty, user_request is recorded. Constraints: maxLength=256.

CanvasSessionDocument

—

Used by: Instances

FieldTypeRequiredDescription
transportstringyesHow the ticket connects: always relay.
protocolVersionintegeryesVersion of the ticket protocol. Currently 1.
headerRealtimeTicketHeaderyesHeader of the signed ticket.
relayUrlstringyesWebSocket URL of the canvas relay for the canvas, ending in /ws/{canvasId}.
ticketstringyesSigned single-use ticket (a JWT) that authorizes one relay connection. It is valid for 60 seconds.
issuedAtstringyesTime the ticket was issued, as an RFC 3339 timestamp. Constraints: format=date-time.
expiresAtstringyesTime the ticket expires, as an RFC 3339 timestamp. Tickets are valid for 60 seconds. Constraints: format=date-time.
claimsCanvasTicketClaimsyesClaims contained in the signed ticket.

CanvasShare

—

Used by: Canvases

FieldTypeRequiredDescription
idstringyesUnique ID of the share.
canvasIdstringyesID of the canvas that is shared. A canvas has at most one share.
slugstringyesPublic identifier of the share, used to build the share link. It stays the same when the share is updated.
modestringyesHow visitors get access. password requires visitors to enter the password set when the share was created. Any other value, for example link, lets anyone who has the link open the canvas.
allowInteractionbooleanyesWhether visitors can interact with the canvas. When false, visitors can only view it.
expiresAtstringnoTime the share stops working, as an RFC 3339 timestamp. Omitted when the share does not expire; shares created through this API never expire.
createdAtstringyesTime the share was first created, as an RFC 3339 timestamp. Updating the share does not change it.

CanvasSnapshot

—

Used by: Canvases

FieldTypeRequiredDescription
idstringyesUnique ID of the snapshot. Pass it to the restore operation.
canvasIdstringyesID of the canvas the snapshot belongs to.
componentsSnapshotstringnoContent of the canvas when the snapshot was taken, as base64-encoded JSON: an array of surfaces, each with surfaceId, presentation, components and root. Omitted when no content was captured.
actorTypestringyesKind of actor that made most of the changes recorded by the snapshot: user for a person (restore points are also recorded as user), agent for an agent, or system for an automatic snapshot with no known actor.
actorIdstringyesID of the actor named by actorType. system for automatic snapshots with no known actor.
descriptionstringnoShort note about the snapshot, for example Auto-snapshot for automatic snapshots or Restored from v3 for a restore point. Omitted when there is none.
versionintegeryesVersion of the canvas content the snapshot records. A higher number is newer.
createdAtstringyesTime the snapshot was taken, as an RFC 3339 timestamp.

CanvasTicketClaims

—

Used by: Instances

FieldTypeRequiredDescription
issstringyesIssuer of the ticket.
substringyesUnused. Cloud does not accept an external user id, so this claim is empty.
jtistringyesUnique ID of the ticket.
purposestringyesPurpose of the ticket: always canvas_session.
instance_idstringyesID of the instance the canvas belongs to.
platform_agent_idstringyesID of the agent the canvas session is for, the platformAgentId of the request.
client_idstringyesID generated for this relay client connection.
conversation_idstringyesID of the conversation the canvas belongs to, the conversationId of the request.
canvas_idstringyesID of the canvas the ticket grants access to.
rolestringyesAccess role granted on the canvas: viewer or editor. Allowed values: "viewer" — Can view the canvas but not change it; "editor" — Can view and edit the canvas. (enum table)
session_idstringyesID of the realtime session created for this ticket.
audarray<string>yesAudiences the ticket is intended for: the canvas relay.
iatintegeryesTime the ticket was issued, in Unix seconds.
expintegeryesTime the ticket expires, in Unix seconds.

CatalogSpec

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyes—
namestringyes—
labelstringyes—
valuesarray<CatalogSpecValue>yes—

CatalogSpecValue

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyes—
namestringyes—
labelstringyes—
sort_orderintegeryes—

CatalogVariant

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyesID of the variant. Send it as variant_id when creating an instance.
spec_value_idsarray<string>yes—
sort_orderintegeryes—

ClearConversationReceipt

—

Used by: Conversations

FieldTypeRequiredDescription
request_idstringyesID of the clear operation. Retrying with the same Idempotency-Key returns the same ID.
conversation_idstringyesID of the conversation that was cleared.
current_generationintegeryesHistory generation after the clear. Messages from earlier generations are no longer part of the conversation history. Constraints: minimum=0, format=int64.
statusstringyesOutcome of the clear at the time the call returned. Allowed values: "completed" — The history was cleared before the call returned.

ClearConversationReceiptResponse

—

Used by: Conversations

FieldTypeRequiredDescription
dataClearConversationReceiptyesThe receipt of the clear operation.

ClientSessionInput

—

Used by: Identity

FieldTypeRequiredDescription
client_typestringyesHow the client token is bound to the client that will use it. It decides whether you send origin or device_attestation. Allowed values: "web" — A browser client. The token is bound to the page origin you send in origin, which must be one of the allowed origins configured for the app. device_attestation must not be sent. A request that does not match this binding returns 403 invalid_origin; "native" — A native app. The token is bound to a device key whose thumbprint you send in device_attestation.jkt. origin must not be sent. A request that does not match this binding returns 403 invalid_origin. (enum table) Structure by client_type: see the variant table.
requested_capabilitiesarray<string>yesOperations the client token may perform on the Client API, 1 or more distinct names. Each name must be one of context:read, instances:read, instances:write, agents:read, agents:invoke, files:read, files:write, files:delete, events:read, viewer:connect and terminal:connect, and must be allowed for your app's clients. Any other name returns 403 invalid_capability. Constraints: minItems=1, uniqueItems.
originstringnoOrigin of the web page that will use the token, for example https://app.example.com. Required when client_type is web, and it must exactly match one of the allowed origins configured for the app; otherwise the request returns 403 invalid_origin. Not allowed when client_type is native, which also returns 403 invalid_origin. Constraints: format=uri.
device_attestationobjectnoProof of the device key the token is bound to. Required when client_type is native; not allowed when client_type is web, which returns 403 invalid_origin.
device_attestation.jktstringyesThumbprint of the device's public key, the base64url-encoded SHA-256 JWK thumbprint, at least 16 characters. Later Client API requests must be signed with the matching private key. Constraints: minLength=16.
ttl_secondsintegernoRequested token lifetime in seconds for this issuance. Explicit values outside 60..1800 return 400 invalid_request. Default: 600. Constraints: minimum=60, maximum=1800.

ClientSessionInput by client_type

The structure of ClientSessionInput depends on its own client_type value.

Value of client_typeDescriptionStructure
"web"A browser client. The token is bound to the page origin you send in origin, which must be one of the allowed origins configured for the app. device_attestation must not be sent. A request that does not match this binding returns 403 invalid_origin.ClientSessionInputWeb
"native"A native app. The token is bound to a device key whose thumbprint you send in device_attestation.jkt. origin must not be sent. A request that does not match this binding returns 403 invalid_origin.ClientSessionInputNative

ClientSessionInputNative

Request for a token bound to a device key.

Used by: Identity

FieldTypeRequiredDescription
client_typestringyesAlways native.
device_attestationobjectyesProof of the device key the token is bound to. Required when client_type is native; not allowed when client_type is web, which returns 403 invalid_origin.
device_attestation.jktstringyesThumbprint of the device's public key, the base64url-encoded SHA-256 JWK thumbprint, at least 16 characters. Later Client API requests must be signed with the matching private key. Constraints: minLength=16.
requested_capabilitiesarray<string>yesOperations the client token may perform on the Client API, 1 or more distinct names. Each name must be one of context:read, instances:read, instances:write, agents:read, agents:invoke, files:read, files:write, files:delete, events:read, viewer:connect and terminal:connect, and must be allowed for your app's clients. Any other name returns 403 invalid_capability. Constraints: minItems=1, uniqueItems.
ttl_secondsintegernoRequested token lifetime in seconds for this issuance. Explicit values outside 60..1800 return 400 invalid_request. Default: 600. Constraints: minimum=60, maximum=1800.

Additional properties are accepted.

ClientSessionInputWeb

Request for a token bound to a web page origin.

Used by: Identity

FieldTypeRequiredDescription
client_typestringyesAlways web.
originstringyesOrigin of the web page that will use the token, for example https://app.example.com. Required when client_type is web, and it must exactly match one of the allowed origins configured for the app; otherwise the request returns 403 invalid_origin. Not allowed when client_type is native, which also returns 403 invalid_origin. Constraints: format=uri.
requested_capabilitiesarray<string>yesOperations the client token may perform on the Client API, 1 or more distinct names. Each name must be one of context:read, instances:read, instances:write, agents:read, agents:invoke, files:read, files:write, files:delete, events:read, viewer:connect and terminal:connect, and must be allowed for your app's clients. Any other name returns 403 invalid_capability. Constraints: minItems=1, uniqueItems.
ttl_secondsintegernoRequested token lifetime in seconds for this issuance. Explicit values outside 60..1800 return 400 invalid_request. Default: 600. Constraints: minimum=60, maximum=1800.

Additional properties are accepted.

ClientSessionResponse

—

Used by: Identity

FieldTypeRequiredDescription
access_tokenstringyesClient token to send as the bearer credential to the Client API. It is shown only in this response, so store it securely on the client and never log it. Write-only.
client_api_urlstringyesBase URL of the Client API that accepts access_token. Allowed values: "https://client-api.cloud.beeos.ai/v1" — The production Client API.
expires_atstringyesActual expiration of the issued token, capped by the remaining session authorization lifetime. Constraints: format=date-time.
session_idstringyesID of the client session. Use it to refresh or revoke the session. Refreshing issues a new token for the same session.
app_idstringyesID of the app the session belongs to.
external_user_idstringyesUnused. Cloud does not accept an external user id. Stored sessions leave this empty.
capabilitiesarray<string>yesOperations the token may perform on the Client API. They are the requested capabilities, without duplicates.
bindingBindingyesHow the token is bound to the client, as requested when the session was created.

CommandReceipt

—

Used by: Conversations

FieldTypeRequiredDescription
request_idstringyesID of the request. For cancel and resume it identifies the control message that was sent to the agent; for a model change it is the ID of this HTTP request.
statusstringyesOutcome of the request at the time the call returned. Allowed values: "accepted" — The request was queued for the agent and has not taken effect yet. Read the conversation messages to follow the result; "completed" — The change was applied before the call returned. (enum table)

CommandReceiptResponse

—

Used by: Conversations

FieldTypeRequiredDescription
dataCommandReceiptyesThe receipt of the request.

ConnectURLResponse

—

Used by: Instances

FieldTypeRequiredDescription
dataobjectyesConnection details for the requested service.
data.urlstringyesURL to connect to. For browser it is the browser viewer URL; for acp it is a WebSocket URL that already carries the access ticket as a query parameter.
data.modestringyesConnection mode: browser-runtime for browser, service-websocket for acp. Allowed values: "browser-runtime" — A browser viewer session; connect with url and token; "service-websocket" — A WebSocket connection to an agent service; url already carries the access ticket. (enum table)
data.tokenstringyesShort-lived access token for the browser viewer. Not returned for acp.
data.servicestringyesService the URL connects to: browser or acp. Allowed values: "browser" — The browser viewer; "acp" — The agent connection over WebSocket. (enum table)
data.connectivitystringyesReachability of the instance's agent: unknown, online or offline. Allowed values: "unknown" — Reachability has not been determined; "online" — The instance's agent is connected; "offline" — The instance's agent is not connected. (enum table)
data.stream_session_idstringyesID of the viewing client session, the client_id sent in the request. Not returned for acp.
data.browserobjectnoBrowser access grant. Returned only for browser.
data.browser.grant_idstringyesID of the browser access grant.
data.browser.generationstringyesGeneration of the browser the grant is bound to. When generation was sent in the request, it equals that value.
data.browser.expires_atstringyesTime the access grant expires, in Unix milliseconds.
data.browser.rolestringyesAccess role of the grant: viewer or controller. Allowed values: "viewer" — Can watch the browser but not control it; "controller" — Can watch and control the browser. (enum table)

Conversation

—

Used by: Conversations

FieldTypeRequiredDescription
idstringyesID of the conversation. Constraints: minLength=1.
agent_idstringyesID of the agent the conversation is with, the id returned by the agents API. Constraints: minLength=1.
instance_idstringyesID of the instance the agent runs on. Constraints: minLength=1.
titlestringyesTitle of the conversation. Empty when no title was set.
statestringyesWhether the conversation still accepts messages. A closed conversation stays readable but cannot receive new messages. Allowed values: "open" — The conversation accepts new messages; "closed" — The conversation was closed, for example by deleting it. closed_at is set, and sending to it returns 410 conversation_closed. (enum table)
metadata_versionintegeryesVersion of the conversation settings (title, model override, reasoning and approval mode). It increases by one on every change. It always equals resource_version. Constraints: minimum=1, format=int64.
history_generationintegeryesGeneration of the conversation history. It increases by one each time the history is cleared, so a larger value means messages sent before the latest clear are no longer part of the history. Constraints: minimum=0, format=int64.
created_atstringyesTime the conversation was created, in RFC 3339 format. Constraints: format=date-time.
last_activity_atstringnoTime of the latest activity in the conversation, in RFC 3339 format. Omitted when no activity is recorded. Constraints: format=date-time.
closed_atstringnoTime the conversation was closed, in RFC 3339 format. Omitted while the conversation is open. Constraints: format=date-time.
resource_versionintegeryesVersion of the conversation to send as If-Match, in double quotes, when you rename it or change its model, reasoning or approval mode. The same value is returned in the ETag header when you read or update a single conversation. Constraints: minimum=1, format=int64.
model_override_idstringnoID of the model that overrides the agent's default model for this conversation. Omitted when no override is set.
effective_model_idstringnoReserved. The Server API does not currently return this field; use model_override_id.
active_responseActiveConversationResponsenoThe response that is currently being produced in the conversation. Returned only when you read a single conversation, and only while a response is in progress.
reasoningReasoningSettingsnoReasoning selection set for the conversation: the model and the reasoning option chosen for it. Omitted when none is set. It is cleared when model_override_id changes.
approval_modestringnoApproval mode set for the conversation. Omitted when none is set and the instance default applies. Nullable.

ConversationPage

—

Used by: Conversations

FieldTypeRequiredDescription
conversationsarray<Conversation>yesConversations on this page.
next_cursorstringnoCursor to pass as cursor to get the next page. Empty when has_more is false.
has_morebooleanyesWhether more conversations are available after this page.

ConversationResponse

—

Used by: Conversations

FieldTypeRequiredDescription
dataConversationyesThe conversation.

CreateConversationInput

—

Used by: Conversations

FieldTypeRequiredDescription
titlestringnoTitle of the new conversation, at most 512 bytes of valid UTF-8. Omit it to create a conversation without a title. Constraints: maxLength=256.

CreateServerInstanceInput

—

Used by: Instances

FieldTypeRequiredDescription
namestringyesDisplay name of the instance, 1 to 128 bytes, without leading or trailing whitespace.
variant_idstringnoID of the catalog variant to create the instance from, at most 128 characters. See the instance template catalog for available variants. An unknown ID returns 404 variant_not_found.
harnessstringnoHarness to run in the instance. Only openclaw is accepted. Allowed values: "openclaw" — The OpenClaw agent runtime.
llmRuntimeLLMnoModel providers and models the instance uses. Required when the variant or harness needs caller-supplied models; omit it for variants that supply their own models. Provider API keys are write-only. Nullable.

Deletion

—

Used by: Identity

FieldTypeRequiredDescription
idstringyesID of the deletion.
statusstringyesState of the deletion. Poll until it is completed. Allowed values: "pending" — The deletion is queued and has not started; "processing" — The deletion is running; "failed" — The latest attempt stopped with an error, shown in error_code. The deletion is retried automatically; "completed" — All data of the user was deleted. (enum table)
deleted_resourcesmap<string, integer>yesNumber of items deleted so far, as an object that maps a kind of data to a count. The counts are final when status is completed. Kinds can be added, so do not depend on a fixed set of keys.

DeletionAccepted

—

Used by: Identity

FieldTypeRequiredDescription
deletion_idstringyesID of the deletion. Use it to read the progress of the deletion.
statusstringyesState of the deletion when the request was accepted. Allowed values: "pending" — The deletion is queued and has not started; "processing" — The deletion is running; "failed" — The latest attempt stopped with an error, shown in error_code. The deletion is retried automatically; "completed" — All data of the user was deleted. (enum table)

DeployModel

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyesID of the model, usually in provider/model form.
namestringyesDisplay name of the model.
tierstringno—
reasoningbooleanno—
inputarray<string>no—
context_windowintegernoMaximum context window of the model, in tokens.

DeployRegion

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyesID of the region.
namestringyesDisplay name of the region.
availablebooleanyesWhether the region is currently available.

DeviceBindingErrorResponse

—

Used by: —

FieldTypeRequiredDescription
errorstringyesMachine-readable error code. Device-bind routes return invalid_request, unauthorized, not_found, conflict, binding_unavailable or bridge_unavailable. Other codes can be returned for authentication and instance errors, so ignore codes you do not know.
messagestringyesHuman-readable explanation of the error. Do not parse it.

ErrorResponse

—

Used by: —

FieldTypeRequiredDescription
codestringyesStable machine-readable error code, for example invalid_request, version_mismatch or instance_not_found.
messagestringyesHuman-readable description of the error. Use code, not this text, to branch in code.
request_idstringyesID of the request, for support and tracing.

ExternalUserID

Opaque App-local identifier. Exact dot-segment values '.' and '..' are reserved by T03-20260905-01.

Used by: Identity

Type: string

Constraints: minLength=1, maxLength=128.

FileChatUploadContext

—

Used by: Files

FieldTypeRequiredDescription
instance_idstringyesID of the instance the file is uploaded for. It must belong to your app.
agent_idstringnoID of the agent the file is uploaded for. It must belong to the instance. Optional.

FileConfirmInput

—

Used by: Files

FieldTypeRequiredDescription
checksum_sha256stringnoLowercase hex SHA-256 digest of the uploaded content (64 characters). Optional. When sent, it is compared with the digest of the stored object and a difference fails the confirmation with 409 checksum_mismatch.

FileFile

—

Used by: Files

FieldTypeRequiredDescription
file_idstringyesUnique ID of the file.
filenamestringyesName of the file, without a path.
content_typestringyesMIME type of the file, for example image/png.
size_bytesintegeryesSize of the file in bytes.
checksum_sha256stringnoLowercase hex SHA-256 digest of the file content. Empty when no checksum was supplied at upload and none was recorded for the object.
statusstringyesUpload state of the file. Deleted files are never returned. New states can be added, so ignore values you do not know. Allowed values: "pending_upload" — The upload was prepared but not confirmed yet. The file has no content to download; "ready" — The upload was confirmed. The file can be downloaded, renamed, shared and deleted. (enum table)
resource_versionintegeryesVersion of the file record. It starts at 1 and increases when the upload is confirmed and when the file is renamed or deleted.
updated_atstringyesTime the file was last changed: created, confirmed or renamed, whichever is latest. RFC 3339 timestamp. Constraints: format=date-time.
titlestringnoTitle read from the document's own metadata. It is extracted for PDF, docx, xlsx and pptx files of up to 8 MiB the first time the file is read by ID, and omitted when the document has no usable title.
file_typestringyesCategory of the file, derived from its MIME type and, for generic types such as application/octet-stream, from its extension. Allowed values: see the table below, FileFile.file_type values.
created_atstringyesTime the file record was created, when the upload was prepared. RFC 3339 timestamp. Constraints: format=date-time.
confirmed_atstringnoTime the upload was confirmed. Omitted until the file is ready. RFC 3339 timestamp. Nullable. Constraints: format=date-time.
originFileOriginnoWhere the file came from, with the instance and agent it belongs to. Nullable.

FileFile.file_type values

ValueMeaning
"FILE_TYPE_IMAGE"An image, for example PNG, JPEG, GIF, WebP or SVG.
"FILE_TYPE_VIDEO"A video, for example MP4, MOV or WebM.
"FILE_TYPE_AUDIO"An audio file, for example MP3, WAV or FLAC.
"FILE_TYPE_DOCUMENT"A text or office document, for example plain text, Markdown, JSON, PDF, Word, Excel, PowerPoint or OpenDocument.
"FILE_TYPE_ARCHIVE"A compressed or packed archive, for example ZIP, TAR, GZIP, 7z or RAR.
"FILE_TYPE_OTHER"Any other file.

FileOrigin

—

Used by: Files

FieldTypeRequiredDescription
sourcestringyesHow the file came to exist. New values can be added, so ignore values you do not know. Allowed values: "manual" — Uploaded directly through the files API without an upload context. Files without a recorded origin are reported as manual; "chat_upload" — Uploaded with an upload_context, to be used in a conversation with the agent named by it; "runtime_generated" — Generated by an agent while it handled a request. operation_id identifies that operation; "template_skill" — Provided by a template skill. The file is read-only: it cannot be renamed or deleted, and it does not count toward storage usage. (enum table)
instance_idstringnoID of the instance the file belongs to. Omitted for files that are not tied to an instance.
agent_idstringnoID of the agent the file belongs to. Omitted for files that are not tied to an agent.
operation_idstringnoID of the agent operation that generated the file. Set only when source is runtime_generated.
instance_namestringnoCurrent display name of the instance, filled in when the file is returned. Omitted for files without an instance.
agent_namestringnoCurrent display name of the agent, filled in when the file is returned. Omitted for files without an agent.
avatar_urlstringnoURL of the agent avatar. Omitted for files without an agent.
harnessstringnoHarness the instance runs, for example openclaw. Omitted for files without an instance.
destroyedbooleannoTrue when the instance has been terminated or deleted. The file stays available. Omitted when false.

FilePage

—

Used by: Files

FieldTypeRequiredDescription
dataarray<FileFile>yesFiles on this page.
totalintegeryesNumber of files that match the query, across all pages.
next_sincestringnoCursor to pass as since to get the next page. Returned only by the default chronological listing, and only when more files follow. Filtered or sorted listings page with offset instead.

FilePrepareUploadInput

—

Used by: Files

FieldTypeRequiredDescription
upload_contextFileChatUploadContextnoTies the upload to an instance and optionally an agent. The credential's organization and app own the file. Omit the context for a plain upload. Nullable.
filenamestringyesName of the file, 1 to 255 characters, without leading or trailing whitespace and without /, \ or control characters.
content_typestringyesMIME type of the file, at most 255 characters and without control characters. The uploaded content must carry this type.
size_bytesintegeryesSize of the file in bytes, from 1 to 104857600 (100 MiB). The uploaded content must have exactly this size.
checksum_sha256stringnoLowercase hex SHA-256 digest of the content (64 characters). Optional. When sent, the uploaded content must match it and the confirmation verifies it.

FileResolution

—

Used by: Files

FieldTypeRequiredDescription
fileFileFileyesThe file.
downloadFileTransferDescriptoryesPre-signed descriptor to download the content with. While the file is still pending_upload it carries no usable URL.

FileShareResponse

—

Used by: Files

FieldTypeRequiredDescription
file_idstringyesID of the shared file.
slugstringyesPublic slug of the share. Pass it to the resolve-share operation to get the file.
filenamestringyesCurrent name of the shared file.
content_typestringyesMIME type of the shared file.
size_bytesintegeryesSize of the shared file in bytes.
revokedbooleanyesTrue when the share was revoked. A revoked share can no longer be resolved. Creating the share again turns it back on.

FileSummary

—

Used by: Files

FieldTypeRequiredDescription
file_countintegeryesNumber of ready files.
storage_file_countintegeryesNumber of ready files that count toward storage. Files provided by template skills are not counted.
used_bytesintegeryesTotal size in bytes of the files that count toward storage.
image_countintegeryesNumber of ready files in the FILE_TYPE_IMAGE category.
video_countintegeryesNumber of ready files in the FILE_TYPE_VIDEO category.
document_countintegeryesNumber of ready files in the FILE_TYPE_DOCUMENT category.
instancesarray<object>yesReady files grouped by the agent they belong to, or by instance when they have no agent, largest group first.
instances[].sourcestringyesHow the file came to exist. New values can be added, so ignore values you do not know. Allowed values: "manual" — Uploaded directly through the files API without an upload context. Files without a recorded origin are reported as manual; "chat_upload" — Uploaded with an upload_context, to be used in a conversation with the agent named by it; "runtime_generated" — Generated by an agent while it handled a request. operation_id identifies that operation; "template_skill" — Provided by a template skill. The file is read-only: it cannot be renamed or deleted, and it does not count toward storage usage. (enum table)
instances[].instance_idstringnoID of the instance the file belongs to. Omitted for files that are not tied to an instance.
instances[].agent_idstringnoID of the agent the file belongs to. Omitted for files that are not tied to an agent.
instances[].operation_idstringnoID of the agent operation that generated the file. Set only when source is runtime_generated.
instances[].instance_namestringnoCurrent display name of the instance, filled in when the file is returned. Omitted for files without an instance.
instances[].agent_namestringnoCurrent display name of the agent, filled in when the file is returned. Omitted for files without an agent.
instances[].avatar_urlstringnoURL of the agent avatar. Omitted for files without an agent.
instances[].harnessstringnoHarness the instance runs, for example openclaw. Omitted for files without an instance.
instances[].destroyedbooleannoTrue when the instance has been terminated or deleted. The file stays available. Omitted when false.
instances[].countintegeryesNumber of ready files in this group.

FileTransferDescriptor

—

Used by: Files

FieldTypeRequiredDescription
directionstringyesWhether the URL is used to upload or to download the file content. Allowed values: "upload" — Send the file content to url with http_method. Returned when an upload is prepared; "download" — Fetch the file content from url with http_method. Returned when a file or a share is read. (enum table)
file_idstringyesID of the file the transfer is for.
urlstringyesPre-signed URL to transfer the file content with. The URL is already signed, so do not send your API key to it.
http_methodstringyesHTTP method to use with url: PUT for an upload, GET for a download.
required_headersmap<string, string>yesHeaders to send with the transfer request exactly as given. Empty when none are required.
expires_atstringyesTime the URL stops working, as an RFC 3339 timestamp. Upload URLs are valid for 15 minutes and download URLs for 5 minutes. Constraints: format=date-time.
content_typestringyesMIME type of the file.
size_bytesintegeryesSize of the file in bytes.
checksum_sha256stringnoLowercase hex SHA-256 digest of the file content. Omitted when no digest is known.

InstancePage

—

Used by: Instances

FieldTypeRequiredDescription
dataarray<InstanceSummary>yesInstances on this page, newest first.
totalintegeryesTotal number of instances that match the filters, across all pages.

InstanceSummary

—

Used by: Instances

FieldTypeRequiredDescription
has_ever_runbooleanyesWhether the instance has ever reached the running state. False means it has never delivered a running service.
idstringyesUnique ID of the instance.
organization_idstringyesID of the organization that owns the instance.
app_idstringyesID of the app the instance belongs to.
developer_idstringyesID of the developer account the instance was created under.
namestringyesDisplay name of the instance.
harnessstringyesProduct harness name (for example openclaw), not a UHP harness_id (chrn_*).
provider_idstringyesID of the provider that hosts the instance.
regionstringyesRegion the instance is deployed in.
os_typestringyesOperating system of the instance: linux, windows, android or macos.
statusstringyesLifecycle phase of the instance: pending, provisioning, running, stopped or terminated. Allowed values: see the table below, InstanceSummary.status values.
desired_statusstringyesLifecycle phase the instance is being driven toward: running, stopped or terminated. Allowed values: "running" — The instance should be running; "stopped" — The instance should be stopped; "terminated" — The instance should be deleted. (enum table)
connectivitystringyesReachability of the instance's agent: unknown, online or offline. Allowed values: "unknown" — Reachability has not been determined; "online" — The instance's agent is connected; "offline" — The instance's agent is not connected. (enum table)
ms_connection_statusstringyesStatus of the instance's message-channel connection: unknown, connecting, connected, reconnecting, disconnected or failed. It is reported independently of connectivity and is unknown while the instance is stopped or terminated, or has not reported recently.
created_atstringyesTime the instance was created, as an RFC 3339 UTC timestamp.
updated_atstringyesTime the instance was last updated, as an RFC 3339 UTC timestamp.
resource_versionintegeryesVersion of the instance record, starting at 1. Send it in the If-Match header of write requests so concurrent changes are detected. Constraints: minimum=1, format=int64.
image_slotstringnoVariant trait. Key that selects the execution image for the instance. Not a container repository name.
worker_image_idstringnoVariant trait. AgentBay worker image. Never the platform image_id.
model_catalogstringnoVariant trait. served when Cloud answers model-list and reasoning-level requests, none when it answers neither. Empty and unknown values behave as none.
billing_slotstringnoVariant trait. Key into the monthly fee table that prices the instance.
icon_keystringnoVariant trait. UI icon selector. Clients must not derive it from harness.
device_controlbooleannoVariant trait. Whether the instance accepts device-control commands. False means those commands are rejected.
runtime_profilestringnoVariant trait. Profile of the agent runtime the instance uses. Known values are openclaw, hermes and beeos-browser.
free_planbooleannoVariant trait. Whether the free plan allows the instance's variant. False means the free plan does not allow it.
cloud_providerstringnoagentbay, beeos, or empty when self-hosted.

InstanceSummary.status values

ValueMeaning
"pending"The instance was created and is waiting to be provisioned.
"provisioning"The instance is being provisioned or started.
"running"The instance is running.
"stopped"The instance is stopped and can be started again.
"terminated"The instance was deleted and cannot be used again.

InstanceTemplate

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyesID of the template.
namestringyesDisplay name of the template.
descriptionstringnoDescription of the template.
logo_urlstringno—
sort_orderintegerno—
harnessstringno—
provider_idstringno—
specsarray<CatalogSpec>no—
variantsarray<CatalogVariant>noDeployable variants of the template. Send a variant's id as variant_id when creating an instance.

InstanceTemplatePage

—

Used by: Catalog

FieldTypeRequiredDescription
dataarray<InstanceTemplate>yesTemplates on the requested page.
totalintegeryesTotal number of templates that match the filters, across all pages.

JSONValue

A genuinely open JSON value (provider/plugin parameters or arbitrary metadata).

Used by: Identity, Catalog, Instances, Messages, Responses, Harnesses, Automations, A2A

Union: exactly one alternative applies.

Message

—

Used by: Messages

FieldTypeRequiredDescription
idstringyesID of the message.
conversation_idstringyesID of the conversation the message belongs to.
typestringyesKind of the message. Use it to tell the caller's prompts from the agent's replies and other messages. New kinds can be added, so ignore values you do not know. Allowed values: see the table below, Message.type values.
contentJSONValueyesPayload of the message as JSON. Its structure depends on type; see the variants listed for this field. For current agent replies read body and parts instead. The server removes the metadata and from keys before returning it. Structure by Message.type: see the variant table.
senderstringyesIdentity that sent the message. Other senders appear as their own identity ID.
reply_tostringnoID of the message this message replies to, for example the chat_message an agent_reply answers. Omitted for messages that are not replies.
created_atstringyesTime the message was created, in RFC 3339 format. Constraints: format=date-time.
offsetintegeryesPosition of the message in the conversation history. Newer messages have larger offsets. Constraints: format=int64.
history_generationintegeryesGeneration of the conversation history the message belongs to. Constraints: format=int64.
statestringnoLifecycle state of the message. A message starts as streaming and moves exactly once to one of the final states; a final message never changes again. Messages stored before states existed have an empty state and are final. Allowed values: see the table below, Message.state values.
stop_reasonstringnoWhy the message reached a final state. Present only on final messages and can be empty when the reason is unknown. Allowed values: see the table below, Message.stop_reason values.
bodystringnoText of the message. For a reply that is still streaming it is the text produced so far.
partsarray<map<string, JSONValue>>noStructured parts of the message in order, such as reasoning, tool calls, files and sources. Each part has a type; see the variants listed for the items of this field. Structure by type: see the variant table.
updated_atstringnoTime the message was last changed, in RFC 3339 format. Omitted when the message was never updated. Constraints: format=date-time.
runtime_dispatchmap<string, JSONValue>noResult of handing the message to the agent runtime, as an object with status and code. Present only when a dispatch result is recorded for the message; otherwise omitted.
realtime_publish_statusstringnoReserved. The Server API does not currently return this field. Allowed values: "published", "unconfirmed", "not_republished". (enum table)

Message.type values

ValueMeaning
"chat_message"A prompt sent by the caller to the agent.
"agent_reply"The agent's reply to a chat_message. While state is streaming the reply is still being written and body holds the text produced so far.
"agent_reply_error"An error reply from the agent, sent as its own message kind instead of an agent_reply that carries an error.
"agent.refuse"The agent declined to handle the message. content holds a reason, for example agent_busy when the agent was already working on another turn, and a readable message.
"agent_busy"Older name of agent.refuse, still sent by some agent runtimes. Treat it the same way.
"agent_reply_delta"A chunk of an agent reply that is still being produced.
"agent_reasoning"The agent's reasoning ("thinking") text. It is stored as its own message next to the agent_reply it belongs to, with the same reply_to, and the reasoning text is in body. It is never the final answer.
"a2a_status_update"A status change of an Agent-to-Agent (A2A) task.
"a2a_result"The final outcome of an A2A task, sent when the task completes or cannot be dispatched.
"agent_request"The task request delivered to an agent for an A2A task.
"a2a_task"The first message of an A2A task, published when the task is dispatched in queue mode.
"chat_cancel"A request to stop the agent's turn for an earlier chat_message. content holds target_message_id and an optional reason.
"device_command"One tool call for controlling a device or computer, such as a screenshot, click or typing. The agent runs it on the device without a model turn.
"device_result"The successful result of a device_command. reply_to is the ID of the command.
"device_error"The failure of a device_command. content holds error and code.

Message.state values

ValueMeaning
"streaming"The message is still being written. body and parts can still change.
"completed"The message was finished normally.
"failed"The agent failed to finish the message.
"refused"The agent refused to answer. body holds the refusal text.
"cancelled"The message was stopped on request before it finished.

Message.stop_reason values

ValueMeaning
"end_turn"The agent finished its turn normally.
"max_tokens"The output limit was reached before the agent finished.
"tool_use"The agent stopped to call a tool.
"user_stop"The user stopped the agent.
"timeout"The time limit was reached before the agent finished.
"error"The agent stopped because of an error.
"refused"The agent refused to answer.
"content_filter"The reply was stopped by a content filter.
"agent_lost"The server ended the message because the agent that was producing it is no longer running, for example because it crashed or was replaced.

Message.content by Message.type

The structure of Message.content depends on Message.type.

Value of Message.typeDescriptionStructure
"chat_message"A prompt sent by the caller to the agent.MessageContentChatMessage
"agent_reply"The agent's reply to a chat_message. While state is streaming the reply is still being written and body holds the text produced so far.MessageContentAgentReply
"agent_reply_error"An error reply from the agent, sent as its own message kind instead of an agent_reply that carries an error.MessageContentAgentReply
"agent.refuse"The agent declined to handle the message. content holds a reason, for example agent_busy when the agent was already working on another turn, and a readable message.MessageContentAgentRefuse
"agent_busy"Older name of agent.refuse, still sent by some agent runtimes. Treat it the same way.MessageContentAgentRefuse
"chat_cancel"A request to stop the agent's turn for an earlier chat_message. content holds target_message_id and an optional reason.MessageContentChatCancel
"device_command"One tool call for controlling a device or computer, such as a screenshot, click or typing. The agent runs it on the device without a model turn.MessageContentDeviceCommand
"device_error"The failure of a device_command. content holds error and code.MessageContentDeviceError

Message.parts[] by type

The structure of Message.parts[] depends on its own type value.

Value of typeDescriptionStructure
"text"A piece of the reply text.MessagePartText
"thinking"A piece of the agent's reasoning.MessagePartThinking
"tool_use"A tool call made by the agent.MessagePartToolUse
"tool_result"The result of a tool call.MessagePartToolResult
"file"A file attached to the message. Images, audio and video are all file parts; tell them apart by mime_type.MessagePartFile
"source"A cited source or reference.MessagePartSource
"custom"An extension part for structured content that has no dedicated type. kind says what the part is.MessagePartCustom

MessageContentAgentRefuse

Content of a message in which the agent declines the task.

Used by: Messages

FieldTypeRequiredDescription
reasonstringnoWhy the agent declined, for example agent_busy.
messagestringnoReadable explanation.

Additional properties are accepted.

MessageContentAgentReply

Content of an agent reply. A successful reply carries text; a failed one carries error.

Used by: Messages

FieldTypeRequiredDescription
textstringnoText of the reply.
errorstringnoError message when the reply is a failure.

Additional properties are accepted.

MessageContentChatCancel

Content of a request to stop the agent's turn.

Used by: Messages

FieldTypeRequiredDescription
target_message_idstringyesID of the chat_message whose turn should stop.
reasonstringnoWhy the turn should stop: canceled, caller_disconnected or timeout.

Additional properties are accepted.

MessageContentChatMessage

Content of a prompt sent to the agent.

Used by: Messages

FieldTypeRequiredDescription
messagestringyesText of the prompt.

Additional properties are accepted.

MessageContentDeviceCommand

Content of a device tool call.

Used by: Messages

FieldTypeRequiredDescription
toolstringnoName of the device tool to run, for example screenshot, click or tap.
argsJSONValuenoArguments of the tool; they depend on the tool. Nullable.
channel_idstringnoID of the conversation the command belongs to.
context_idstringnoID of the conversation the command belongs to.

Additional properties are accepted.

MessageContentDeviceError

Content of the failure of a device tool call.

Used by: Messages

FieldTypeRequiredDescription
errorstringnoReadable error message.
codestringnoKind of failure reported by the device tool, for example unsupported, invalid_args or internal_error.

Additional properties are accepted.

MessageEnvelope

—

Used by: Messages

FieldTypeRequiredDescription
idstringyesID of the message.
conversation_idstringyesID of the conversation the message belongs to.
typestringyesKind of the message. Use it to tell the caller's prompts from the agent's replies and other messages. New kinds can be added, so ignore values you do not know. Allowed values: see the table below, MessageEnvelope.type values.
senderstringyesIdentity that sent the message. Other senders appear as their own identity ID.
reply_tostringnoID of the message this message replies to, for example the chat_message an agent_reply answers. Omitted for messages that are not replies.
bodystringyesText of the message. For a reply that is still streaming it is the text produced so far.
partsarray<map<string, JSONValue>>noStructured parts of the message in order, such as reasoning, tool calls, files and sources. Each part has a type; see the variants listed for the items of this field. Structure by type: see the variant table.
statestringyesLifecycle state of the message. A message starts as streaming and moves exactly once to one of the final states; a final message never changes again. Messages stored before states existed have an empty state and are final. Allowed values: see the table below, MessageEnvelope.state values.
stop_reasonstringnoWhy the message reached a final state. Present only on final messages and can be empty when the reason is unknown. Allowed values: see the table below, MessageEnvelope.stop_reason values.
contentJSONValuenoReserved. The Server API does not currently return this field; read body and parts.
created_atstringnoTime the message was created, in RFC 3339 format. Constraints: format=date-time.
updated_atstringnoTime the message was last changed, in RFC 3339 format. Omitted when the message was never updated. Constraints: format=date-time.

MessageEnvelope.type values

ValueMeaning
"chat_message"A prompt sent by the caller to the agent.
"agent_reply"The agent's reply to a chat_message. While state is streaming the reply is still being written and body holds the text produced so far.
"agent_reply_error"An error reply from the agent, sent as its own message kind instead of an agent_reply that carries an error.
"agent.refuse"The agent declined to handle the message. content holds a reason, for example agent_busy when the agent was already working on another turn, and a readable message.
"agent_busy"Older name of agent.refuse, still sent by some agent runtimes. Treat it the same way.
"agent_reply_delta"A chunk of an agent reply that is still being produced.
"agent_reasoning"The agent's reasoning ("thinking") text. It is stored as its own message next to the agent_reply it belongs to, with the same reply_to, and the reasoning text is in body. It is never the final answer.
"a2a_status_update"A status change of an Agent-to-Agent (A2A) task.
"a2a_result"The final outcome of an A2A task, sent when the task completes or cannot be dispatched.
"agent_request"The task request delivered to an agent for an A2A task.
"a2a_task"The first message of an A2A task, published when the task is dispatched in queue mode.
"chat_cancel"A request to stop the agent's turn for an earlier chat_message. content holds target_message_id and an optional reason.
"device_command"One tool call for controlling a device or computer, such as a screenshot, click or typing. The agent runs it on the device without a model turn.
"device_result"The successful result of a device_command. reply_to is the ID of the command.
"device_error"The failure of a device_command. content holds error and code.

MessageEnvelope.state values

ValueMeaning
"streaming"The message is still being written. body and parts can still change.
"completed"The message was finished normally.
"failed"The agent failed to finish the message.
"refused"The agent refused to answer. body holds the refusal text.
"cancelled"The message was stopped on request before it finished.

MessageEnvelope.stop_reason values

ValueMeaning
"end_turn"The agent finished its turn normally.
"max_tokens"The output limit was reached before the agent finished.
"tool_use"The agent stopped to call a tool.
"user_stop"The user stopped the agent.
"timeout"The time limit was reached before the agent finished.
"error"The agent stopped because of an error.
"refused"The agent refused to answer.
"content_filter"The reply was stopped by a content filter.
"agent_lost"The server ended the message because the agent that was producing it is no longer running, for example because it crashed or was replaced.

MessageEnvelope.parts[] by type

The structure of MessageEnvelope.parts[] depends on its own type value.

Value of typeDescriptionStructure
"text"A piece of the reply text.MessagePartText
"thinking"A piece of the agent's reasoning.MessagePartThinking
"tool_use"A tool call made by the agent.MessagePartToolUse
"tool_result"The result of a tool call.MessagePartToolResult
"file"A file attached to the message. Images, audio and video are all file parts; tell them apart by mime_type.MessagePartFile
"source"A cited source or reference.MessagePartSource
"custom"An extension part for structured content that has no dedicated type. kind says what the part is.MessagePartCustom

MessageEnvelopeResponse

—

Used by: Messages

FieldTypeRequiredDescription
dataMessageEnvelopeyesThe message.

MessagePage

—

Used by: Messages

FieldTypeRequiredDescription
messagesarray<Message>yesMessages on this page.
next_cursorstringnoCursor to pass as cursor to get the next page. Empty when has_more is false.
has_morebooleanyesWhether more messages are available after this page.
latest_offsetintegeryesUpper bound of the offsets scanned for this page. It is not the history boundary; use history_boundary_offset for that. Constraints: format=int64.
history_generationintegeryesGeneration of the conversation history this page was read from. Constraints: format=int64.
history_boundary_offsetintegeryesOffset of the history boundary for the current generation: the point a clear or recovery of the history moved the start of the history to. Constraints: format=int64.

MessagePartCustom

An extension part for structured content that has no dedicated type. kind says what the part is.

Used by: Messages

FieldTypeRequiredDescription
typestringyesAlways custom.
kindstringnoWhat kind of custom part this is.
dataJSONValuenoPayload of the part as JSON; it depends on kind. Nullable.

Additional properties are accepted.

MessagePartFile

A file attached to the message. Images, audio and video are all file parts; tell them apart by mime_type.

Used by: Messages

FieldTypeRequiredDescription
typestringyesAlways file.
urlstringnoURL of the file.
mime_typestringnoMIME type of the file, for example image/png.
namestringnoFile name.
sizeintegernoSize of the file in bytes. Constraints: format=int64.

Additional properties are accepted.

MessagePartSource

A cited source or reference.

Used by: Messages

FieldTypeRequiredDescription
typestringyesAlways source.
urlstringnoURL of the source.
titlestringnoTitle of the source.
snippetstringnoExcerpt of the source.

Additional properties are accepted.

MessagePartText

A piece of the reply text.

Used by: Messages

FieldTypeRequiredDescription
typestringyesAlways text.
textstringnoThe text.

Additional properties are accepted.

MessagePartThinking

A piece of the agent's reasoning.

Used by: Messages

FieldTypeRequiredDescription
typestringyesAlways thinking.
textstringnoThe reasoning text.
statestringnoWhether the reasoning is still being written. Allowed values: "streaming" — The part is still being written; "done" — The part is complete. A missing state also means done. (enum table)

Additional properties are accepted.

MessagePartToolResult

The result of a tool call.

Used by: Messages

FieldTypeRequiredDescription
typestringyesAlways tool_result.
tool_use_idstringnoID of the tool_use part this result belongs to.
contentJSONValuenoResult of the tool: a JSON object or a plain string. Nullable.
is_errorbooleannoWhether the tool call failed.

Additional properties are accepted.

MessagePartToolUse

A tool call made by the agent.

Used by: Messages

FieldTypeRequiredDescription
typestringyesAlways tool_use.
idstringnoID of the tool call. A tool_result part refers to it with tool_use_id.
namestringnoName of the tool.
argumentsJSONValuenoArguments of the call as JSON. Nullable.
statestringnoWhether the arguments are still being written. Allowed values: "streaming" — The part is still being written; "done" — The part is complete. A missing state also means done. (enum table)

Additional properties are accepted.

ModelPage

—

Used by: Catalog

FieldTypeRequiredDescription
dataarray<DeployModel>yesModels that match the filters.
totalintegeryesNumber of models that match the filters.

portalBindWire

—

Used by: Device bindings

FieldTypeRequiredDescription
provider_idstringnoID of the provider that hosts the instance. Set when a new instance was created for the device.
bind_idstringyesID of the bind session. It starts with portal_.
short_codestringyesShort code the user can enter on the device instead of scanning the QR code. It uses uppercase letters and digits without look-alike characters.
statusstringyesState of the portal bind session. A session that has expired is deleted, so lookups of an expired session fail with 404 not_found instead. Allowed values: see the table below, portalBindWire.status values.
instance_idstringnoID of the instance bound to the device. Present once the session is bound.
expires_atintegeryesTime the session expires, in Unix seconds. A session is valid for 10 minutes.
namestringyesDisplay name for the instance created for the device. Defaults to BeeRunner.
qr_payloadstringnoLink to encode in the QR code the device scans. Returned only when the session is created.
api_base_urlstringnoBase URL of the API the device connects to. Returned only when the session is created.
relay_urlstringnoURL of the relay the device connects through. Returned only when the session is created.
desired_statusstringnoLifecycle phase the created instance is driven toward: running. Set when a new instance was created for the device.
connectivitystringnoReachability of the created instance: unknown, online or offline. Set when a new instance was created for the device.
resource_versionintegernoResource version of the created instance. Set when a new instance was created for the device.

portalBindWire.status values

ValueMeaning
"pending"Created and waiting for a device to scan the QR code or enter the short code.
"awaiting_confirmation"A device claimed the session. Call the resolve operation with decision to continue.
"confirming"The decision create was accepted and a new instance is being created for the device.
"bound"The device is bound to an instance, given by instance_id.
"revoked"Revoked with the revoke operation. A revoked session cannot be claimed or resolved.

ProtoAutomationInput

—

Used by: Automations

FieldTypeRequiredDescription
namestringnoDisplay name of the automation, 1 to 256 characters and not blank.
promptstringnoText sent to the agent on every run, up to 65536 bytes and not blank.
targetProtoAutomationTargetnoAgent the prompt is sent to. Required.
scheduleProtoAutomationSchedulenoWhen the automation runs. Required.
sessionProtoAutomationSessionnoNot accepted by this API: a request that includes it fails with 400 invalid_argument. Automations created here open a new conversation for every run.
validFromstringnoEarliest time a run may start, as an RFC 3339 timestamp, inclusive. Omit it for no lower bound. It must not be after validUntil. Constraints: format=date-time.
validUntilstringnoLatest time a run may start, as an RFC 3339 timestamp, inclusive. Omit it for no upper bound. After it the automation becomes expired. Constraints: format=date-time.
createdInConversationIdstringnoID of the conversation the automation is created from, if any. It must be a conversation of the same end user.

ProtoAutomationPatch

—

Used by: Automations

FieldTypeRequiredDescription
namestringnoNew display name, 1 to 256 characters and not blank.
promptstringnoNew prompt sent to the agent on every run, up to 65536 bytes and not blank.
targetProtoAutomationTargetnoNew agent the prompt is sent to.
scheduleProtoAutomationSchedulenoNew schedule. It replaces the whole schedule, so send every field the kind needs, including anchorAt for every.
sessionProtoAutomationSessionnoNot accepted by this API: a request that includes it fails with 400 invalid_argument.
validFromstringnoNew earliest time a run may start, as an RFC 3339 timestamp, inclusive. Cannot be combined with clearValidFrom. Constraints: format=date-time.
validUntilstringnoNew latest time a run may start, as an RFC 3339 timestamp, inclusive. Cannot be combined with clearValidUntil. Constraints: format=date-time.
clearValidFrombooleannoSet to true to remove the lower bound of the validity period. Cannot be combined with validFrom.
clearValidUntilbooleannoSet to true to remove the upper bound of the validity period. Cannot be combined with validUntil.

ProtoAutomationRule

—

Used by: Automations

FieldTypeRequiredDescription
idstringnoUnique ID of the automation.
namestringnoDisplay name of the automation.
promptstringnoText sent to the agent on every run.
targetProtoAutomationTargetnoAgent the prompt is sent to.
scheduleProtoAutomationSchedulenoWhen the automation runs. Empty (kind unset) for webhook automations.
sessionProtoAutomationSessionnoHow runs choose their conversation. Automations created through this API always use new.
validFromstringnoEarliest time a run may start, as an RFC 3339 timestamp, inclusive. Null when there is no lower bound. Constraints: format=date-time.
validUntilstringnoLatest time a run may start, as an RFC 3339 timestamp, inclusive. Null when there is no upper bound. Constraints: format=date-time.
statusstringnoState of the automation. Allowed values: "enabled" — Active. A schedule automation runs at nextFireAt; a webhook automation reacts to incoming events; "paused" — Paused with the pause operation. No runs are created until it is resumed; "expired" — A schedule automation with no run left, for example a finished at schedule or one past validUntil. (enum table)
nextFireAtstringnoTime of the next scheduled run, as an RFC 3339 timestamp. Null when the automation is paused or expired and for webhook automations. Constraints: format=date-time.
createdInConversationIdstringnoID of the conversation the automation was created from. Empty when it was not created from a conversation.
createdAtstringnoTime the automation was created, as an RFC 3339 timestamp. Constraints: format=date-time.
updatedAtstringnoTime the automation was last changed, as an RFC 3339 timestamp. Constraints: format=date-time.
triggerKindstringnoWhat starts a run. Automations created before webhook triggers existed can report an empty value; treat it as schedule. Allowed values: "schedule" — Runs start on the schedule; "webhook" — Runs start when the event source delivers an event, optionally narrowed by eventFilter. (enum table)
hookIdstringnoID of the endpoint that receives the events of a webhook automation. Empty for schedule automations and for Gmail automations.
sourcestringnoPlatform that sends the events of a webhook automation, for example github or gmail. Empty for schedule automations.
eventFilterstringnoEvent type that starts a run of a webhook automation. Empty when every event starts a run.
mailboxstringnoGmail address a webhook automation watches. Empty for other sources.

ProtoAutomationRun

—

Used by: Automations

FieldTypeRequiredDescription
idstringnoUnique ID of the run.
automationIdstringnoID of the automation the run belongs to.
triggerTypestringnoWhat created the run. Allowed values: "schedule" — The automation's schedule came due; "manual" — A caller started it with the create-run operation; "rerun" — A caller started it with the create-run operation to repeat the earlier run in sourceRunId; "webhook" — An event arrived for a webhook automation. (enum table)
scheduledAtstringnoTime the run was due, as an RFC 3339 timestamp: the scheduled time for scheduled runs, the time of the request or event for the others. Constraints: format=date-time.
createdAtstringnoTime the run was created, as an RFC 3339 timestamp. Constraints: format=date-time.
statusstringnoDelivery state of the run. It tells whether the prompt reached the agent's conversation, not whether the agent finished the work. Allowed values: "scheduled" — Created and waiting to be delivered. A reasonCode of dispatch_unconfirmed means delivery started and its outcome is not confirmed yet; "dispatched" — The prompt was accepted into the conversation named by conversationId; "failed" — Delivery was rejected before the prompt was sent. reasonCode tells why; "skipped" — Not delivered because a condition no longer held when the run was due. reasonCode tells why. (enum table)
targetProtoAutomationTargetnoAgent the run delivers to, copied from the automation when the run was created.
sessionProtoAutomationSessionnoHow the run chooses its conversation, copied from the automation when the run was created. A rerun sets it from rerunSessionMode.
conversationIdstringnoID of the conversation the prompt is delivered into. Empty until the run is bound to a conversation.
wakeMessageIdstringnoID of the conversation message that carries the prompt. It equals the run id.
sourceRunIdstringnoID of the run this run repeats. Set only for reruns.
rerunSessionModestringnoWhich conversation a rerun is delivered into. Empty for runs that are not reruns. Allowed values: "original" — The conversation the source run was delivered into; "new" — A new conversation. (enum table)
reasonCodestringnoWhy a run was skipped or failed, or is unconfirmed. Empty otherwise and after the prompt was accepted. Skip reasons include outside_validity, missed_schedule (the run was not delivered within its window), automation_paused, automation_deleted and preparation_stale (the agent or session of the automation changed after the run was created). A failed run carries an API error code such as target_not_found, permission_denied, conversation_unavailable or dependency_unavailable. dispatch_unconfirmed means delivery started and its outcome is unknown. New codes can be added, so ignore codes you do not know.
dispatchedAtstringnoTime the prompt was accepted, as an RFC 3339 timestamp. Null until status is dispatched. Constraints: format=date-time.

ProtoAutomationRunInput

—

Used by: Automations

FieldTypeRequiredDescription
sourceRunIdstringnoID of an earlier run of the same automation to repeat. Send it together with rerunSessionMode, or send neither for a plain manual run.
rerunSessionModestringnoWhich conversation the rerun is delivered into. Required when sourceRunId is sent and not allowed without it. Allowed values: "original" — The conversation the source run was delivered into; "new" — A new conversation. (enum table)

ProtoAutomationSchedule

—

Used by: Automations

FieldTypeRequiredDescription
kindstringnoType of the schedule. It decides which of the other fields are required. Allowed values: "at" — Runs once, at at; "every" — Runs repeatedly, every intervalSeconds seconds counted from anchorAt; "cron" — Runs on the five-field cron expression, evaluated in the time zone tz. (enum table)
tzstringnoIANA time zone name, for example Asia/Shanghai. Required for every kind; Local is not accepted.
atstringnoTime of the single run, as an RFC 3339 timestamp. Required when kind is at; not allowed for other kinds. Constraints: format=date-time.
intervalSecondsstringnoSeconds between runs, as a decimal string. Required and greater than 0 when kind is every; not allowed for other kinds.
anchorAtstringnoTime the interval is counted from, as an RFC 3339 timestamp: runs fall on anchorAt plus whole multiples of the interval. When creating an every schedule it defaults to the creation time; when replacing a schedule it is required. Not allowed for other kinds. Constraints: format=date-time.
expressionstringnoFive-field cron expression: minute, hour, day of month, month and day of week. Required when kind is cron; not allowed for other kinds.

ProtoAutomationSession

—

Used by: Automations

FieldTypeRequiredDescription
modestringnoHow a run chooses the conversation it is delivered into. Allowed values: "new" — Every run opens a new conversation with the agent. Automations created through this API always use it; "bound" — Every run is delivered into the conversation named by boundConversationId. (enum table)
boundConversationIdstringnoID of the conversation runs are delivered into. Set only when mode is bound; empty otherwise.

ProtoAutomationTarget

—

Used by: Automations

FieldTypeRequiredDescription
instanceIdstringnoID of the instance the automation runs on.
agentIdstringnoID of the agent that receives the prompt. It must be an active agent of instanceId in your app. Required.

ProtoAutomationWebhookInput

—

Used by: Automations

FieldTypeRequiredDescription
namestringnoDisplay name of the automation, 1 to 256 characters and not blank.
promptstringnoText sent to the agent on every run, up to 65536 bytes and not blank.
targetProtoAutomationTargetnoAgent the prompt is sent to. Required.
sessionProtoAutomationSessionnoNot accepted by this API: a request that includes it fails with 400 invalid_argument. Automations created here open a new conversation for every run.
validFromstringnoEarliest time a run may start, as an RFC 3339 timestamp, inclusive. Omit it for no lower bound. Constraints: format=date-time.
validUntilstringnoLatest time a run may start, as an RFC 3339 timestamp, inclusive. Omit it for no upper bound. Constraints: format=date-time.
createdInConversationIdstringnoID of the conversation the automation is created from, if any. It must be a conversation of the same end user.
sourcestringnoPlatform that sends the events, for example github or gmail, at most 64 characters without whitespace. The agent must have the matching connector set up. Required.
eventsarray<string>noNames of the events to subscribe to at the source, for example the GitHub event types the repository should deliver.
repoOwnerstringnoOwner of the repository to watch. Required when source is github.
repoNamestringnoName of the repository to watch. Required when source is github.
eventFilterstringnoEvent type that starts a run. When set, only events of exactly this type start a run; others are skipped. Empty accepts every event.
mailboxstringnoGmail address to watch. Required when source is gmail; leave empty for other sources.

ProtoListAutomationRunsResponse

—

Used by: Automations

FieldTypeRequiredDescription
itemsarray<ProtoAutomationRun>noRuns on this page.
nextCursorstringnoCursor to pass as cursor to get the next page. Empty when there are no more runs.

ProtoListAutomationsResponse

—

Used by: Automations

FieldTypeRequiredDescription
itemsarray<ProtoAutomationRule>noAutomations on this page.
nextCursorstringnoCursor to pass as cursor to get the next page. Empty when there are no more automations.

Provider

—

Used by: Catalog

FieldTypeRequiredDescription
idstringyesID of the provider.
namestringyesDisplay name of the provider.
descriptionstringno—
capabilitiesProviderCapabilitiesno—

ProviderCapabilities

—

Used by: Catalog

FieldTypeRequiredDescription
long_runningbooleanyes—
browser_usebooleanyes—
code_execbooleanyes—
file_systembooleanyes—
custom_imagebooleanyes—
devicebooleanyes—
max_duration_secintegeryes—
cost_modelstringyes—

ProviderPage

—

Used by: Catalog

FieldTypeRequiredDescription
dataarray<Provider>yesProviders that match the filters.
totalintegeryesNumber of providers that match the filters.

RealtimeTicketHeader

—

Used by: Instances

FieldTypeRequiredDescription
algstringyesSignature algorithm of the ticket: RS256.
typstringyesToken type: JWT.
kidstringyesID of the key that signed the ticket.

ReasoningResult

—

Used by: Conversations

FieldTypeRequiredDescription
metadata_versionintegeryesVersion of the conversation settings after this change. Send it, in double quotes, as If-Match of the next update. It is also returned in the ETag header.

ReasoningResultResponse

—

Used by: Conversations

FieldTypeRequiredDescription
dataReasoningResultyesThe result of the change.

ReasoningSettings

—

Used by: Conversations

FieldTypeRequiredDescription
modelIdstringyesID of the model that reasoningOverrideId applies to, 1 to 512 characters. Constraints: minLength=1, maxLength=512.
reasoningOverrideIdstringyesID of the reasoning option to use with the model, 1 to 64 characters. Send null to use the model's default. Nullable. Constraints: minLength=1, maxLength=64.

RegionPage

—

Used by: Catalog

FieldTypeRequiredDescription
dataarray<DeployRegion>yesRegions that match the filters.
totalintegeryesNumber of regions that match the filters.

ReplyShareResponse

—

Used by: Messages

FieldTypeRequiredDescription
dataobjectyesThe shared reply.
data.slugstringyesPublic slug that identifies the share.
data.created_atstringyesTime the share was created.
data.agentobjectyesThe agent that wrote the reply.
data.agent.namestringyesDisplay name of the agent.
data.agent.avatar_urlstringyesURL of the agent's avatar.
data.agent.frameworkstringyesAgent framework of the instance the agent runs on.
data.replyobjectyesThe shared reply.
data.reply.partsarray<object>yesContent of the reply. It holds one part of type text.
data.reply.parts[].typestringyesAlways text.
data.reply.parts[].textstringyesText of the reply.
data.reply.created_atstringyesTime the reply message was created.
data.sourcesarray<object>yesWeb sources the reply cites. Only https sources are listed. Each source is returned with url, domain (its host name) and, when the agent provided one, title.
data.sources[].urlstringnoURL of the source.
data.sources[].titlestringnoTitle of the source, when the agent provided one.
data.filesarray<object>yesFiles the reply links to. Only files published by BeeOS are listed. Each file is returned with name, public_url and, when known, mime_type.
data.files[].file_idstringnoReserved. The server does not currently return this field; a file is identified by public_url.
data.files[].filenamestringnoReserved. The server does not currently return this field; the file name is returned as name.
data.files[].content_typestringnoReserved. The server does not currently return this field; the MIME type is returned as mime_type.
data.files[].size_bytesintegernoReserved. The server does not currently return this field.

RuntimeExecResult

—

Used by: Instances

FieldTypeRequiredDescription
exit_codeintegeryesExit code of the command.
stdoutstringyesStandard output of the command, at most 64 KiB.
stderrstringyesStandard error of the command, at most 64 KiB.
truncatedbooleanyesWhether the output was truncated.

RuntimeInstanceResult

—

Used by: Instances

FieldTypeRequiredDescription
dataRuntimeInstanceSummaryyesThe instance as of this response.
operationRuntimeOperationSummaryyesLifecycle operation that this response reports on.

RuntimeInstanceStatusResult

—

Used by: Instances

FieldTypeRequiredDescription
dataobjectyesCurrent status of the instance.
data.idstringyesUnique ID of the instance.
data.namestringyesDisplay name of the instance.
data.statusstringyesLifecycle phase of the instance: pending, provisioning, running, stopped or terminated. Allowed values: see the table below, RuntimeInstanceStatusResult.data.status values.
data.desired_statusstringyesLifecycle phase the instance is being driven toward: running, stopped or terminated. Allowed values: "running" — The instance should be running; "stopped" — The instance should be stopped; "terminated" — The instance should be deleted. (enum table)
data.connectivitystringyesReachability of the instance's agent: unknown, online or offline. Allowed values: "unknown" — Reachability has not been determined; "online" — The instance's agent is connected; "offline" — The instance's agent is not connected. (enum table)
operationRuntimeOperationSummaryyesLifecycle operation that this response reports on.

RuntimeInstanceStatusResult.data.status values

ValueMeaning
"pending"The instance was created and is waiting to be provisioned.
"provisioning"The instance is being provisioned or started.
"running"The instance is running.
"stopped"The instance is stopped and can be started again.
"terminated"The instance was deleted and cannot be used again.

RuntimeInstanceSummary

—

Used by: Instances

FieldTypeRequiredDescription
idstringyesUnique ID of the instance.
organization_idstringyesID of the organization that owns the instance.
app_idstringyesID of the app the instance belongs to.
developer_idstringyesID of the developer account the instance was created under.
namestringyesDisplay name of the instance.
harnessstringyesProduct harness name (for example openclaw), not a UHP harness_id (chrn_*).
provider_idstringyesID of the provider that hosts the instance.
regionstringyesRegion the instance is deployed in.
os_typestringyesOperating system of the instance: linux, windows, android or macos.
statusstringyesLifecycle phase of the instance: pending, provisioning, running, stopped or terminated. Allowed values: see the table below, RuntimeInstanceSummary.status values.
desired_statusstringyesLifecycle phase the instance is being driven toward: running, stopped or terminated. Allowed values: "running" — The instance should be running; "stopped" — The instance should be stopped; "terminated" — The instance should be deleted. (enum table)
connectivitystringyesReachability of the instance's agent: unknown, online or offline. Allowed values: "unknown" — Reachability has not been determined; "online" — The instance's agent is connected; "offline" — The instance's agent is not connected. (enum table)
error_codestringnoStable code describing a failure or degraded state reported with a lifecycle result, for example quota_exceeded, capacity_pending, provision_failed or stop_failed. Raw provider errors are never exported.
ms_connection_statusstringyesStatus of the instance's message-channel connection: unknown, connecting, connected, reconnecting, disconnected or failed. It is reported independently of connectivity and is unknown while the instance is stopped or terminated, or has not reported recently.
image_idstringnoID of the platform image the instance runs.
image_version_idstringnoID of the platform image version the instance runs.
image_versionstringnoVersion label of the platform image the instance runs.
image_refstringnoPinned public image reference. Provider configuration is never included.
model_primarystringnoPrimary model configured for the instance.
modelsarray<string>noModels configured for the instance.
llmRuntimeLLMViewnoModel providers and models supplied for the instance, with API keys removed. Nullable.
hosting_typestringnoWhere the instance is hosted: cloud or selfhosted.
cloud_providerstringnoagentbay, beeos, or empty when self-hosted.
image_slotstringnoVariant trait. Key that selects the execution image for the instance. Not a container repository name.
worker_image_idstringnoVariant trait. AgentBay worker image. Never the platform image_id.
model_catalogstringnoVariant trait. served when Cloud answers model-list and reasoning-level requests, none when it answers neither. Empty and unknown values behave as none.
billing_slotstringnoVariant trait. Key into the monthly fee table that prices the instance.
icon_keystringnoVariant trait. UI icon selector. Clients must not derive it from harness.
device_controlbooleanyesVariant trait. Whether the instance accepts device-control commands. False means those commands are rejected.
runtime_profilestringnoVariant trait. Profile of the agent runtime the instance uses. Known values are openclaw, hermes and beeos-browser.
free_planbooleanyesVariant trait. Whether the free plan allows the instance's variant. False means the free plan does not allow it.
resource_versionintegeryesVersion of the instance record, starting at 1. Send it in the If-Match header of write requests so concurrent changes are detected.
has_ever_runbooleanyesWhether the instance has ever reached the running state. False means it has never delivered a running service.
created_atstringyesTime the instance was created, as an RFC 3339 UTC timestamp.
updated_atstringyesTime the instance was last updated, as an RFC 3339 UTC timestamp.
capabilitiesobjectyesCapabilities declared for the instance when it was provisioned, as flags such as computer, mobile, device and terminal. An empty object means none were declared.
capabilities.computerbooleanno—
capabilities.mobilebooleanno—
capabilities.devicebooleanno—
capabilities.terminalbooleanno—

RuntimeInstanceSummary.status values

ValueMeaning
"pending"The instance was created and is waiting to be provisioned.
"provisioning"The instance is being provisioned or started.
"running"The instance is running.
"stopped"The instance is stopped and can be started again.
"terminated"The instance was deleted and cannot be used again.

RuntimeLLM

—

Used by: Instances

FieldTypeRequiredDescription
providersarray<RuntimeLLMProvider>yesModel provider endpoints, 1 to 8 entries. Every provider must be referenced by at least one model.
modelsarray<RuntimeLLMModel>yesSelectable models, 1 to 256 entries. Exactly one has the default role.

RuntimeLLMModel

—

Used by: Instances

FieldTypeRequiredDescription
provider_idstringyesID of the provider that serves the model.
modelstringyesModel name as the provider API expects it. It is unique per provider.
rolestringyesRole of the model: default, fallback or available. Exactly one model is default. Automatic failover uses only fallback models. Allowed values: "default" — The model the instance uses by default. Exactly one model has this role, with order 0; "fallback" — A model that automatic failover switches to when the default model fails; "available" — A model that can be selected but is never used for automatic failover. (enum table)
orderintegeryesPosition of the model, unique across all models. The default model has order 0; fallback and available models have order 1 or more.

RuntimeLLMProvider

—

Used by: Instances

FieldTypeRequiredDescription
idstringyesCaller-chosen ID that models refer to. It is unique within the request, 1 to 64 characters from A-Z, a-z, 0-9, _ and -.
protocolstringyesAPI protocol the endpoint speaks: openai or anthropic. Allowed values: "openai" — The OpenAI-compatible API; "anthropic" — The Anthropic Messages API. (enum table)
base_urlstringyesHTTPS base URL of the provider API, at most 512 characters. It must not contain credentials, a query string or a fragment.
api_keystringnoAPI key for the provider, 1 to 4096 characters without whitespace. It is write-only and never returned. Write-only.

RuntimeLLMProviderView

—

Used by: Instances

FieldTypeRequiredDescription
idstringyesID of the provider, as referenced by models.
protocolstringyesAPI protocol the endpoint speaks: openai or anthropic.
base_urlstringyesHTTPS base URL of the provider API.

RuntimeLLMView

—

Used by: Instances

FieldTypeRequiredDescription
providersarray<RuntimeLLMProviderView>yesModel provider endpoints, without API keys.
modelsarray<RuntimeLLMModel>yesSelectable models.

RuntimeMethodResponse

JSON-RPC 2.0 response. It carries result on success and error on failure, never both. Errors are returned with HTTP status 200.

Used by: A2A

FieldTypeRequiredDescription
jsonrpcstringyesJSON-RPC protocol version: always 2.0. Allowed values: "2.0" — JSON-RPC version 2.0.
idstring | integeryesID of the request that this response answers. It is null when the request could not be read. Nullable.
resultJSONValuenoResult of the method. Present only on success; its shape depends on the method. Nullable.
errorobjectnoError of the call. Present only on failure.
error.codeintegeryesError code. -32700 parse error, -32600 invalid request, -32601 method not found, -32602 invalid params, -32603 internal error, -32001 task not found, -32002 task not cancelable, -32003 push notifications not supported, -32004 unsupported operation, -32005 content type not supported, -32006 invalid agent response, -32007 agent card not configured, -32008 agent busy, -32009 incompatible A2A-Version, -32010 the connection dropped after the task was dispatched (read the task instead of sending it again), -32011 task timed out, -32012 the connection dropped before dispatch (nothing ran; safe to retry).
error.messagestringyesHuman-readable description of the error.
error.dataJSONValuenoMachine-readable detail of the error: a list with one object of type type.googleapis.com/google.rpc.ErrorInfo. Its reason is the error name, for example TASK_NOT_FOUND, and its metadata repeats the code and message. Nullable.

RuntimeOperationSummary

—

Used by: Instances

FieldTypeRequiredDescription
idstringyesUnique ID of the operation.
kindstringyesKind of operation: create, start, stop, delete or image_upgrade. Allowed values: see the table below, RuntimeOperationSummary.kind values.
phasestringyesPhase of the operation: intent, reserved, admitted, provisioning, running, cleanup_pending, failed, stop_pending, stopped, delete_pending, deleted, upgrade_pending or rollback_pending. It describes durable work, not observed instance health. Allowed values: see the table below, RuntimeOperationSummary.phase values.
error_codestringnoStable failure code, the same value as the instance error_code. Raw provider errors are never exported.

RuntimeOperationSummary.kind values

ValueMeaning
"create"Create the instance.
"start"Start a stopped instance.
"stop"Stop the instance.
"delete"Delete the instance.
"image_upgrade"Upgrade the instance to another platform image.

RuntimeOperationSummary.phase values

ValueMeaning
"intent"The create request was recorded and nothing is reserved yet.
"reserved"The create request was accepted and its resources are reserved.
"admitted"The create request was admitted and is waiting to be provisioned.
"provisioning"The instance is being provisioned or started.
"running"Final phase of a successful create, start or image upgrade.
"cleanup_pending"A create failed and the resources it reserved are being cleaned up.
"failed"Final phase of a failed operation. See error_code.
"stop_pending"The instance is being stopped.
"stopped"Final phase of a successful stop.
"delete_pending"The instance is being deleted.
"deleted"Final phase of a successful delete.
"upgrade_pending"The image upgrade is being applied.
"rollback_pending"The image upgrade failed and the instance is being rolled back to its previous image.

RuntimeUpgradeJob

—

Used by: Instances

FieldTypeRequiredDescription
job_idstringyesUnique ID of the upgrade job.
image_version_idstringno—
instance_idstringyesID of the instance being upgraded.
statusstringyesStatus of the job: upgrade_pending, rollback_pending, failed or succeeded. Allowed values: "upgrade_pending" — The image upgrade is being applied; "rollback_pending" — The image upgrade failed and the instance is being rolled back to its previous image; "failed" — The image upgrade failed. See error; "succeeded" — The image upgrade finished and the instance runs the target version. (enum table)
targetstringyesImage version the instance is being upgraded to.
created_atstringyesTime the job was created, as an RFC 3339 UTC timestamp.
completed_atstringnoTime the job finished, as an RFC 3339 UTC timestamp. Omitted while the job is not finished. Nullable.
errorstringnoStable failure code. Omitted unless the job failed. Nullable.

ServerUsageSummary

—

Used by: Usage

FieldTypeRequiredDescription
total_bcstringyesTotal charge in the period, in BC micros (millionths of a BeeOS Credit, BC), as a decimal string. For example 1500000 is 1.5 BC.
total_recordsintegeryesNumber of usage records in the period.
by_categorymap<string, string>yesCharge per category in the period, in BC micros as decimal strings, keyed by category. Categories without usage in the period are absent.
by_appmap<string, string>noCharge per app in BC micros as decimal strings. Server API keys see only their own app, so this field is not returned to them.
category_countsmap<string, integer>yesNumber of usage records per category in the period, keyed by category. Categories without usage in the period are absent.

SetConversationModelInput

—

Used by: Conversations

FieldTypeRequiredDescription
model_override_idstringyesID of the model to use for this conversation, at most 512 characters. Send null to remove the override so the agent's default model is used again. When the override changes, the conversation's reasoning is cleared. Nullable. Constraints: maxLength=512.

TerminalSessionDocument

—

Used by: Instances

FieldTypeRequiredDescription
transportstringyesHow the ticket connects: always service-websocket.
protocolVersionintegeryesVersion of the ticket protocol. Currently 1.
headerRealtimeTicketHeaderyesHeader of the signed ticket.
websocketUrlstringyesWebSocket URL to open the terminal connection on. It already carries the ticket as a query parameter.
ticketstringyesSigned single-use ticket (a JWT) that authorizes one terminal connection. It is valid for 60 seconds.
issuedAtstringyesTime the ticket was issued, as an RFC 3339 timestamp. Constraints: format=date-time.
expiresAtstringyesTime the ticket expires, as an RFC 3339 timestamp. Tickets are valid for 60 seconds. Constraints: format=date-time.
claimsTerminalTicketClaimsyesClaims contained in the signed ticket.

TerminalTicketClaims

—

Used by: Instances

FieldTypeRequiredDescription
issstringyesIssuer of the ticket.
audstringyesAudience the ticket is intended for: the terminal service.
substringyesUnused. Cloud does not accept an external user id, so this claim is empty.
jtistringyesUnique ID of the ticket.
instance_idstringyesID of the instance the terminal belongs to.
platform_agent_idstringyesID of the agent the terminal session is for, the platformAgentId of the request.
client_idstringyesID generated for this terminal client connection.
conversation_idstringnoID of the conversation the terminal is attached to. Present only when the request sent conversationId.
resume_terminal_idstringnoID of the terminal to resume. Present only when the request sent resumeTerminalId.
iatintegeryesTime the ticket was issued, in Unix seconds.
expintegeryesTime the ticket expires, in Unix seconds.

UHPAnnotation

—

Used by: Responses

FieldTypeRequiredDescription
typestringyesKind of the annotation. Allowed values: "container_file_citation" — The text refers to a file produced by the agent.
container_idstringnoID of the container that holds the file. BeeOS does not currently set it.
file_idstringnoID of the file. BeeOS does not currently set it.
filenamestringnoName of the file.
download_urlstringnoAbsolute URL the file can be downloaded from. Constraints: format=uri.
start_indexintegernoStart of the cited range in the text, counted in characters. BeeOS sets it to 0.
end_indexintegernoEnd of the cited range in the text, counted in characters. BeeOS sets it to the length of the text.

Additional properties are accepted.

UHPCapabilities

Named booleans. A server reports false for a capability it does not implement rather than omitting it, so a client can distinguish "not supported" from "server predates this field". A client treats an absent key as false.

Used by: Catalog

FieldTypeRequiredDescription
streamingbooleannoThe server can stream a response as server-sent events.
sessionsbooleannoThe server keeps sessions that later requests can continue.
cancellationbooleannoA running response can be cancelled.
files_inputbooleannoThe server accepts files as input to a request.
files_outputbooleannoThe server returns files that a harness produced.
session_listingbooleannoThe server can list existing sessions.
harness_managementbooleannoHarnesses can be created, updated and deleted through the API.
session_sharingbooleannoThe server can share a session with other callers.
idempotencybooleannoThe server honors the Idempotency-Key header on the writes that accept it.
pluginsbooleannoThe server installs Agent Plugins packages into harnesses, serves their files, and exports a harness as a package. Optional at every class.
environmentsbooleannoThe server holds environments: a project's files and installed dependencies, built once, read-only at a fixed path in every session that names one. Optional at every class.
memoriesbooleannoThe server holds memories: a tree of memories with access granted per node, records kept by a connected provider, and tools a harness's agent reaches them with. Optional at every class.

Additional properties are accepted.

UHPContentPart

—

Used by: Responses

FieldTypeRequiredDescription
typestringyesKind of the part. Allowed values: "output_text" — Text of a message item, with optional annotations; "summary_text" — Summary text of a reasoning item. (enum table) Structure by type: see the variant table.
textstringnoText of the part.
annotationsarray<UHPAnnotation>noAnnotations that refer to ranges of text.

Additional properties are accepted.

UHPContentPart by type

The structure of UHPContentPart depends on its own type value.

Value of typeDescriptionStructure
"output_text"Text of a message item, with optional annotations.UHPContentPartOutputText
"summary_text"Summary text of a reasoning item.UHPContentPartSummaryText

UHPContentPartOutputText

Text of a message item.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways output_text.
textstringnoText of the part.
annotationsarray<UHPAnnotation>noAnnotations that refer to ranges of text.

Additional properties are accepted.

UHPContentPartSummaryText

Summary text of a reasoning item.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways summary_text.
textstringnoText of the part.

Additional properties are accepted.

UHPCreateResponseRequest

—

Used by: Responses

FieldTypeRequiredDescription
inputstring | array<map<string, JSONValue>>yesA bare string is shorthand for one user message.
modelstringnoModel id for this turn. Omitted means the harness default. Any requested id is dispatched as given.
metadataobjectnoClient metadata, the extension point of the Responses surface. harness_id selects the configured harness; environment names the environment this task reads, overriding the harness's (capability environments), refused with environment_not_found or environment_not_ready before the task starts.
metadata.harness_idstringnoID of the harness that runs the task. Optional when exactly one harness is in scope; required when there are several.
metadata.environmentstringnoName of an environment for the task to read. This server does not serve environments: a non-empty value is rejected with 404 environment_not_found.
streambooleannoWhen true the response is streamed as server-sent events; see UHPEvent. Otherwise the call returns the finished response. Defaults to false. Default: false.
previous_response_idstringnoID of an earlier response to continue. The new response runs in the same session. The earlier response must exist and belong to the same harness. Nullable.
instructionsstringnoInstructions placed before the input text and separated from it by a line containing ---.
storebooleannoWhether to keep the response so it can be fetched later. Defaults to true. Default: true.
max_output_tokensintegernoReserved and ignored. It is reported in metadata.ignored_fields of the response. Nullable.
max_stepintegernoAgent step (tool-call round) budget. Nullable.
timeout_secondsintegernoWall-clock budget. Nullable.
toolsarray<map<string, JSONValue>>noReserved and ignored. Accepted for wire compatibility, never acted on, and reported in metadata.ignored_fields on the response. A UHP harness invokes and executes tools itself and reports them in output; there is no input path for a tool result, so the client-executed tool loop this field implies cannot be completed by a conformant server. Configure tools on the harness instead — see Harnesses §4.1. Tasks §1.4.
includearray<string>noReserved and ignored. Accepted for wire compatibility, never acted on, and reported in metadata.ignored_fields on the response. No values are enumerated, so any string a server recognised would be one it named itself. Tasks §1.4.
backgroundbooleannoWhen true on a request that is not streamed, the call returns at once with the response still in_progress; fetch the result later. Ignored when stream is true. Default: false.

Additional properties are accepted.

UHPDiscovery

—

Used by: Catalog

FieldTypeRequiredDescription
objectstringyesObject type: always uhp.discovery. Allowed values: "uhp.discovery" — A protocol discovery document.
protocolstringyesProtocol the server speaks: always uhp, the Unified Harness Protocol. Allowed values: "uhp" — The Unified Harness Protocol.
versionsarray<string>yesProtocol versions the server speaks, as values of the UHP-Version header. Constraints: minItems=1.
default_versionstringyesProtocol version the server uses when a request does not send a UHP-Version header.
conformance_classstringyesCoarse conformance class of the server. Branch on the flags in capabilities, which are exact, rather than on the class. Allowed values: "core" — Discovery, harness reads, tasks and sessions; "extended" — Core plus file input and artifact retrieval; "full" — Extended plus harness management, plugins, environments and memories. (enum table)
capabilitiesUHPCapabilitiesyesWhat the server can do. A flag is true only when the endpoints behind it answer.
plugin_schemasarray<string>noThe Agent Plugins manifest schema identifiers this server installs. Present and non-empty when capabilities.plugins is true.
implementationobjectnoInformation about the server. Besides name and version it may carry availability, a statement of how model availability is computed.
implementation.namestringnoName of the server implementation: BeeOS Cloud.
implementation.versionstringnoVersion of the server implementation. Omitted when it is not known.

Additional properties are accepted.

UHPError

—

Used by: Responses

FieldTypeRequiredDescription
typestringyesCategory of the error. It follows from the HTTP status. Allowed values: see the table below, UHPError.type values.
codestringyesSpecific and machine-readable. Servers may define additional codes for conditions this specification does not cover, and must namespace them with a vendor prefix so a future version cannot collide with them.
messagestringyesOne sentence, safe to show a user. Must not contain credentials, internal hostnames, file paths, or stack traces.
paramstringnoDotted path to the offending field. Nullable.
detailmap<string, JSONValue>noAdditional structured detail about the error, when available. Nullable.

UHPError.type values

ValueMeaning
"invalid_request_error"The request is invalid or refers to something that does not exist or conflicts with current state.
"authentication_error"The API key is missing or invalid.
"permission_error"The API key does not have the scope the call needs.
"rate_limit_error"Too many requests.
"harness_error"The harness failed to do what was asked.
"server_error"The server could not serve the request.

Additional properties are accepted.

UHPErrorEnvelope

—

Used by: —

FieldTypeRequiredDescription
errorUHPErroryesThe error.
detailstringnoA human-readable alias of error.message, retained for clients written against implementations that predate this envelope. Carries no information not in error. Deprecated.

Additional properties are accepted.

UHPEvent

One streamed event. sequence_number starts at 0 and increases by exactly 1 per event, so a client can detect a dropped event rather than silently rendering a gap.

Used by: Responses

FieldTypeRequiredDescription
typestringyesKind of the event. Clients should ignore event types they do not know. Exactly one of response.completed, response.incomplete and response.failed ends a stream. Allowed values: see the table below, UHPEvent.type values. Structure by type: see the variant table.
sequence_numberintegeryesPosition of the event in the stream, starting at 0 and increasing by 1 per event. A gap means an event was lost. Constraints: minimum=0.
responseUHPResponsenoSnapshot of the response. Present on lifecycle events.
itemUHPOutputItemnoThe output item. Present on response.output_item.added and response.output_item.done.
partUHPContentPartnoThe content or summary part. Present on content part and reasoning summary part events.
annotationUHPAnnotationnoThe annotation. Present on response.output_text.annotation.added.
deltastringnoNew text, or new function arguments, since the previous delta.
textstringnoThe complete text. Present on response.output_text.done.
argumentsstringnoThe complete function arguments as a JSON string. Present on response.function_call_arguments.done.
item_idstringnoID of the output item the event belongs to.
output_indexintegernoPosition of the item in the output of the response. Constraints: minimum=0.
content_indexintegernoIndex of the content part within the item. Constraints: minimum=0.
summary_indexintegernoIndex of the summary part within the item. Constraints: minimum=0.
annotation_indexintegernoIndex of the annotation within the content part. Constraints: minimum=0.
codestringnoMachine-readable error code. Present on error events.
messagestringnoReadable error message. Present on error events.
paramstringnoDotted path of the field the error is about, or null. Present on error events. Nullable.

UHPEvent.type values

ValueMeaning
"response.created"The response was created. response is the initial snapshot with status in_progress.
"response.in_progress"The response is running. response is a snapshot.
"response.output_item.added"A new output item started. item is its initial form and output_index its position in the output.
"response.output_item.done"An output item is complete. item is its final form.
"response.content_part.added"A content part was added to a message item. part is its initial form.
"response.content_part.done"A content part of a message item is complete. part is its final form.
"response.output_text.delta"More text was appended to the text of a message item. delta is the new text.
"response.output_text.done"The text of a message item is complete. text is the full text.
"response.output_text.annotation.added"An annotation, such as a file citation, was added to the text of a message item.
"response.reasoning_summary_part.added"A summary part was added to a reasoning item.
"response.reasoning_summary_text.delta"More text was appended to the summary of a reasoning item. delta is the new text.
"response.reasoning_summary_part.done"A summary part of a reasoning item is complete. part is its final form.
"response.function_call_arguments.delta"The arguments of a function_call item were written. delta holds the arguments text.
"response.function_call_arguments.done"The arguments of a function_call item are complete. arguments holds them as a JSON string.
"response.completed"The response finished successfully. This is a terminal event: exactly one terminal event ends the stream.
"response.incomplete"The response stopped because of a limit, for example the output limit or the time limit. This is a terminal event.
"response.failed"The response failed or was cancelled; response.status is failed or cancelled. This is a terminal event.
"error"An error that did not end the response. code, message and param describe it, and a terminal event still follows.
"beeos.approval.requested"BeeOS extension. The agent asks for approval of an action. The approval property holds the approval request document.
"beeos.approval.resolved"BeeOS extension. An approval request was resolved. The approval property holds the resolution document.
"beeos.question.requested"BeeOS extension. The agent asks the user a question. The question property holds the question request document.
"beeos.question.resolved"BeeOS extension. A question request was resolved. The question property holds the resolution document.

Additional properties are accepted.

UHPEvent by type

The structure of UHPEvent depends on its own type value.

Value of typeDescriptionStructure
"response.created"The response was created. response is the initial snapshot with status in_progress.UHPEventResponse
"response.in_progress"The response is running. response is a snapshot.UHPEventResponse
"response.completed"The response finished successfully. This is a terminal event: exactly one terminal event ends the stream.UHPEventResponse
"response.incomplete"The response stopped because of a limit, for example the output limit or the time limit. This is a terminal event.UHPEventResponse
"response.failed"The response failed or was cancelled; response.status is failed or cancelled. This is a terminal event.UHPEventResponse
"response.output_item.added"A new output item started. item is its initial form and output_index its position in the output.UHPEventOutputItem
"response.output_item.done"An output item is complete. item is its final form.UHPEventOutputItem
"response.content_part.added"A content part was added to a message item. part is its initial form.UHPEventContentPart
"response.content_part.done"A content part of a message item is complete. part is its final form.UHPEventContentPart
"response.reasoning_summary_part.added"A summary part was added to a reasoning item.UHPEventReasoningSummaryPart
"response.reasoning_summary_part.done"A summary part of a reasoning item is complete. part is its final form.UHPEventReasoningSummaryPart
"response.output_text.delta"More text was appended to the text of a message item. delta is the new text.UHPEventOutputTextDelta
"response.reasoning_summary_text.delta"More text was appended to the summary of a reasoning item. delta is the new text.UHPEventReasoningSummaryTextDelta
"response.output_text.done"The text of a message item is complete. text is the full text.UHPEventOutputTextDone
"response.output_text.annotation.added"An annotation, such as a file citation, was added to the text of a message item.UHPEventAnnotationAdded
"response.function_call_arguments.delta"The arguments of a function_call item were written. delta holds the arguments text.UHPEventFunctionCallArgumentsDelta
"response.function_call_arguments.done"The arguments of a function_call item are complete. arguments holds them as a JSON string.UHPEventFunctionCallArgumentsDone
"error"An error that did not end the response. code, message and param describe it, and a terminal event still follows.UHPEventError
"beeos.approval.requested"BeeOS extension. The agent asks for approval of an action. The approval property holds the approval request document.UHPEventApproval
"beeos.approval.resolved"BeeOS extension. An approval request was resolved. The approval property holds the resolution document.UHPEventApproval
"beeos.question.requested"BeeOS extension. The agent asks the user a question. The question property holds the question request document.UHPEventQuestion
"beeos.question.resolved"BeeOS extension. A question request was resolved. The question property holds the resolution document.UHPEventQuestion

UHPEventAnnotationAdded

An annotation was added to the text of a message item.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways response.output_text.annotation.added.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
content_indexintegeryesIndex of the content part within the item. Constraints: minimum=0.
annotation_indexintegeryesIndex of the annotation within the content part. Constraints: minimum=0.
annotationUHPAnnotationyesThe annotation. Present on response.output_text.annotation.added.

Additional properties are accepted.

UHPEventApproval

BeeOS extension: an approval request or its resolution.

Used by: Responses

FieldTypeRequiredDescription
typestringyesOne of beeos.approval.requested, beeos.approval.resolved.
approvalJSONValueyesThe approval document, passed through from the agent host. Nullable.

Additional properties are accepted.

UHPEventContentPart

A content part of a message item was added or finished.

Used by: Responses

FieldTypeRequiredDescription
typestringyesOne of response.content_part.added, response.content_part.done.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
content_indexintegeryesIndex of the content part within the item. Constraints: minimum=0.
partUHPContentPartyesThe content or summary part. Present on content part and reasoning summary part events.

Additional properties are accepted.

UHPEventError

An error that did not end the response.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways error.
codestringyesMachine-readable error code. Present on error events.
messagestringyesReadable error message. Present on error events.
paramstringnoDotted path of the field the error is about, or null. Present on error events. Nullable.

Additional properties are accepted.

UHPEventFunctionCallArgumentsDelta

The arguments of a function call were written.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways response.function_call_arguments.delta.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
deltastringyesNew text, or new function arguments, since the previous delta.

Additional properties are accepted.

UHPEventFunctionCallArgumentsDone

The arguments of a function call are complete.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways response.function_call_arguments.done.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
argumentsstringyesThe complete function arguments as a JSON string. Present on response.function_call_arguments.done.

Additional properties are accepted.

UHPEventOutputItem

An output item started or finished.

Used by: Responses

FieldTypeRequiredDescription
typestringyesOne of response.output_item.added, response.output_item.done.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
itemUHPOutputItemyesThe output item. Present on response.output_item.added and response.output_item.done.

Additional properties are accepted.

UHPEventOutputTextDelta

New text of a message item.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways response.output_text.delta.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
content_indexintegeryesIndex of the content part within the item. Constraints: minimum=0.
deltastringyesNew text, or new function arguments, since the previous delta.

Additional properties are accepted.

UHPEventOutputTextDone

The text of a message item is complete.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways response.output_text.done.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
content_indexintegeryesIndex of the content part within the item. Constraints: minimum=0.
textstringyesThe complete text. Present on response.output_text.done.

Additional properties are accepted.

UHPEventQuestion

BeeOS extension: a question request or its resolution.

Used by: Responses

FieldTypeRequiredDescription
typestringyesOne of beeos.question.requested, beeos.question.resolved.
questionJSONValueyesThe question document, passed through from the agent host. Nullable.

Additional properties are accepted.

UHPEventReasoningSummaryPart

A summary part of a reasoning item was added or finished.

Used by: Responses

FieldTypeRequiredDescription
typestringyesOne of response.reasoning_summary_part.added, response.reasoning_summary_part.done.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
summary_indexintegeryesIndex of the summary part within the item. Constraints: minimum=0.
partUHPContentPartyesThe content or summary part. Present on content part and reasoning summary part events.

Additional properties are accepted.

UHPEventReasoningSummaryTextDelta

New summary text of a reasoning item.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways response.reasoning_summary_text.delta.
item_idstringyesID of the output item the event belongs to.
output_indexintegeryesPosition of the item in the output of the response. Constraints: minimum=0.
summary_indexintegeryesIndex of the summary part within the item. Constraints: minimum=0.
deltastringyesNew text, or new function arguments, since the previous delta.

Additional properties are accepted.

UHPEventResponse

A response lifecycle event that carries a snapshot of the response.

Used by: Responses

FieldTypeRequiredDescription
typestringyesOne of response.created, response.in_progress, response.completed, response.incomplete, response.failed.
responseUHPResponseyesSnapshot of the response. Present on lifecycle events.

Additional properties are accepted.

UHPHarness

—

Used by: Harnesses

FieldTypeRequiredDescription
idstringyesID of the harness. It starts with chrn_ and is the harness_id to use in other requests. Constraints: pattern=^chrn_.
objectstringnoObject type: always harness. Allowed values: "harness" — A harness object.
namestringyesDisplay name of the harness. When the harness has no display name, its name is used, and then its ID.
basestringyesOpaque. Not enumerated by this specification — a client must treat it as a string, or the protocol would need revising every time a harness is released.
baseLabelstringnoHuman-readable name of base: OpenClaw for openclaw or Hermes for hermes. Omitted when the base has no known label.
defaultModelstringnoID of the model the harness uses as its primary model. Omitted when it has none.
systemPromptstringnoSystem prompt of the harness. BeeOS Cloud does not support it, so it is never returned.
mcpServersarray<UHPMcpServer>noMCP servers attached to the harness. Returned only by a single-harness read while the instance is running, and only when the instance supports MCP servers; omitted in listings.
skillsarray<UHPSkill>noSkills installed on the harness. Returned only by a single-harness read while the instance is running; omitted in listings.
pluginsarray<UHPPlugin>noInstalled plugins. Their servers and skills join the harness's own for every turn; mcpServers and skills above report only what was written to them directly.
environmentstringnoThe environment (henv_) this harness's tasks read, mounted read-only at its mount; empty when none. A task may name another with its own environment field.
disabledToolsarray<string>noNames of tools disabled for the harness. BeeOS Cloud does not support it, so it is never returned.
maxStepintegernoMaximum number of steps per run. BeeOS Cloud does not support it, so it is never returned. Nullable.
timeoutSecondsintegernoRun timeout in seconds. BeeOS Cloud does not support it, so it is never returned. Nullable.
createdAtintegernoUnix milliseconds

Additional properties are accepted.

UHPHarnessCreate

—

Used by: Harnesses

FieldTypeRequiredDescription
namestringnoDisplay name of the harness. Required on create, 1 or more non-blank characters. On update it must equal the current name; renaming is rejected with 422 beeos_field_not_supported.
basestringyesBase (agent runtime) of the harness. On create it must equal the harness of the instance named by instance_id, otherwise the request fails with 422 unsupported_base. On update it must equal the harness's current base, which cannot be changed.
default_modelstringnoBeeOS Cloud honors this only on create; a different value on PUT returns 422 beeos_field_not_supported unless template_id is sent.
system_promptstringnoSystem prompt. BeeOS Cloud does not support it: a non-empty value is rejected with 422 beeos_field_not_supported.
mcp_serversarray<UHPMcpServer>noRejected on create (422 beeos_field_not_supported). On PUT the list is diffed against the runtime MCP servers: listed servers are set, omitted ones are unset; 422 beeos_mcp_not_supported only when the instance runtime has no MCP methods.
skillsarray<UHPSkill>noSkills the harness should have. Not accepted on create. On update the list is the complete desired set: a skill that carries files, content or blob is installed, a listed installed skill only changes its enabled state, and an installed skill that is not listed is uninstalled, except bundled ones.
pluginsarray<UHPPlugin>noRequires the plugins capability. Each item needs files or blob.
environmentstringnoAn environment id of the caller's scope, or empty. Requires the environments capability.
disabled_toolsarray<string>noNames of tools to disable. BeeOS Cloud does not support it: a non-empty list is rejected with 422 beeos_field_not_supported.
max_stepintegernoMaximum number of steps per run. BeeOS Cloud does not support it: any value is rejected with 422 beeos_field_not_supported. Nullable.
timeout_secondsintegernoRun timeout in seconds. BeeOS Cloud does not support it: any value is rejected with 422 beeos_field_not_supported. Nullable.
instance_idstringnoBeeOS extension. Instance that hosts a new harness (create only).
template_idstringnoBeeOS extension. Agent template applied to the harness.

Additional properties are accepted.

UHPHarnessModels

—

Used by: Harnesses

FieldTypeRequiredDescription
harness_idstringnoID of the harness the models belong to.
backendstringnoProvider family that every listed model belongs to: the part of the model ID before the first /, for example anthropic. Omitted when the models belong to several families or to none.
defaultstringnoID of the harness's primary model. Omitted when it has none.
fallbackstringnoModel used when a requested model cannot run. BeeOS Cloud does not report it, so it is never returned.
modelsarray<UHPModel>yesModels the harness may use, in the order of its instance's model list. When that list is empty, only the primary model is listed.

UHPMcpServer

A remote MCP server attached to a harness. Only enabled entries are connected for a turn; a disabled entry must not be contacted at all. An unreachable server must not fail the task. Unchanged from 2026-08-11: a process (stdio) server is declared inside a plugin, see PluginMcpServer.

Used by: Harnesses

FieldTypeRequiredDescription
namestringyesSanitised to a CLI-safe identifier by the server.
urlstringyesHTTPS endpoint of the MCP server, at most 2048 characters, without user information or a fragment. Reads report it empty. Constraints: format=uri.
transportstringnoTransport the server speaks. Defaults to http on write. Not returned for a server that uses neither transport. Allowed values: "http" — Streamable HTTP; "sse" — The older HTTP with server-sent events transport. (enum table) Default: "http".
enabledbooleannoWhether the server is enabled. Reads always report true. A server can only be set or removed: sending false is rejected with 422 invalid_input. Default: true.
headersmap<string, string>noRequest headers to send to the server, for example credentials. Header names and values must be non-empty. Never returned. Sending headers or auth also requires expires_at.
authstringnoBearer token, or a server-side reference the server resolves. A server must never return a resolved credential to a client.
expires_atstringnoBeeOS extension. Expiry of the supplied short-lived credential; the caller refreshes it with another PUT. Constraints: format=date-time.

Additional properties are accepted.

UHPModel

—

Used by: Harnesses

FieldTypeRequiredDescription
idstringyesID of the model, usually in provider/model form, for example anthropic/claude-sonnet-5.
labelstringnoDisplay name of the model. BeeOS Cloud does not report one, so it is omitted.
backendstringnoProvider family of the model: the part of id before the first /. Omitted when id has none.
availablebooleanyesComputed, not asserted: true means the server can serve this model for this harness right now. Listing a model as available and then failing the task is the worst outcome for a client, because a user has already chosen it.
defaultbooleannoWhether this is the harness's primary model.

Additional properties are accepted.

UHPModelCatalog

—

Used by: Harnesses

FieldTypeRequiredDescription
backendsmap<string, object>yesModels the caller's harnesses may use, grouped by provider family. Each key is a provider family, the part of a model ID before the first /, for example anthropic. Each value holds the family's default model ID and its models; models whose ID has no family are not listed here.

UHPOutputItem

A client must tolerate item types it does not recognise. A client that renders only message items and ignores the rest is a valid client.

Used by: Responses

FieldTypeRequiredDescription
idstringnoID of the output item.
typestringyesKind of the output item. Clients should ignore item types they do not know. Allowed values: "message" — A message written by the agent. Its text is in content; "reasoning" — The agent's reasoning. Its summary is in summary; "function_call" — A tool call made by the agent, with name and arguments; "function_call_output" — The result of a tool call, in output. (enum table) Structure by type: see the variant table.
statusstringnoProgress of the item. Allowed values: "in_progress" — The item is still being produced; "completed" — The item is complete. (enum table)
rolestringnoWho wrote a message item. Allowed values: "assistant" — The agent.
contentarray<UHPContentPart>noContent parts of a message item.
summaryarray<map<string, JSONValue>>noSummary of a reasoning item.
call_idstringnoID of the function call. A function_call_output item refers to its call with the same call_id.
namestringnoName of the function the agent called.
argumentsstringnoJSON, as a string
outputstringnoResult of the function call, as text.

Additional properties are accepted.

UHPOutputItem by type

The structure of UHPOutputItem depends on its own type value.

Value of typeDescriptionStructure
"message"A message written by the agent. Its text is in content.UHPOutputItemMessage
"reasoning"The agent's reasoning. Its summary is in summary.UHPOutputItemReasoning
"function_call"A tool call made by the agent, with name and arguments.UHPOutputItemFunctionCall
"function_call_output"The result of a tool call, in output.UHPOutputItemFunctionCallOutput

UHPOutputItemFunctionCall

A tool call made by the agent.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways function_call.
idstringnoID of the output item.
statusstringnoProgress of the item. Allowed values: "in_progress" — The item is still being produced; "completed" — The item is complete. (enum table)
call_idstringnoID of the function call. A function_call_output item refers to its call with the same call_id.
namestringnoName of the function the agent called.
argumentsstringnoJSON, as a string

Additional properties are accepted.

UHPOutputItemFunctionCallOutput

The result of a tool call.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways function_call_output.
idstringnoID of the output item.
statusstringnoProgress of the item. Allowed values: "in_progress" — The item is still being produced; "completed" — The item is complete. (enum table)
call_idstringnoID of the function call. A function_call_output item refers to its call with the same call_id.
outputstringnoResult of the function call, as text.

Additional properties are accepted.

UHPOutputItemMessage

A message written by the agent.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways message.
idstringnoID of the output item.
statusstringnoProgress of the item. Allowed values: "in_progress" — The item is still being produced; "completed" — The item is complete. (enum table)
rolestringnoWho wrote a message item. Allowed values: "assistant" — The agent.
contentarray<UHPContentPart>noContent parts of a message item.

Additional properties are accepted.

UHPOutputItemReasoning

The agent's reasoning.

Used by: Responses

FieldTypeRequiredDescription
typestringyesAlways reasoning.
idstringnoID of the output item.
statusstringnoProgress of the item. Allowed values: "in_progress" — The item is still being produced; "completed" — The item is complete. (enum table)
summaryarray<map<string, JSONValue>>noSummary of a reasoning item.

Additional properties are accepted.

UHPPlugin

An Agent Plugins package installed into a harness: plugin.json at the root, MCP servers in mcp.json, skills under skills/. A client writes files (or passes back blob) and optionally name and enabled; the server derives manifest, mcpServers, skills and skipped from the package on every write and ignores those fields on input. A refused package leaves the harness unchanged.

Used by: Harnesses

FieldTypeRequiredDescription
namestringyesThe manifest's name. Optional on write; if sent it must equal the manifest's. Constraints: maxLength=64, pattern=^(?!.*(--|\.\.))[a-z0-9]([a-z0-9.-]*[a-z0-9])?$.
enabledbooleannofalse keeps the plugin installed and inert; nothing in it is materialised or contacted. Default: true.
filesarray<UHPSkillFile>noThe package. Must contain plugin.json at its root.
blobstringnoServer-assigned handle for a package stored out of line. A client passes it back unchanged and reads the files from the plugin files endpoint.
manifestUHPPluginManifestnoThe plugin's plugin.json, parsed.
mcpServersarray<UHPPluginMcpServer>noDerived from mcp.json. Placeholders are reported unexpanded; enabled is always true, the plugin's own enabled governs.
skillsarray<UHPPluginSkill>noDerived from skills/, one entry per immediate child directory with a SKILL.md.
skippedarray<UHPPluginSkipped>noWhat the server found and could not load. Present on every plugin object the server returns, empty when nothing was skipped.

Additional properties are accepted.

UHPPluginManifest

plugin.json, parsed. Mirrors the Agent Plugins 1.0.0 manifest schema (https://agent-plugins.org/schemas/1.0.0/plugin.schema.json, Apache-2.0) field for field, and permits additional properties because a UHP client ignores fields it does not know. The schema a manifest's own $schema names is authoritative; a server validates against that.

Used by: Harnesses

FieldTypeRequiredDescription
$schemastringyesURI of the manifest schema that the file follows. Constraints: format=uri.
namestringyesName of the plugin: 1 to 64 lowercase letters, digits, dots and hyphens, starting and ending with a letter or digit. Constraints: minLength=1, maxLength=64, pattern=^(?!.*(--|\.\.))[a-z0-9]([a-z0-9.-]*[a-z0-9])?$.
versionstringnoVersion of the plugin.
descriptionstringnoDescription of the plugin.
authorobjectnoAuthor of the plugin.
author.namestringnoName of the author.
author.emailstringnoEmail address of the author.
author.urlstringnoURL of the author's web page.
homepagestringnoURL of the plugin's home page.
repositorystringnoLocation of the plugin's source repository.
licensestringnoLicense of the plugin.
keywordsarray<string>noKeywords that describe the plugin.
extensionsmap<string, map<string, JSONValue>>noClient-specific data keyed by reverse-domain namespace, per Agent Plugins §8.

Additional properties are accepted.

UHPPluginMcpServer

An MCP server a plugin's mcp.json declares, derived by the server. The harness MCP server object plus the stdio transport: url is required for http and sse, command for stdio. Placeholders are reported unexpanded; enabled is always true, the plugin's own enabled governs.

Used by: Harnesses

FieldTypeRequiredDescription
namestringyesName of the server, as declared in mcp.json.
transportstringnohttp is Streamable HTTP (streamable-http in mcp.json); sse the older HTTP+SSE transport; stdio a process the server launches inside the agent's sandbox. Allowed values: "http" — Streamable HTTP, written streamable-http in mcp.json; "sse" — The older HTTP with server-sent events transport; "stdio" — A local process started by the sandbox, configured with command, args, env and cwd. (enum table) Default: "http".
urlstringnoEndpoint (http and sse). Constraints: format=uri.
headersmap<string, string>noFixed request headers (http and sse). Never subject to placeholder expansion.
commandstringnoOne executable token (stdio): a bare name resolved on the sandbox's search path, or a plugin-relative path beginning with ./. Never a shell string, never expanded.
argsarray<string>noArguments (stdio). ${PLUGIN_ROOT} and ${PLUGIN_DATA} expand at run time.
envmap<string, string>noEnvironment overlay (stdio). Must not name PLUGIN_ROOT or PLUGIN_DATA; the server sets those. Values expand at run time.
cwdstringnoWorking directory (stdio). Defaults to the plugin root; must stay within the plugin root or PLUGIN_DATA.
enabledbooleannoWhether the server is enabled. Always true for a server derived from a plugin's mcp.json. Default: true.

Additional properties are accepted.

UHPPluginSkill

—

Used by: Harnesses

FieldTypeRequiredDescription
namestringyesThe SKILL.md frontmatter name, equal to the directory name.
descriptionstringnoDescription from the frontmatter of the skill's SKILL.md.

Additional properties are accepted.

UHPPluginSkipped

—

Used by: Harnesses

FieldTypeRequiredDescription
pathstringyesWhere in the package, e.g. skills/broken, mcp.json#/mcpServers/redline, plugin.json#/vendorField.
reasonstringyesOne sentence.

Additional properties are accepted.

UHPResponse

—

Used by: Responses

FieldTypeRequiredDescription
idstringyesID of the response. It starts with resp_. Constraints: pattern=^resp_.
objectstringyesObject type. Allowed values: "response" — A response object.
created_atintegeryesUnix seconds
statusUHPResponseStatusyesStatus of the response. See UHPResponseStatus for the values. Allowed values: see the table below, UHPResponseStatus values.
errorUHPErrornoNon-null only when status is failed. Nullable.
incomplete_detailsmap<string, JSONValue>noWhy the response is incomplete. When status is incomplete it holds reason, which is timeout when the time limit was reached. The protocol also defines max_tokens for the output limit, but this service does not currently produce it. Otherwise null. Nullable.
previous_response_idstringnoID of the response this one continues, when the request set previous_response_id. Nullable.
modelstringyesThe model that actually ran.
outputarray<UHPOutputItem>yesOutput items produced so far, in order.
storebooleannoWhether the response is kept so it can be fetched later.
usageUHPUsagenonull when the server cannot account for usage. A fabricated zero would be worse than an honest absence, because a client cannot tell it from a free task. Nullable.
metadataobjectnoExtra information about the run.
metadata.session_idstringnoID of the session the response ran in. Responses chained with previous_response_id share it.
metadata.environmentstringnoThe environment the task read, when it read one (capability environments).
metadata.requested_modelstringnoThe id the client sent, when the client sent one.
metadata.model_fallbackbooleannoTrue only when the harness reported it could not switch to the requested model.
metadata.model_fallback_reasonstringnoWhy the harness ran its default model instead of the requested one. When the harness gives no reason, it is The harness ran its default model.
metadata.ignored_fieldsarray<string>noRequest fields the server did not act on, by name, in any order. Required when the request carried tools or include, which are reserved and ignored. A silently ignored field is indistinguishable from an honoured one. Tasks §1.1 and §1.4.

UHPResponseStatus values

ValueMeaning
"in_progress"The response is still running.
"completed"The response finished successfully.
"failed"The work could not be done.
"incomplete"A limit, such as the output limit or the time limit, stopped the work. It is usually worth continuing.
"cancelled"The client asked to stop. A cancelled response is never reported as failed.

Additional properties are accepted.

UHPSkill

A skill is a FOLDER, not a file. A server must materialise the whole folder where the agent can read it — materialising only SKILL.md breaks every skill carrying references, scripts or data. Round-tripping a harness through GET and PUT must not lose skill contents.

Used by: Harnesses

FieldTypeRequiredDescription
namestringyesName of the skill, equal to the name of its folder. It is 1 to 128 lowercase letters, digits, dots, underscores and hyphens, starting with a letter or digit. An installed skill is 2 to 64 lowercase letters, digits and hyphens.
enabledbooleannofalse suppresses the skill, including one inherited from the base. Default: true.
filesarray<UHPSkillFile>noThe bundle. Must contain a SKILL.md.
contentstringnoShorthand for a single-file bundle whose only member is SKILL.md.
blobstringnoServer-assigned handle for a bundle stored out of line. A client receives it, passes it back unchanged, and reads the files from the skill files endpoint.
sha256stringnoBeeOS extension. SHA-256 of the Files bundle referenced by blob.
size_bytesstringnoBeeOS extension. Decimal byte size of the Files bundle referenced by blob.

Additional properties are accepted.

UHPSkillFile

One file of a skill folder or of a plugin package.

Used by: Harnesses

FieldTypeRequiredDescription
pathstringyesRelative to the skill's own folder, or to the plugin root; nested directories are supported. A server must reject a path that escapes the folder.
contentstringnoText content.
content_b64stringnoBase64 for binary content; preserved byte-for-byte.

Additional properties are accepted.

UHPUsage

—

Used by: Responses

FieldTypeRequiredDescription
input_tokensintegernoNumber of input tokens. Constraints: minimum=0.
output_tokensintegernoNumber of output tokens. Constraints: minimum=0.
total_tokensintegernoTotal number of tokens used. Constraints: minimum=0.
cache_read_tokensintegernoInput tokens read from the cache. Constraints: minimum=0.
cache_write_tokensintegernoInput tokens written to the cache. Constraints: minimum=0.

Additional properties are accepted.

UpdateConversationInput

—

Used by: Conversations

FieldTypeRequiredDescription
titlestringyesNew title of the conversation, 1 to 256 characters after leading and trailing whitespace is removed. Constraints: minLength=1, maxLength=256.

UpdateServerInstanceInput

—

Used by: Instances

FieldTypeRequiredDescription
namestringnoNew display name, 1 to 128 characters, without leading or trailing whitespace. Send name, llm or both.
llmRuntimeLLMnoReplacement model providers and models. It replaces the whole existing llm block. Provider API keys are write-only. When name is also sent, the llm block is replaced first.

Enums

Each table lists every allowed value of one field or parameter. An enum with more than 4 values that belongs to a field of an object structure is printed right after that structure's field table and only linked from here. The meaning column shows the x-enumDescriptions of the OpenAPI document; a value without one shows "—".

EnumValuesDefined in
A2AMessage.role values"ROLE_USER", "ROLE_AGENT"A2AMessage
A2ATaskStatus.state values"TASK_STATE_SUBMITTED", "TASK_STATE_WORKING", "TASK_STATE_COMPLETED", "TASK_STATE_FAILED", "TASK_STATE_CANCELED", "TASK_STATE_INPUT_REQUIRED", "TASK_STATE_REJECTED", "TASK_STATE_AUTH_REQUIRED"A2ATaskStatus
AgentAgent.conversation_transport values"acp", "message-service"AgentAgent
AgentAgent.status values"active", "inactive"AgentAgent
AgentAgent.visibility values"private", "unlisted", "org", "public", "marketplace"AgentAgent
agentBindDetailsWire.status values"pending", "confirming", "bound"agentBindDetailsWire
agentBindWire.status values"pending", "bound"agentBindWire
AgentPatch.visibility values"private", "unlisted", "org", "public", "marketplace"AgentPatch
AgentSnapshot.conversation_transport values"acp", "message-service"AgentSnapshot
AgentSnapshot.status values"active", "inactive"AgentSnapshot
AgentSnapshot.visibility values"private", "unlisted", "org", "public", "marketplace"AgentSnapshot
Binding.client_type values"web", "native"Binding
CanvasTicketClaims.role values"viewer", "editor"CanvasTicketClaims
ClientSessionInput.client_type values"web", "native"ClientSessionInput
CommandReceipt.status values"accepted", "completed"CommandReceipt
ConnectURLResponse.data.browser.role values"viewer", "controller"ConnectURLResponse
ConnectURLResponse.data.connectivity values"unknown", "online", "offline"ConnectURLResponse
ConnectURLResponse.data.mode values"browser-runtime", "service-websocket"ConnectURLResponse
ConnectURLResponse.data.service values"browser", "acp"ConnectURLResponse
Conversation.state values"open", "closed"Conversation
conversations.list state values"open", "closed", "all"conversations.list
Deletion.status values"pending", "processing", "failed", "completed"Deletion
DeletionAccepted.status values"pending", "processing", "failed", "completed"DeletionAccepted
deviceBindings.resolvePortal request.decision values"recover", "create"deviceBindings.resolvePortal
FileFile.file_type values"FILE_TYPE_IMAGE", "FILE_TYPE_VIDEO", "FILE_TYPE_AUDIO", "FILE_TYPE_DOCUMENT", "FILE_TYPE_ARCHIVE", "FILE_TYPE_OTHER"FileFile
FileFile.status values"pending_upload", "ready"FileFile
FileOrigin.source values"manual", "chat_upload", "runtime_generated", "template_skill"FileOrigin
FileSummary.instances[].source values"manual", "chat_upload", "runtime_generated", "template_skill"FileSummary
FileTransferDescriptor.direction values"upload", "download"FileTransferDescriptor
InstanceSummary.connectivity values"unknown", "online", "offline"InstanceSummary
InstanceSummary.desired_status values"running", "stopped", "terminated"InstanceSummary
InstanceSummary.status values"pending", "provisioning", "running", "stopped", "terminated"InstanceSummary
Message.realtime_publish_status values"published", "unconfirmed", "not_republished"Message
Message.state values"streaming", "completed", "failed", "refused", "cancelled"Message
Message.stop_reason values"end_turn", "max_tokens", "tool_use", "user_stop", "timeout", "error", "refused", "content_filter", "agent_lost"Message
Message.type values"chat_message", "agent_reply", "agent_reply_error", "agent.refuse", "agent_busy", "agent_reply_delta", "agent_reasoning", "a2a_status_update", "a2a_result", "agent_request", "a2a_task", "chat_cancel", "device_command", "device_result", "device_error"Message
MessageEnvelope.state values"streaming", "completed", "failed", "refused", "cancelled"MessageEnvelope
MessageEnvelope.stop_reason values"end_turn", "max_tokens", "tool_use", "user_stop", "timeout", "error", "refused", "content_filter", "agent_lost"MessageEnvelope
MessageEnvelope.type values"chat_message", "agent_reply", "agent_reply_error", "agent.refuse", "agent_busy", "agent_reply_delta", "agent_reasoning", "a2a_status_update", "a2a_result", "agent_request", "a2a_task", "chat_cancel", "device_command", "device_result", "device_error"MessageEnvelope
MessagePartThinking.state values"streaming", "done"MessagePartThinking
MessagePartToolUse.state values"streaming", "done"MessagePartToolUse
portalBindWire.status values"pending", "awaiting_confirmation", "confirming", "bound", "revoked"portalBindWire
ProtoAutomationRule.status values"enabled", "paused", "expired"ProtoAutomationRule
ProtoAutomationRule.triggerKind values"schedule", "webhook"ProtoAutomationRule
ProtoAutomationRun.rerunSessionMode values"original", "new"ProtoAutomationRun
ProtoAutomationRun.status values"scheduled", "dispatched", "failed", "skipped"ProtoAutomationRun
ProtoAutomationRun.triggerType values"schedule", "manual", "rerun", "webhook"ProtoAutomationRun
ProtoAutomationRunInput.rerunSessionMode values"original", "new"ProtoAutomationRunInput
ProtoAutomationSchedule.kind values"at", "every", "cron"ProtoAutomationSchedule
ProtoAutomationSession.mode values"new", "bound"ProtoAutomationSession
RuntimeInstanceStatusResult.data.connectivity values"unknown", "online", "offline"RuntimeInstanceStatusResult
RuntimeInstanceStatusResult.data.desired_status values"running", "stopped", "terminated"RuntimeInstanceStatusResult
RuntimeInstanceStatusResult.data.status values"pending", "provisioning", "running", "stopped", "terminated"RuntimeInstanceStatusResult
RuntimeInstanceSummary.connectivity values"unknown", "online", "offline"RuntimeInstanceSummary
RuntimeInstanceSummary.desired_status values"running", "stopped", "terminated"RuntimeInstanceSummary
RuntimeInstanceSummary.status values"pending", "provisioning", "running", "stopped", "terminated"RuntimeInstanceSummary
RuntimeLLMModel.role values"default", "fallback", "available"RuntimeLLMModel
RuntimeLLMProvider.protocol values"openai", "anthropic"RuntimeLLMProvider
RuntimeOperationSummary.kind values"create", "start", "stop", "delete", "image_upgrade"RuntimeOperationSummary
RuntimeOperationSummary.phase values"intent", "reserved", "admitted", "provisioning", "running", "cleanup_pending", "failed", "stop_pending", "stopped", "delete_pending", "deleted", "upgrade_pending", "rollback_pending"RuntimeOperationSummary
RuntimeUpgradeJob.status values"upgrade_pending", "rollback_pending", "failed", "succeeded"RuntimeUpgradeJob
UHPContentPart.type values"output_text", "summary_text"UHPContentPart
UHPDiscovery.conformance_class values"core", "extended", "full"UHPDiscovery
UHPError.type values"invalid_request_error", "authentication_error", "permission_error", "rate_limit_error", "harness_error", "server_error"UHPError
UHPEvent.type values"response.created", "response.in_progress", "response.output_item.added", "response.output_item.done", "response.content_part.added", "response.content_part.done", "response.output_text.delta", "response.output_text.done", "response.output_text.annotation.added", "response.reasoning_summary_part.added", "response.reasoning_summary_text.delta", "response.reasoning_summary_part.done", "response.function_call_arguments.delta", "response.function_call_arguments.done", "response.completed", "response.incomplete", "response.failed", "error", "beeos.approval.requested", "beeos.approval.resolved", "beeos.question.requested", "beeos.question.resolved"UHPEvent
UHPMcpServer.transport values"http", "sse"UHPMcpServer
UHPOutputItem.status values"in_progress", "completed"UHPOutputItem
UHPOutputItem.type values"message", "reasoning", "function_call", "function_call_output"UHPOutputItem
UHPOutputItemFunctionCall.status values"in_progress", "completed"UHPOutputItemFunctionCall
UHPOutputItemFunctionCallOutput.status values"in_progress", "completed"UHPOutputItemFunctionCallOutput
UHPOutputItemMessage.status values"in_progress", "completed"UHPOutputItemMessage
UHPOutputItemReasoning.status values"in_progress", "completed"UHPOutputItemReasoning
UHPPluginMcpServer.transport values"http", "sse", "stdio"UHPPluginMcpServer
UHPResponseStatus values"in_progress", "completed", "failed", "incomplete", "cancelled"—
usage.getSummary period values"day", "week", "month"usage.getSummary

A2AMessage.role values

Who wrote the message: ROLE_USER for the caller or ROLE_AGENT for the agent.

Defined in: A2AMessage

ValueMeaning
"ROLE_USER"The message was written by the caller.
"ROLE_AGENT"The message was written by the agent.

AgentAgent.conversation_transport values

How conversation messages reach the agent. New values can be added, so ignore values you do not know.

Defined in: AgentAgent

ValueMeaning
"acp"Conversation messages are exchanged with the agent over its ACP connection.
"message-service"Conversation messages are delivered to the agent as messages through BeeOS messaging.

AgentAgent.status values

Whether the agent is currently provided by its instance.

Defined in: AgentAgent

ValueMeaning
"active"The instance currently provides the agent.
"inactive"The instance no longer provides the agent, for example because it was removed or replaced by another agent with the same name. The record is kept.

agentBindDetailsWire.status values

State of the bind session. A session that has expired is deleted, so lookups of an expired session fail with 404 not_found instead.

Defined in: agentBindDetailsWire

ValueMeaning
"pending"Created by the device and waiting for a user to confirm it.
"confirming"A user confirmed it and the instance for the device is being created.
"bound"Confirmed: the instance exists and the device can connect to it.

agentBindWire.status values

State of the bind session. After a successful confirmation it is bound; a session that is still waiting for confirmation reports pending.

Defined in: agentBindWire

ValueMeaning
"pending"Created by the device and waiting for a user to confirm it. A session that is being confirmed also reports pending.
"bound"Confirmed: the instance exists and the device can connect to it.

AgentSnapshot.conversation_transport values

How conversation messages reach the agent. New values can be added, so ignore values you do not know.

Defined in: AgentSnapshot

ValueMeaning
"acp"Conversation messages are exchanged with the agent over its ACP connection.
"message-service"Conversation messages are delivered to the agent as messages through BeeOS messaging.

AgentSnapshot.status values

Whether the agent is currently provided by its instance.

Defined in: AgentSnapshot

ValueMeaning
"active"The instance currently provides the agent.
"inactive"The instance no longer provides the agent, for example because it was removed or replaced by another agent with the same name. The record is kept.

Binding.client_type values

How the token is bound to the client.

Defined in: Binding

ValueMeaning
"web"Bound to a web page origin, returned in origin.
"native"Bound to a device key, whose thumbprint is returned in cnf_jkt.

CanvasTicketClaims.role values

Access role granted on the canvas: viewer or editor.

Defined in: CanvasTicketClaims

ValueMeaning
"viewer"Can view the canvas but not change it.
"editor"Can view and edit the canvas.

ClientSessionInput.client_type values

How the client token is bound to the client that will use it. It decides whether you send origin or device_attestation.

Defined in: ClientSessionInput

ValueMeaning
"web"A browser client. The token is bound to the page origin you send in origin, which must be one of the allowed origins configured for the app. device_attestation must not be sent. A request that does not match this binding returns 403 invalid_origin.
"native"A native app. The token is bound to a device key whose thumbprint you send in device_attestation.jkt. origin must not be sent. A request that does not match this binding returns 403 invalid_origin.

CommandReceipt.status values

Outcome of the request at the time the call returned.

Defined in: CommandReceipt

ValueMeaning
"accepted"The request was queued for the agent and has not taken effect yet. Read the conversation messages to follow the result.
"completed"The change was applied before the call returned.

ConnectURLResponse.data.browser.role values

Access role of the grant: viewer or controller.

Defined in: ConnectURLResponse

ValueMeaning
"viewer"Can watch the browser but not control it.
"controller"Can watch and control the browser.

ConnectURLResponse.data.connectivity values

Reachability of the instance's agent: unknown, online or offline.

Defined in: ConnectURLResponse

ValueMeaning
"unknown"Reachability has not been determined.
"online"The instance's agent is connected.
"offline"The instance's agent is not connected.

ConnectURLResponse.data.mode values

Connection mode: browser-runtime for browser, service-websocket for acp.

Defined in: ConnectURLResponse

ValueMeaning
"browser-runtime"A browser viewer session; connect with url and token.
"service-websocket"A WebSocket connection to an agent service; url already carries the access ticket.

ConnectURLResponse.data.service values

Service the URL connects to: browser or acp.

Defined in: ConnectURLResponse

ValueMeaning
"browser"The browser viewer.
"acp"The agent connection over WebSocket.

Conversation.state values

Whether the conversation still accepts messages. A closed conversation stays readable but cannot receive new messages.

Defined in: Conversation

ValueMeaning
"open"The conversation accepts new messages.
"closed"The conversation was closed, for example by deleting it. closed_at is set, and sending to it returns 410 conversation_closed.

conversations.list state values

Defined in: conversations.list

ValueMeaning
"open"—
"closed"—
"all"—

Deletion.status values

State of the deletion. Poll until it is completed.

Defined in: Deletion

ValueMeaning
"pending"The deletion is queued and has not started.
"processing"The deletion is running.
"failed"The latest attempt stopped with an error, shown in error_code. The deletion is retried automatically.
"completed"All data of the user was deleted.

DeletionAccepted.status values

State of the deletion when the request was accepted.

Defined in: DeletionAccepted

ValueMeaning
"pending"The deletion is queued and has not started.
"processing"The deletion is running.
"failed"The latest attempt stopped with an error, shown in error_code. The deletion is retried automatically.
"completed"All data of the user was deleted.

deviceBindings.resolvePortal request.decision values

What to do with the device that claimed the session. Required.

Defined in: deviceBindings.resolvePortal

ValueMeaning
"recover"Bind the device to the existing instance given by instance_id.
"create"Create a new instance for the device.

FileFile.status values

Upload state of the file. Deleted files are never returned. New states can be added, so ignore values you do not know.

Defined in: FileFile

ValueMeaning
"pending_upload"The upload was prepared but not confirmed yet. The file has no content to download.
"ready"The upload was confirmed. The file can be downloaded, renamed, shared and deleted.

FileOrigin.source values

How the file came to exist. New values can be added, so ignore values you do not know.

Defined in: FileOrigin

ValueMeaning
"manual"Uploaded directly through the files API without an upload context. Files without a recorded origin are reported as manual.
"chat_upload"Uploaded with an upload_context, to be used in a conversation with the agent named by it.
"runtime_generated"Generated by an agent while it handled a request. operation_id identifies that operation.
"template_skill"Provided by a template skill. The file is read-only: it cannot be renamed or deleted, and it does not count toward storage usage.

FileSummary.instances[].source values

How the file came to exist. New values can be added, so ignore values you do not know.

Defined in: FileSummary

ValueMeaning
"manual"Uploaded directly through the files API without an upload context. Files without a recorded origin are reported as manual.
"chat_upload"Uploaded with an upload_context, to be used in a conversation with the agent named by it.
"runtime_generated"Generated by an agent while it handled a request. operation_id identifies that operation.
"template_skill"Provided by a template skill. The file is read-only: it cannot be renamed or deleted, and it does not count toward storage usage.

FileTransferDescriptor.direction values

Whether the URL is used to upload or to download the file content.

Defined in: FileTransferDescriptor

ValueMeaning
"upload"Send the file content to url with http_method. Returned when an upload is prepared.
"download"Fetch the file content from url with http_method. Returned when a file or a share is read.

InstanceSummary.connectivity values

Reachability of the instance's agent: unknown, online or offline.

Defined in: InstanceSummary

ValueMeaning
"unknown"Reachability has not been determined.
"online"The instance's agent is connected.
"offline"The instance's agent is not connected.

InstanceSummary.desired_status values

Lifecycle phase the instance is being driven toward: running, stopped or terminated.

Defined in: InstanceSummary

ValueMeaning
"running"The instance should be running.
"stopped"The instance should be stopped.
"terminated"The instance should be deleted.

Message.realtime_publish_status values

Reserved. The Server API does not currently return this field.

Defined in: Message

ValueMeaning
"published"—
"unconfirmed"—
"not_republished"—

MessagePartThinking.state values

Whether the reasoning is still being written.

Defined in: MessagePartThinking

ValueMeaning
"streaming"The part is still being written.
"done"The part is complete. A missing state also means done.

MessagePartToolUse.state values

Whether the arguments are still being written.

Defined in: MessagePartToolUse

ValueMeaning
"streaming"The part is still being written.
"done"The part is complete. A missing state also means done.

ProtoAutomationRule.status values

State of the automation.

Defined in: ProtoAutomationRule

ValueMeaning
"enabled"Active. A schedule automation runs at nextFireAt; a webhook automation reacts to incoming events.
"paused"Paused with the pause operation. No runs are created until it is resumed.
"expired"A schedule automation with no run left, for example a finished at schedule or one past validUntil.

ProtoAutomationRule.triggerKind values

What starts a run. Automations created before webhook triggers existed can report an empty value; treat it as schedule.

Defined in: ProtoAutomationRule

ValueMeaning
"schedule"Runs start on the schedule.
"webhook"Runs start when the event source delivers an event, optionally narrowed by eventFilter.

ProtoAutomationRun.rerunSessionMode values

Which conversation a rerun is delivered into. Empty for runs that are not reruns.

Defined in: ProtoAutomationRun

ValueMeaning
"original"The conversation the source run was delivered into.
"new"A new conversation.

ProtoAutomationRun.status values

Delivery state of the run. It tells whether the prompt reached the agent's conversation, not whether the agent finished the work.

Defined in: ProtoAutomationRun

ValueMeaning
"scheduled"Created and waiting to be delivered. A reasonCode of dispatch_unconfirmed means delivery started and its outcome is not confirmed yet.
"dispatched"The prompt was accepted into the conversation named by conversationId.
"failed"Delivery was rejected before the prompt was sent. reasonCode tells why.
"skipped"Not delivered because a condition no longer held when the run was due. reasonCode tells why.

ProtoAutomationRun.triggerType values

What created the run.

Defined in: ProtoAutomationRun

ValueMeaning
"schedule"The automation's schedule came due.
"manual"A caller started it with the create-run operation.
"rerun"A caller started it with the create-run operation to repeat the earlier run in sourceRunId.
"webhook"An event arrived for a webhook automation.

ProtoAutomationRunInput.rerunSessionMode values

Which conversation the rerun is delivered into. Required when sourceRunId is sent and not allowed without it.

Defined in: ProtoAutomationRunInput

ValueMeaning
"original"The conversation the source run was delivered into.
"new"A new conversation.

ProtoAutomationSchedule.kind values

Type of the schedule. It decides which of the other fields are required.

Defined in: ProtoAutomationSchedule

ValueMeaning
"at"Runs once, at at.
"every"Runs repeatedly, every intervalSeconds seconds counted from anchorAt.
"cron"Runs on the five-field cron expression, evaluated in the time zone tz.

ProtoAutomationSession.mode values

How a run chooses the conversation it is delivered into.

Defined in: ProtoAutomationSession

ValueMeaning
"new"Every run opens a new conversation with the agent. Automations created through this API always use it.
"bound"Every run is delivered into the conversation named by boundConversationId.

RuntimeInstanceStatusResult.data.connectivity values

Reachability of the instance's agent: unknown, online or offline.

Defined in: RuntimeInstanceStatusResult

ValueMeaning
"unknown"Reachability has not been determined.
"online"The instance's agent is connected.
"offline"The instance's agent is not connected.

RuntimeInstanceStatusResult.data.desired_status values

Lifecycle phase the instance is being driven toward: running, stopped or terminated.

Defined in: RuntimeInstanceStatusResult

ValueMeaning
"running"The instance should be running.
"stopped"The instance should be stopped.
"terminated"The instance should be deleted.

RuntimeInstanceSummary.connectivity values

Reachability of the instance's agent: unknown, online or offline.

Defined in: RuntimeInstanceSummary

ValueMeaning
"unknown"Reachability has not been determined.
"online"The instance's agent is connected.
"offline"The instance's agent is not connected.

RuntimeInstanceSummary.desired_status values

Lifecycle phase the instance is being driven toward: running, stopped or terminated.

Defined in: RuntimeInstanceSummary

ValueMeaning
"running"The instance should be running.
"stopped"The instance should be stopped.
"terminated"The instance should be deleted.

RuntimeLLMModel.role values

Role of the model: default, fallback or available. Exactly one model is default. Automatic failover uses only fallback models.

Defined in: RuntimeLLMModel

ValueMeaning
"default"The model the instance uses by default. Exactly one model has this role, with order 0.
"fallback"A model that automatic failover switches to when the default model fails.
"available"A model that can be selected but is never used for automatic failover.

RuntimeLLMProvider.protocol values

API protocol the endpoint speaks: openai or anthropic.

Defined in: RuntimeLLMProvider

ValueMeaning
"openai"The OpenAI-compatible API.
"anthropic"The Anthropic Messages API.

RuntimeUpgradeJob.status values

Status of the job: upgrade_pending, rollback_pending, failed or succeeded.

Defined in: RuntimeUpgradeJob

ValueMeaning
"upgrade_pending"The image upgrade is being applied.
"rollback_pending"The image upgrade failed and the instance is being rolled back to its previous image.
"failed"The image upgrade failed. See error.
"succeeded"The image upgrade finished and the instance runs the target version.

UHPContentPart.type values

Kind of the part.

Defined in: UHPContentPart

ValueMeaning
"output_text"Text of a message item, with optional annotations.
"summary_text"Summary text of a reasoning item.

UHPDiscovery.conformance_class values

Coarse conformance class of the server. Branch on the flags in capabilities, which are exact, rather than on the class.

Defined in: UHPDiscovery

ValueMeaning
"core"Discovery, harness reads, tasks and sessions.
"extended"Core plus file input and artifact retrieval.
"full"Extended plus harness management, plugins, environments and memories.

UHPMcpServer.transport values

Transport the server speaks. Defaults to http on write. Not returned for a server that uses neither transport.

Defined in: UHPMcpServer

ValueMeaning
"http"Streamable HTTP.
"sse"The older HTTP with server-sent events transport.

UHPOutputItem.status values

Progress of the item.

Defined in: UHPOutputItem

ValueMeaning
"in_progress"The item is still being produced.
"completed"The item is complete.

UHPOutputItem.type values

Kind of the output item. Clients should ignore item types they do not know.

Defined in: UHPOutputItem

ValueMeaning
"message"A message written by the agent. Its text is in content.
"reasoning"The agent's reasoning. Its summary is in summary.
"function_call"A tool call made by the agent, with name and arguments.
"function_call_output"The result of a tool call, in output.

UHPOutputItemFunctionCall.status values

Progress of the item.

Defined in: UHPOutputItemFunctionCall

ValueMeaning
"in_progress"The item is still being produced.
"completed"The item is complete.

UHPOutputItemFunctionCallOutput.status values

Progress of the item.

Defined in: UHPOutputItemFunctionCallOutput

ValueMeaning
"in_progress"The item is still being produced.
"completed"The item is complete.

UHPOutputItemMessage.status values

Progress of the item.

Defined in: UHPOutputItemMessage

ValueMeaning
"in_progress"The item is still being produced.
"completed"The item is complete.

UHPOutputItemReasoning.status values

Progress of the item.

Defined in: UHPOutputItemReasoning

ValueMeaning
"in_progress"The item is still being produced.
"completed"The item is complete.

UHPPluginMcpServer.transport values

http is Streamable HTTP (streamable-http in mcp.json); sse the older HTTP+SSE transport; stdio a process the server launches inside the agent's sandbox.

Defined in: UHPPluginMcpServer

ValueMeaning
"http"Streamable HTTP, written streamable-http in mcp.json.
"sse"The older HTTP with server-sent events transport.
"stdio"A local process started by the sandbox, configured with command, args, env and cwd.

usage.getSummary period values

Defined in: usage.getSummary

ValueMeaning
"day"—
"week"—
"month"—