Completion Documentation

Completion documentation

API reference

Find the operation, understand its contract, and follow the result.

135 operations · 148 public schemas · Contract 0.1.0

Use the API origin supplied for your environment. Authentication uses bearer keys or browser sessions; read the authentication guide. Expand an operation for its Python method, parameters, request body, responses, and native transports.

This reference is generated from the current public contract. An operation's presence does not establish that every provider or service is enabled. Download OpenAPI JSON.

Account and Organization

POST/sign-ins

Python: client.start_sign_in(...)

Start sign-in using the existing WorkOS configuration. Configured company domains continue through SSO; WorkOS sends email codes for other addresses. Email code issuance has a sixty-second cooldown. Requires the configured browser Origin.

Authentication: None declared.

Request body

Required.

application/json

FieldTypeDescription
emailrequiredstring · email

{"maxLength": 254}

ssooptionalbooleanRequire an existing company SSO connection for this email domain.
{
  "$ref": "#/components/schemas/StartSignInInput"
}

Responses

StatusResponse contract
200

Sign-in step. Session credentials are set only in HttpOnly cookies.

application/json

{
  "$ref": "#/components/schemas/SignInStep"
}

Response headers

{
  "Set-Cookie": {
    "description": "Host-only HttpOnly sign-in cookies. Multiple Set-Cookie fields may be returned.",
    "schema": {
      "type": "string"
    }
  }
}
400, 403, 404, 413, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/sign-ins/code-verifications

Python: client.verify_code(...)

Verify an email code with WorkOS, then admit the User and create a thirty-day Completion browser session. WorkOS owns code expiry and attempts. Provider calls finish before the database transaction. Requires the configured browser Origin.

Authentication: None declared.

Request body

Required.

application/json

FieldTypeDescription
emailrequiredstring · email

{"maxLength": 254}

coderequiredstringSix decimal digits from the delivered email. Never log this value.

{"minLength": 6, "maxLength": 6, "writeOnly": true}

{
  "$ref": "#/components/schemas/VerifyCodeInput"
}

Responses

StatusResponse contract
200

Sign-in step. Session credentials are set only in HttpOnly cookies.

application/json

{
  "$ref": "#/components/schemas/SignInStep"
}

Response headers

{
  "Set-Cookie": {
    "description": "Host-only HttpOnly sign-in cookies. Multiple Set-Cookie fields may be returned.",
    "schema": {
      "type": "string"
    }
  }
}
400, 401, 403, 409, 413, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/sign-ins/continuations

ContinueSignIn

Python: client.continue_sign_in(...)

Continue WorkOS email verification using the pending authentication token sealed in an HttpOnly cookie. Requires the configured browser Origin.

Authentication: None declared.

Request body

Required.

application/json

FieldTypeDescription
coderequiredstringSix decimal digits from the delivered email. Never log this value.

{"minLength": 6, "maxLength": 6, "writeOnly": true}

{
  "$ref": "#/components/schemas/ContinueSignInInput"
}

Responses

StatusResponse contract
200

Sign-in step. Session credentials are set only in HttpOnly cookies.

application/json

{
  "$ref": "#/components/schemas/SignInStep"
}

Response headers

{
  "Set-Cookie": {
    "description": "Host-only HttpOnly sign-in cookies. Multiple Set-Cookie fields may be returned.",
    "schema": {
      "type": "string"
    }
  }
}
400, 401, 403, 409, 413, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/sign-ins/authorizations

AuthorizeSignIn

Python: client.authorize_sign_in(...)

Start Google or configured company SSO through WorkOS, with state bound to a short-lived HttpOnly cookie. The callback returns to /login. Application continuation belongs to the browser tab.

Authentication: None declared.

Parameters

NameLocation / typeDescription
providerrequiredquery / string

SDK: provider

{
  "type": "string",
  "enum": [
    "google",
    "sso"
  ]
}
emailoptionalquery / string · email

Email address required for company SSO; normalized to lowercase.

SDK: email

{
  "type": "string",
  "format": "email",
  "maxLength": 254
}
connection_idoptionalquery / string

WorkOS connection returned by an SSO-required continuation.

SDK: connection_id

{
  "type": "string",
  "minLength": 1,
  "maxLength": 255
}

Responses

StatusResponse contract
302

Continue in the browser.

Response headers

{
  "Location": {
    "schema": {
      "type": "string",
      "format": "uri"
    }
  },
  "Set-Cookie": {
    "description": "Host-only HttpOnly sign-in cookies. Multiple Set-Cookie fields may be returned.",
    "schema": {
      "type": "string"
    }
  }
}
400, 404, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/sign-ins/callbacks

SignInCallback

Python: client.sign_in_callback(...)

Exchange the state-bound callback with WorkOS. Continue company SSO or email verification when required; otherwise create the Completion session. Provider calls finish before the identity/session database transaction.

Authentication: None declared.

Parameters

NameLocation / typeDescription
codeoptionalquery / string

SDK: code

{
  "type": "string",
  "maxLength": 8192
}
stateoptionalquery / string

SDK: state

{
  "type": "string",
  "maxLength": 8192
}
erroroptionalquery / string

SDK: error

{
  "type": "string",
  "maxLength": 8192
}

Responses

StatusResponse contract
302

Continue in the browser.

Response headers

{
  "Location": {
    "schema": {
      "type": "string",
      "format": "uri"
    }
  },
  "Set-Cookie": {
    "description": "Host-only HttpOnly sign-in cookies. Multiple Set-Cookie fields may be returned.",
    "schema": {
      "type": "string"
    }
  }
}
400, 401, 409, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/sign-ins/current

Python: client.logout(...)

Expire the Completion browser session before revoking its WorkOS session. The exact opaque browser cookie can retry this operation after expiry if the provider is unavailable. Delete the session and clear its cookie after upstream revocation succeeds. API credentials cannot log out a browser session. Requires the configured browser Origin.

Authentication: None declared.

Responses

StatusResponse contract
204

Browser session revoked.

400, 401, 403, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/account

Python: client.account(...)

Authentication: BearerAuth or BrowserSession.

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/Account"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/account

UpdateAccount

Python: client.update_account(...)

Set only the supplied top-level writable fields to their absolute values. Omitted fields retain their saved values. Supplied arrays and objects replace that field's value; this is not a recursive merge or JSON Patch operation. Explicit null is valid only where the field schema permits it. Validate the resulting effective resource, including coupled scope and policy fields, before committing. Repeating the same update has the same resource-state effect; never interpret values as increment, toggle or append commands. This identity server supports only the fields declared here.

Authentication: BearerAuth or BrowserSession.

Request body

Required.

application/json

FieldTypeDescription
namerequiredstring
{
  "type": "object",
  "additionalProperties": false,
  "minProperties": 1,
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/AccountSettingsResult"
}
400, 401, 403, 404, 413, 500, 503, 409, 422, 429, 502

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/organizations

ListOrganizations

Python: client.list_organizations(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

Requested upper bound on this page. The owner may return fewer items to satisfy its native response/transport bounds. Use the returned cursor to continue.

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "default": 50,
  "maximum": 2147483646
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/OrganizationListItemPage"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/organizations

CreateOrganization

Python: client.create_organization(...)

Requires a user session. request_id binds an immutable creation receipt; equal retries return the original result and do not restore removed membership.

Authentication: BearerAuth or BrowserSession.

Request body

Required.

application/json

FieldTypeDescription
namerequiredstring

{"minLength": 1}

request_idrequiredstring

{"minLength": 1}

{
  "$ref": "#/components/schemas/CreateOrganizationInput"
}

Responses

StatusResponse contract
201

Native result.

application/json

{
  "$ref": "#/components/schemas/OrganizationCreated"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/organization

ReadOrganization

Python: client.read_organization(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/Organization"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/organization

UpdateOrganization

Python: client.update_organization(...)

Requires organization.update. Update the selected Organization name, Computer VPN or private-network attachment. Omitted fields stay unchanged. An explicit network_control_enabled value, including an equal value, saves metadata then awaits native confirmation of routing on running Computers and gateway configuration. Paused Computers adopt the saved configuration before subsequent work. Partial application returns an error and retains saved metadata and completed applications. Authorized Vault substitution remains available in both VPN modes. Protected routing currently requires a supported managed Linux Computer; Windows, attached and Vercel Computers cannot confirm this VPN and return an application error when enabling it. No fleet rollback or background retry is promised.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1}

network_control_enabledoptionalbooleanRoute Computer workload traffic through the protected WireGuard gateway and enforce the selected scoped Network Rules when true. False uses ordinary networking and retains rule definitions without enforcing them. Supported HTTP tools and command proxies resolve authorized Vault references in both modes; false does not intercept arbitrary application connections. Vercel uses its native firewall independently; enabling the protected VPN for Vercel returns unsupported rather than broadening its policy.
private_networkoptionalcomposed schema · nullableOmit to preserve the attachment. Supply the complete reference and approved exit to replace it, or null to detach. The current native Vault version is pinned when this update is admitted.
{
  "$ref": "#/components/schemas/UpdateOrganizationInput"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/Organization"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/organization/members

Python: client.list_members(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
qoptionalquery / string

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

Requested upper bound on this page. The owner may return fewer items to satisfy its native response/transport bounds. Use the returned cursor to continue.

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "default": 50,
  "maximum": 2147483646
}
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/MemberPage"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/organization/members

AddOrganizationMember

Python: client.add_organization_member(...)

Local extension: add an existing user. Requires member-management authority; assigning owner also requires owner-management authority. Provision users with the CLI.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
user_idrequiredstring · uuid
rolerequiredstring

{"enum": ["owner", "admin", "member"]}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "user_id",
    "role"
  ],
  "properties": {
    "user_id": {
      "type": "string",
      "format": "uuid"
    },
    "role": {
      "type": "string",
      "enum": [
        "owner",
        "admin",
        "member"
      ]
    }
  }
}

Responses

StatusResponse contract
201

Membership created.

application/json

{
  "type": "object",
  "required": [
    "id",
    "user_id",
    "role"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "user_id": {
      "type": "string",
      "format": "uuid"
    },
    "role": {
      "type": "string"
    }
  }
}
400, 401, 403, 404, 409, 500, 413

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/organization/members/{member_id}

ChangeMemberRole

Python: client.change_member_role(...)

Set only the supplied top-level writable fields to their absolute values. Omitted fields retain their saved values. Supplied arrays and objects replace that field's value; this is not a recursive merge or JSON Patch operation. Explicit null is valid only where the field schema permits it. Validate the resulting effective resource, including coupled scope and policy fields, before committing. Repeating the same update has the same resource-state effect; never interpret values as increment, toggle or append commands. This identity server supports only the fields declared here.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
member_idrequiredpath / string · uuid

SDK: member_id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
rolerequiredstring

{"enum": ["owner", "admin", "member"]}

{
  "$ref": "#/components/schemas/MemberRoleInput"
}

Responses

StatusResponse contract
204

Native result.

400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/organization/members/{member_id}

RemoveOrganizationMember

Python: client.remove_organization_member(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
member_idrequiredpath / string · uuid

SDK: member_id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Native result.

400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/organization/ownership

TransferOrganizationOwnership

Python: client.transfer_organization_ownership(...)

This identity server supports only the fields declared here.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
member_idrequiredstring · uuid
{
  "$ref": "#/components/schemas/TransferOrganizationOwnershipInput"
}

Responses

StatusResponse contract
204

Native result.

400, 401, 403, 404, 409, 500, 502, 503, 413, 422, 429

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/organization/leave

LeaveOrganization

Python: client.leave_organization(...)

Leave the selected organization and revoke its keys owned by this user. Primary owners must transfer ownership first.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Native result.

400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/api-keys

Python: client.list_api_keys(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

Requested upper bound on this page. The owner may return fewer items to satisfy its native response/transport bounds. Use the returned cursor to continue.

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "default": 50,
  "maximum": 2147483646
}
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/APIKeyPage"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/api-keys

CreateAPIKey

Python: client.create_api_key(...)

New registration requires organization.keys.manage and the issuer and owner scope ceilings. The authenticated Organization, principal and supplied input bind the immutable request. Equal replay returns the original receipt before current creation permission or owner availability is checked, including after role loss, scope narrowing or target-key revocation. Changed reuse returns 409. Authentication still applies; an expired, revoked or disabled caller credential cannot replay a request. This identity server supports only the fields declared here.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
secret_hashrequiredstring

{"pattern": "^[0-9a-f]{64}$"}

native_scoperequiredNativeScope
expires_atoptionalstring · date-time
{
  "$ref": "#/components/schemas/RegisterAPIKey"
}

Responses

StatusResponse contract
201

Native result.

application/json

{
  "$ref": "#/components/schemas/APIKeyCreated"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/api-keys/{id}

UpdateAPIKey

Python: client.update_api_key(...)

Set only the supplied top-level writable fields to their absolute values. Omitted fields retain their saved values. Supplied arrays and objects replace that field's value; this is not a recursive merge or JSON Patch operation. Explicit null is valid only where the field schema permits it. Validate the resulting effective resource, including coupled scope and policy fields, before committing. Repeating the same update has the same resource-state effect; never interpret values as increment, toggle or append commands. Replace native_scope using the same resource/operation allowlist shape as key registration. No access role or compatibility alias is accepted. Key-management authority and caller permissions bound the replacement; a scoped key cannot expand itself. Key identity, secret hash, ownership and expiry remain unchanged. New requests use the saved scope; accepted turns retain their admitted authority. This identity server supports only the fields declared here.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
native_scoperequiredcomposed schemaReplace the complete resource/operation allowlist. Empty resources grants no operations. Requires key-management authority and cannot grant authority the caller lacks or let a scoped key expand its own permissions. The key ID, secret hash, owner and expiry are unchanged. New requests use this scope; accepted turns retain admitted authority.
{
  "$ref": "#/components/schemas/UpdateAPIKeyInput"
}

Responses

StatusResponse contract
204

Native result.

400, 401, 403, 404, 409, 500, 502, 503, 413, 422, 429

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/api-keys/{id}

RevokeAPIKey

Python: client.revoke_api_key(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

Required with a session cookie. Bearer API keys select their bound organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Native result.

400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/healthz

Python: client.health(...)

Authentication: None declared.

Responses

StatusResponse contract
204

Database is reachable.

503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Agents

GET/agents

Python: client.list_agents(...)

List current Agent metadata within current membership, grants and credential scope.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
qoptionalquery / string

Literal case-insensitive name/title substring; empty means no search filter.

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentPage"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agents

Python: client.create_agent(...)

Admit the Agent identity and capture its original source on Archil. A preparing creation receipt guarantees the original source is durable. Capture failure returns the original terminal failed Agent receipt instead. Editable files and the namespace runtime initialize eagerly. Actual file and message consumers finish their required initialization; Session metadata creation does not wait for it. Creation starts no Session or model work. Equal creation replay returns its original admission receipt without changing files, grants or runtime state. Read the Agent for current status. Selected unconfigured Template provisioning returns 503.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
agent_template_idoptionalstring · uuid
computer_template_idoptionalstring · uuid · nullable
browser_template_idoptionalstring · uuid · nullable
computer_idoptionalstring · uuid · nullable
browser_idoptionalstring · uuid · nullable
parent_agent_idoptionalstring · uuid · nullable
titleoptionalstring
settingsoptionalAgentConfiguration
permissionsoptionalarray
{
  "$ref": "#/components/schemas/CreateAgentInput"
}

Responses

StatusResponse contract
201

Resource result.

application/json

{
  "$ref": "#/components/schemas/Agent"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Matching creation replay.

application/json

{
  "$ref": "#/components/schemas/Agent"
}
GET/agents/{id}

Python: client.read_agent(...)

Read current authorized Agent metadata and native filesystem program references.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Agent"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/agents/{id}

Python: client.update_agent(...)

Set supplied Agent metadata and default selections. Omitted fields remain unchanged; selected existing resources require current authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
titleoptionalstring · nullable
archivedoptionalboolean
namespace_idoptionalstring

{"minLength": 1}

computer_idoptionalstring · uuid · nullable
browser_idoptionalstring · uuid · nullable
{
  "$ref": "#/components/schemas/UpdateAgentInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Agent"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/settings

ReadAgentSettings

Python: client.read_agent_settings(...)

Resolve current Agent configuration from its authoritative native definition files on Archil under current Agent read authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentConfiguration"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/agents/{id}/settings

UpdateAgentSettings

Python: client.update_agent_settings(...)

Set supplied Agent configuration fields through caller-authorized filesystem operations. Omitted fields and native configuration keys remain unchanged. This starts no model work.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
pluginsoptionalarray
modeloptionalstring

{"minLength": 1}

reasoning_effortoptionalstring

{"enum": ["off", "minimal", "low", "medium", "high", "xhigh", "max"]}

priorityoptionalboolean
instructionsoptionalstring
toolsoptionalarray · nullable
skillsoptionalarray · nullable
mcp_serversoptionalarray · nullable
voiceoptionalcomposed schema · nullable
max_goal_token_budgetoptionalinteger · int64

{"minimum": 1}

{
  "$ref": "#/components/schemas/AgentConfiguration"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentConfiguration"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/agents/{id}/owner

UpdateAgentOwner

Python: client.update_agent_owner(...)

Set resource ownership to the supplied current organization membership, or clear it with null. The current resource owner or an organization administrator (primary_owner, owner, admin) may change ownership; administrators do not need permission from the existing owner or resource grants. Current organization membership and any credential scope ceiling still apply. Cross-organization and deleted target memberships are invalid. Changing ownership does not replace sharing grants or creation provenance. Repeating the same assignment is a no-op. Core authorization and mutation are not implemented; returns 503 until the service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
owner_member_idrequiredstring · uuid · nullableCurrent organization membership to own the resource. Null clears ownership.
{
  "$ref": "#/components/schemas/UpdateResourceOwnerInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Agent"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{agent_id}/permissions

ListAgentPermissions

Python: client.list_agent_permissions(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
agent_idrequiredpath / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/AgentPermissionPage"
}
POST/agents/{agent_id}/permissions

CreateAgentPermission

Python: client.create_agent_permission(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
agent_idrequiredpath / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
member_idoptionalstring · uuid · nullable
grantee_agent_idoptionalstring · uuid · nullable
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/CreateAgentPermissionInput"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
201

Committed result.

application/json

{
  "$ref": "#/components/schemas/AgentPermission"
}
PUT/agents/{agent_id}/permissions/{permission_id}

UpdateAgentPermission

Python: client.update_agent_permission(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
agent_idrequiredpath / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}
permission_idrequiredpath / string · uuid

SDK: permission_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
roleoptionalstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/UpdateAgentPermissionInput"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/AgentPermission"
}
DELETE/agents/{agent_id}/permissions/{permission_id}

DeleteAgentPermission

Python: client.delete_agent_permission(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
agent_idrequiredpath / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}
permission_idrequiredpath / string · uuid

SDK: permission_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
204

Committed result.

Templates

GET/agent-templates

ListAgentTemplates

Python: client.list_agent_templates(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
qoptionalquery / string

Literal case-insensitive name/title substring; empty means no search filter.

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentTemplatePage"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agent-templates

CreateAgentTemplate

Python: client.create_agent_template(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
namerequiredstring

{"minLength": 1}

source_agent_idoptionalstring · uuid
computer_template_idoptionalstring · uuid · nullable
browser_template_idoptionalstring · uuid · nullable
{
  "$ref": "#/components/schemas/CreateAgentTemplateInput"
}

Responses

StatusResponse contract
201

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Matching creation replay.

application/json

{
  "$ref": "#/components/schemas/AgentTemplate"
}
GET/agent-templates/{id}

ReadAgentTemplate

Python: client.read_agent_template(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/agent-templates/{id}

UpdateAgentTemplate

Python: client.update_agent_template(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1}

computer_template_idoptionalstring · uuid · nullable
browser_template_idoptionalstring · uuid · nullable
{
  "$ref": "#/components/schemas/UpdateAgentTemplateInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/computer-templates

ListComputerTemplates

Python: client.list_computer_templates(...)

List authorized Templates with literal, case-insensitive name substring search. An empty q applies no search filter.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
qoptionalquery / string

Literal case-insensitive name/title substring; empty means no search filter.

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplatePage"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computer-templates

CreateComputerTemplate

Python: client.create_computer_template(...)

Capture a managed Computer and publish its state as a new Template. Capture automatically selects supported memory state, otherwise disk state. A native failure is returned without retrying another capture mode.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
computer_idrequiredstring · uuid
namerequiredstring

{"minLength": 1}

{
  "$ref": "#/components/schemas/CreateComputerTemplateInput"
}

Responses

StatusResponse contract
201

Resource result.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 502, 429, 503, default

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Matching creation replay.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplate"
}
GET/computer-templates/{id}

ReadComputerTemplate

Python: client.read_computer_template(...)

Read authorized Template metadata and its selected capture.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/computer-templates/{id}

UpdateComputerTemplate

Python: client.update_computer_template(...)

Assign the supplied name and preserve omitted fields.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1}

{
  "$ref": "#/components/schemas/UpdateComputerTemplateInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/computer-templates/{id}

DeleteComputerTemplate

Python: client.delete_computer_template(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 502, 422, 429, 500, 503, default

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
204

Deleted

GET/browser-templates

ListBrowserTemplates

Python: client.list_browser_templates(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
qoptionalquery / string

Literal case-insensitive name/title substring; empty means no search filter.

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/BrowserTemplatePage"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/browser-templates

CreateBrowserTemplate

Python: client.create_browser_template(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
source_browser_idrequiredstring · uuid
namerequiredstring

{"minLength": 1}

start_urloptionalstring
{
  "$ref": "#/components/schemas/CreateBrowserTemplateInput"
}

Responses

StatusResponse contract
201

Resource result.

application/json

{
  "$ref": "#/components/schemas/BrowserTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Matching creation replay.

application/json

{
  "$ref": "#/components/schemas/BrowserTemplate"
}
GET/browser-templates/{id}

ReadBrowserTemplate

Python: client.read_browser_template(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/BrowserTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/browser-templates/{id}

UpdateBrowserTemplate

Python: client.update_browser_template(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1}

start_urloptionalstring · nullable
{
  "$ref": "#/components/schemas/UpdateBrowserTemplateInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/BrowserTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agent-templates/{id}/snapshot

SaveAgentTemplateSnapshot

Python: client.save_agent_template_snapshot(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
request_idrequiredstring · uuid
source_agent_idoptionalstring · uuid
{
  "$ref": "#/components/schemas/SaveAgentTemplateSnapshotInput"
}

Responses

StatusResponse contract
202

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentTemplateVersion"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computer-templates/{id}/snapshot

SaveComputerTemplateSnapshot

Python: client.save_computer_template_snapshot(...)

Capture and publish the completed native result inside this request. Exact request replay returns its original result; no background job is created.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
request_idrequiredstring · uuid
computer_idrequiredstring · uuid
{
  "$ref": "#/components/schemas/SaveComputerTemplateSnapshotInput"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 413, 422, 500, 502, 429, 503, default

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplateCapture"
}
POST/browser-templates/{id}/snapshot

SaveBrowserTemplateSnapshot

Python: client.save_browser_template_snapshot(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
request_idrequiredstring · uuid
source_browser_idrequiredstring · uuid
{
  "$ref": "#/components/schemas/SaveBrowserTemplateSnapshotInput"
}

Responses

StatusResponse contract
202

Resource result.

application/json

{
  "$ref": "#/components/schemas/BrowserTemplateCapture"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agent-templates/{id}/versions/{version_id}

ReadAgentTemplateVersion

Python: client.read_agent_template_version(...)

Typed service boundary. No metadata/business or external-service implementation is installed; returns 503 until the relevant service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
version_idrequiredpath / string · uuid

SDK: version_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentTemplateVersion"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/agent-templates/{id}/owner

UpdateAgentTemplateOwner

Python: client.update_agent_template_owner(...)

Set resource ownership to the supplied current organization membership, or clear it with null. The current resource owner or an organization administrator (primary_owner, owner, admin) may change ownership; administrators do not need permission from the existing owner or resource grants. Current organization membership and any credential scope ceiling still apply. Cross-organization and deleted target memberships are invalid. Changing ownership does not replace sharing grants or creation provenance. Repeating the same assignment is a no-op. Core authorization and mutation are not implemented; returns 503 until the service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
owner_member_idrequiredstring · uuid · nullableCurrent organization membership to own the resource. Null clears ownership.
{
  "$ref": "#/components/schemas/UpdateResourceOwnerInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/computer-templates/{id}/owner

UpdateComputerTemplateOwner

Python: client.update_computer_template_owner(...)

Assign the resource owner under current ownership and scope authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
owner_member_idrequiredstring · uuid · nullableCurrent organization membership to own the resource. Null clears ownership.
{
  "$ref": "#/components/schemas/UpdateResourceOwnerInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/browser-templates/{id}/owner

UpdateBrowserTemplateOwner

Python: client.update_browser_template_owner(...)

Set resource ownership to the supplied current organization membership, or clear it with null. The current resource owner or an organization administrator (primary_owner, owner, admin) may change ownership; administrators do not need permission from the existing owner or resource grants. Current organization membership and any credential scope ceiling still apply. Cross-organization and deleted target memberships are invalid. Changing ownership does not replace sharing grants or creation provenance. Repeating the same assignment is a no-op. Core authorization and mutation are not implemented; returns 503 until the service is injected.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
owner_member_idrequiredstring · uuid · nullableCurrent organization membership to own the resource. Null clears ownership.
{
  "$ref": "#/components/schemas/UpdateResourceOwnerInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/BrowserTemplate"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/computer-templates/{id}/sharing

ListComputerTemplatePermissions

Python: client.list_computer_template_permissions(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}

Responses

StatusResponse contract
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/ResourcePermissionPage"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/computer-templates/{id}/sharing/members/{member_id}

SetComputerTemplateMemberPermission

Python: client.set_computer_template_member_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
member_idrequiredpath / string · uuid

SDK: member_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/SetResourcePermissionInput"
}

Responses

StatusResponse contract
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/ResourcePermission"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/computer-templates/{id}/sharing/members/{member_id}

DeleteComputerTemplateMemberPermission

Python: client.delete_computer_template_member_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
member_idrequiredpath / string · uuid

SDK: member_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Committed result.

400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/computer-templates/{id}/sharing/organization

SetComputerTemplateOrganizationPermission

Python: client.set_computer_template_organization_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/SetResourcePermissionInput"
}

Responses

StatusResponse contract
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/ResourcePermission"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/computer-templates/{id}/sharing/organization

DeleteComputerTemplateOrganizationPermission

Python: client.delete_computer_template_organization_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Committed result.

400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/computer-templates/{id}/updates

GetComputerTemplateSoftwareUpdate

Python: client.get_computer_template_software_update(...)

Read the observed installed and selected available builds without allocation, installation or resume.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Observed installed and available software.

application/json

{
  "$ref": "#/components/schemas/ComputerSoftwareUpdateStatus"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computer-templates/{id}/updates

ApplyComputerTemplateUpdates

Python: client.apply_computer_template_updates(...)

Install into an owned temporary native clone, capture, delete the clone and publish with compare-and-set. The existing capture receipt owns exact immutable request replay. No public temporary Computer or background job is created.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
request_idrequiredstring · uuid
target_buildrequiredstring

{"pattern": "^[a-f0-9]{64}$"}

{
  "$ref": "#/components/schemas/ComputerSoftwareUpdateInput"
}

Responses

StatusResponse contract
200

Native confirmed completed update.

application/json

{
  "$ref": "#/components/schemas/ComputerTemplateCapture"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503, default, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Computers

GET/computers

ListComputers

Python: client.list_computers(...)

List authorized Computers with literal, case-insensitive name substring search. An empty q applies no search filter. Reads do not resume or install software.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
qoptionalquery / string

Literal case-insensitive name/title substring; empty means no search filter.

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}
agent_idoptionalquery / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}
permissionoptionalquery / string

SDK: permission

{
  "type": "string",
  "enum": [
    "viewer",
    "writer"
  ]
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/ComputerPage"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computers

CreateComputer

Python: client.create_computer(...)

Allocate and prepare a managed Computer from exactly one provider source, Template, or authorized Computer. No Agent work is submitted. Completed immutable requests replay their original result; unresolved requests conflict without repeating native effects.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
computer_template_idoptionalstring · uuid
provideroptionalstring

{"minLength": 1}

nameoptionalstring

{"minLength": 1}

sourceoptionalobjectNative image or snapshot selection only. E2B accepts templateID; Daytona accepts snapshot or image, with an optional native target region; Modal accepts image_id or image; Boat accepts from and type; Vercel accepts snapshot_id or image; Archil accepts image_id or base_image. Vercel and Archil identifiers must be nonempty strings. An empty object selects the configured native image default. API destinations, account/app/environment settings and credentials belong to the immutable Vault connection and are rejected in source. Native source overrides require explicitly supplied authorized Vault references. Completion-default creation accepts an empty source; other copies use an authorized Computer or Template.
computer_idoptionalstring · uuid
credential_referencesoptionalobjectExact Vault version references keyed by E2B_SANDBOX, DAYTONA_SANDBOX, MODAL_SANDBOX, BOAT_SANDBOX, VERCEL_SANDBOX or ARCHIL_SANDBOX. Each provider takes exactly one JSON text Vault value containing its credentials and connection/account settings. E2B/Daytona use api_key and optional api_url; Modal uses token_id, token_secret and optional app_name and environment; Boat uses api_key and optional api_url and org. Vercel uses token, team_id and project_id; Archil uses api_key and api_url. Omission on a fresh provider source selects its configured Completion Vault connection with an empty source. Explicit empty references do not select a default. Derived creation retains the exact source binding.
{
  "$ref": "#/components/schemas/CreateComputerInput"
}

Responses

StatusResponse contract
201

Resource result.

application/json

{
  "$ref": "#/components/schemas/Computer"
}
400, 401, 403, 404, 409, 413, 422, 500, 502, 429, 503, default

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Matching creation replay.

application/json

{
  "$ref": "#/components/schemas/Computer"
}
GET/computers/{id}

ReadComputer

Python: client.read_computer(...)

Read authorized resource metadata and attached connection observations without resuming the Computer or installing software.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Computer"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/computers/{id}

UpdateComputer

Python: client.update_computer(...)

Assign the supplied name and preserve omitted fields.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1}

{
  "$ref": "#/components/schemas/UpdateComputerInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Computer"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/computers/{id}

DeleteComputer

Python: client.delete_computer(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 502, 422, 429, 500, 503, default

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
204

Deleted

PUT/computers/{id}/owner

UpdateComputerOwner

Python: client.update_computer_owner(...)

Assign the resource owner under current ownership and scope authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
owner_member_idrequiredstring · uuid · nullableCurrent organization membership to own the resource. Null clears ownership.
{
  "$ref": "#/components/schemas/UpdateResourceOwnerInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Computer"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computers/{id}/pause

PauseComputer

Python: client.pause_computer(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 502, 422, 429, 500, 503, default

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Completed native result

application/json

{
  "$ref": "#/components/schemas/Computer"
}
GET/computers/{id}/sharing

ListComputerPermissions

Python: client.list_computer_permissions(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}

Responses

StatusResponse contract
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/ResourcePermissionPage"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/computers/{id}/sharing/members/{member_id}

SetComputerMemberPermission

Python: client.set_computer_member_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
member_idrequiredpath / string · uuid

SDK: member_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/SetResourcePermissionInput"
}

Responses

StatusResponse contract
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/ResourcePermission"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/computers/{id}/sharing/members/{member_id}

DeleteComputerMemberPermission

Python: client.delete_computer_member_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
member_idrequiredpath / string · uuid

SDK: member_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Committed result.

400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/computers/{id}/sharing/organization

SetComputerOrganizationPermission

Python: client.set_computer_organization_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/SetResourcePermissionInput"
}

Responses

StatusResponse contract
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/ResourcePermission"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/computers/{id}/sharing/organization

DeleteComputerOrganizationPermission

Python: client.delete_computer_organization_permission(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Committed result.

400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/ssh-keys

Python: client.list_ssh_keys(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}

Responses

StatusResponse contract
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/SSHKeyPage"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/ssh-keys

Python: client.add_ssh_key(...)

Register a key for native Computer shell and file access. Supported SSH shells and exec sessions receive connection-owned HTTP(S) proxy and CA defaults for caller-authorized Vault substitution. Clients that bypass those settings receive no automatic substitution. SFTP and SCP retain their native protocols; public port forwarding is unsupported.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
public_keyrequiredstring

{"minLength": 1, "maxLength": 16384}

{
  "$ref": "#/components/schemas/SSHKeyInput"
}

Responses

StatusResponse contract
201

Committed result.

application/json

{
  "$ref": "#/components/schemas/SSHKey"
}
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/ssh-keys/{id}

DeleteSSHKey

Python: client.delete_ssh_key(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Committed result.

400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computer-pairings

CreateComputerPairing

Python: client.create_computer_pairing(...)

Authentication: None declared.

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
credentialrequiredstring · password

{"minLength": 43, "maxLength": 43, "pattern": "^[A-Za-z0-9_-]{43}$", "writeOnly": true}

namerequiredstring

{"minLength": 1, "maxLength": 200}

platformrequiredstring

{"enum": ["darwin", "linux", "windows"]}

architecturerequiredstring

{"enum": ["amd64", "arm64"]}

os_userrequiredstring

{"minLength": 1, "maxLength": 200}

runtime_buildrequiredstring

{"pattern": "^[a-f0-9]{64}$"}

{
  "$ref": "#/components/schemas/CreateComputerPairingInput"
}

Responses

StatusResponse contract
201

Native result.

application/json

{
  "$ref": "#/components/schemas/ComputerPairing"
}
400, 401, 403, 404, 409, 410, 426, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/computer-pairings/{id}

ReadComputerPairing

Python: client.read_computer_pairing(...)

Authentication: ComputerDeviceCredential.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/ComputerPairing"
}
400, 401, 403, 404, 409, 410, 426, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computer-pairings/lookup

LookupComputerPairing

Python: client.lookup_computer_pairing(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
user_coderequiredstring

{"maxLength": 9, "pattern": "^[A-Z2-7]{4}-?[A-Z2-7]{4}$"}

{
  "$ref": "#/components/schemas/ComputerPairingCodeInput"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/ComputerPairing"
}
400, 401, 403, 404, 409, 410, 426, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computer-pairings/approve

ApproveComputerPairing

Python: client.approve_computer_pairing(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
user_coderequiredstring

{"maxLength": 9, "pattern": "^[A-Z2-7]{4}-?[A-Z2-7]{4}$"}

{
  "$ref": "#/components/schemas/ComputerPairingCodeInput"
}

Responses

StatusResponse contract
201

Native result.

application/json

{
  "$ref": "#/components/schemas/ComputerPairingApproval"
}
400, 401, 403, 404, 409, 410, 426, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/computer-pairings/{id}/connection

ConnectComputerPairing

Python: client.connect_computer_pairing(...)

Authentication: ComputerDeviceCredential.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
101

Native connector WebSocket protocol.

400, 401, 403, 404, 409, 410, 426, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Native transport

{
  "websocket": {
    "payload": "Pibo native connector JSON/frame/credit protocol"
  }
}
GET/computers/{id}/connection

ConnectComputer

Python: client.connect_computer(...)

Authentication: ComputerDeviceCredential.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
101

Native connector WebSocket protocol.

400, 401, 403, 404, 409, 410, 426, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Native transport

{
  "websocket": {
    "payload": "Pibo native connector JSON/frame/credit protocol"
  }
}
POST/computers/{id}/desktop

StartComputerDesktop

Python: client.start_computer_desktop(...)

Open the Computer's native desktop. A managed Computer resumes and starts its existing unprivileged desktop service. Attached uses its current OS desktop. view_only requires read authority and returns an endpoint-bound browser grant with no input or clipboard. Ordinary access requires control. No application is installed by this operation.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
view_onlyoptionalquery / string

SDK: view_only

{
  "type": "string",
  "enum": [
    "0",
    "1"
  ]
}

Responses

StatusResponse contract
200

Native desktop transport access.

application/json

{
  "$ref": "#/components/schemas/DesktopAccess"
}
400, 401, 403, 404, 409, 413, 422, 426, 429, 500, 502, 503, default, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/computers/{id}/desktop/stream

ComputerDesktopStream

Python: client.computer_desktop_stream(...)

Native RFB bytes for managed Computers, or PNG metadata and binary image frames for attached Computers. A read-only browser grant admits pixels only; both RFB directions are filtered and attached input is rejected. Each new operation checks current authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
organization_idoptionalquery / string · uuid

SDK: organization_id

{
  "type": "string",
  "format": "uuid"
}
view_tokenoptionalquery / string

SDK: view_token

{
  "type": "string",
  "minLength": 1,
  "maxLength": 8192
}

Responses

StatusResponse contract
101

Native desktop WebSocket.

400, 401, 403, 404, 409, 413, 422, 426, 429, 500, 502, 503, default, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Native transport

{
  "websocket": {
    "payload": "Native managed RFB bytes or attached PNG metadata and binary frames."
  }
}
GET/computers/{id}/updates

GetComputerSoftwareUpdate

Python: client.get_computer_software_update(...)

Read the observed installed and selected available builds without allocation, installation or resume.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Observed installed and available software.

application/json

{
  "$ref": "#/components/schemas/ComputerSoftwareUpdateStatus"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computers/{id}/updates

ApplyComputerUpdates

Python: client.apply_computer_updates(...)

Apply one desired release. Repeating a completed installation observes the selected build and skips it. Native errors and unconfirmed handoff remain failures; this operation has no historical update receipt or automatic retry.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
request_idrequiredstring · uuid
target_buildrequiredstring

{"pattern": "^[a-f0-9]{64}$"}

{
  "$ref": "#/components/schemas/ComputerSoftwareUpdateInput"
}

Responses

StatusResponse contract
200

Native confirmed completed update.

application/json

{
  "$ref": "#/components/schemas/ComputerSoftwareUpdateStatus"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503, default, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computers/{id}/commands

ExecuteComputerCommand

Python: client.execute_computer_command(...)

Execute one shell command with current Computer control permission. A paused managed Computer resumes before execution. Returns native stdout, stderr and exit code; a nonzero exit is a completed command. Combined output is at most8 MiB. Commands are never retried or replayed. An operation-owned HTTP proxy substitutes authorized Organization-name Vault references in HTTPS requests and redacts returned values. Attached commands run as the signed-in user through the native connector. Windows uses Git Bash, installed for the current user when absent, and an operation-owned loopback SSH carrier for the HTTP proxy without a host SSH service. HTTP(S) clients receive proxy and CA defaults; clients that bypass those settings receive no automatic Vault substitution. Provider credentials stay in the API.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
commandrequiredstring

{"minLength": 1, "maxLength": 32768}

cwdoptionalstring

{"minLength": 1, "maxLength": 4096}

timeout_msoptionalinteger

{"default": 30000, "minimum": 1, "maximum": 300000}

{
  "$ref": "#/components/schemas/ComputerCommandInput"
}

Responses

StatusResponse contract
200

Native command result.

application/json

{
  "$ref": "#/components/schemas/ComputerCommandResult"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503, default, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/computers/{id}/terminal

ComputerTerminal

Python: client.computer_terminal(...)

Open an interactive shell with current Computer control permission. The first text message must be {"type":"resize","cols":80,"rows":24}. Later text messages resize the terminal. Dimensions are integers from 1 to 1000. Wait for {"type":"ready"} before sending binary keyboard input. Binary server messages carry terminal output; {"type":"exit","code":0} reports shell exit, with an optional message on failure. Client messages are at most64 KiB. Closing the socket closes the shell. A managed Computer resumes if paused. An attached Computer must be online. An admitted connection retains its permission through closure; each new connection checks current authority. A terminal is never replayed. The shell receives connection-owned HTTP(S) proxy and CA defaults. Vault substitution checks current Vault authority for the original caller; clients that bypass the proxy receive no automatic substitution.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
organization_idoptionalquery / string · uuid

Organization selection for browser WebSockets. Must match an API credential's Organization and the header when both are supplied. Current membership is checked.

SDK: organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
101

Native terminal WebSocket.

400, 401, 403, 404, 409, 413, 426, 429, 500, 502, 422, 503, default

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Native transport

{
  "websocket": {
    "payload": "Pibo terminal text resize/ready/exit and binary stdin/output protocol"
  }
}

Browsers

GET/browsers

ListBrowsers

Python: client.list_browsers(...)

List Browser metadata within current owner or organization administrator authority and credential scope. Uses opaque cursor pagination ordered by Browser ID. Browser use permission is required to include a row. No live Browser is opened.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
qoptionalquery / string

Literal case-insensitive substring of name, ID, provider or status. Empty means no search filter.

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/BrowserPage"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/browsers

CreateBrowser

Python: client.create_browser(...)

Allocate an independent durable Kernel profile without opening a live Browser. Use provider="kernel" without source or browser_template_id. Native source import, Template instantiation and other providers return 422. Replays require the same immutable request and original creation authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
browser_template_idoptionalstring · uuid
provideroptionalstring

{"minLength": 1}

nameoptionalstring

{"minLength": 1}

sourceoptionalobject
{
  "$ref": "#/components/schemas/CreateBrowserInput"
}

Responses

StatusResponse contract
201

Resource result.

application/json

{
  "$ref": "#/components/schemas/Browser"
}
400, 401, 403, 404, 409, 413, 422, 429, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Matching creation replay.

application/json

{
  "$ref": "#/components/schemas/Browser"
}
GET/browsers/{id}

Python: client.read_browser(...)

Read Browser metadata within current owner or organization administrator authority and credential scope. Browser use permission is required. No live Browser is opened.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Browser"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/browsers/{id}

UpdateBrowser

Python: client.update_browser(...)

Assign each supplied writable field and preserve omitted fields. Null clears start_url. Validate the effective resource under current owner or organization administrator authority and credential scope. No live Browser is opened.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1}

start_urloptionalstring · nullable
{
  "$ref": "#/components/schemas/UpdateBrowserInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Browser"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/browsers/{id}/owner

UpdateBrowserOwner

Python: client.update_browser_owner(...)

Set resource ownership to the supplied current organization membership, or clear it with null. The current resource owner or an organization administrator (primary_owner, owner, admin) may change ownership; administrators do not need permission from the existing owner or resource grants. Current organization membership and any credential scope ceiling still apply. Cross-organization and deleted target memberships are invalid. Changing ownership does not replace creation provenance. Repeating the same assignment is a no-op. Browser sharing grants are not supported.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
owner_member_idrequiredstring · uuid · nullableCurrent organization membership to own the resource. Null clears ownership.
{
  "$ref": "#/components/schemas/UpdateResourceOwnerInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/Browser"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Sessions

GET/agents/{id}/sessions

ListAgentSessions

Python: client.list_agent_sessions(...)

List persisted Session metadata within current Agent and namespace authority and each Session original credential ceiling. Listing starts no runtime or model work.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
qoptionalquery / string

Literal case-insensitive name/title substring; empty means no search filter.

SDK: q

{
  "type": "string"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentSessionPage"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agents/{id}/sessions

CreateAgentSession

Python: client.create_agent_session(...)

Persist Session metadata, an immutable program reference, selections and behavior overrides under current authority. Omitted selections inherit from the Agent or parent Session. Creation starts no runtime or model work and does not wait for editable files or runtime readiness. The original source must already be admitted. Equal immutable creation returns its original receipt.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
parent_session_idoptionalstring · uuid · nullable
namespace_idoptionalstringAuthorized namespace node ID. Omit to inherit the Agent or parent selection; null is invalid.

{"minLength": 1}

computer_idoptionalstring · uuid
browser_idoptionalstring · uuid
settingsoptionalAgentSettings
{
  "$ref": "#/components/schemas/CreateAgentSessionInput"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentSession"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/sessions/{session_id}

ReadAgentSession

Python: client.read_agent_session(...)

Read persisted Session metadata under current Agent and namespace authority and the original Session credential ceiling. This read starts no runtime or model work.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
session_idrequiredpath / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentSession"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/sessions/{session_id}/settings

ReadAgentSessionSettings

Python: client.read_agent_session_settings(...)

Resolve current Agent file defaults with saved Session behavior overrides, under current Agent and namespace authority and the original Session credential ceiling.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
session_idrequiredpath / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentSettings"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/agents/{id}/sessions/{session_id}/settings

UpdateAgentSessionSettings

Python: client.update_agent_session_settings(...)

Save supplied Session behavior overrides after validating effective settings. Omitted fields remain unchanged. This starts no runtime or model work.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
session_idrequiredpath / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
pluginsoptionalarray
modeloptionalstring

{"minLength": 1}

reasoning_effortoptionalstring

{"enum": ["off", "minimal", "low", "medium", "high", "xhigh", "max"]}

priorityoptionalboolean
instructionsoptionalstring
toolsoptionalarray · nullable
skillsoptionalarray · nullable
mcp_serversoptionalarray · nullable
voiceoptionalcomposed schema · nullable
{
  "$ref": "#/components/schemas/AgentSettings"
}

Responses

StatusResponse contract
200

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentSettings"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/sessions/{session_id}/events

ListAgentSessionEvents

Python: client.list_agent_session_events(...)

Read committed native Pi EntryRecord JSON in ascending native entry ID order. Current Agent and namespace authority and the Session's original credential ceiling apply. This observer does not allocate a runtime, initialize a Session, open a Harness or wake a Durable Object. A Session without a ready runtime has an empty page. Poll next_cursor for later entries; a nonempty page supplies a continuation even when has_more is false, and an empty page retains the supplied cursor. Native history remains the sole event store.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
session_idrequiredpath / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}

Responses

StatusResponse contract
200

Committed native entries and a polling continuation.

application/json

{
  "$ref": "#/components/schemas/AgentSessionEventPage"
}
400, 401, 403, 404, 409, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/sessions/{session_id}/stream

StreamAgentSession

Python: client.stream_agent_session(...)

Observe live native Pi AgentEvent JSON as newline-delimited JSON after a message has been accepted. The native initial snapshot and subsequent deltas are forwarded unchanged. A Session without admitted input returns 409. Current Agent and namespace authority and the Session's original credential ceiling are checked before exposing each chunk. This observer does not allocate a native conversation or submit work. Closing it stops observation and does not cancel accepted work. Events are live only; read committed history through ListAgentSessionEvents.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
session_idrequiredpath / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Live native Pi AgentEvent records, one JSON object per line.

application/x-ndjson

{
  "type": "object",
  "additionalProperties": true
}
400, 401, 403, 404, 409, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agents/{id}/sessions/{session_id}/messages

CreateAgentMessage

Python: client.create_agent_message(...)

Authorize the current Agent and Session namespace within the saved Session ceiling, resolve current file defaults and Session overrides, and submit to the existing native CF runtime. The receipt confirms native durable admission; live output is observed through StreamAgentSession and committed reply entries through ListAgentSessionEvents. mode selects queue (the default), steer after the current tool round, or restart the active run with this input while preserving history. Restart retains the targeted run across retries and preserves unrelated queued inputs in their native order. A run handover that wins cancellation returns 409 before this input is submitted; retry the same message ID. If idle, every mode starts work normally. Resubmitting a message ID replaces its content without rerunning completed work or applying the mode again.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Select an organization for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}
session_idrequiredpath / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
contentrequiredstring

{"minLength": 1}

modeoptionalstringDelivery of a new message. Queue follows the current run; steer joins it after the current tool round; restart interrupts the active run and submits this input without resetting history. Reusing a message ID changes content only and retains its original mode.

{"enum": ["queue", "steer", "restart"], "default": "queue"}

{
  "$ref": "#/components/schemas/CreateAgentMessageInput"
}

Responses

StatusResponse contract
202

Resource result.

application/json

{
  "$ref": "#/components/schemas/AgentInputReceipt"
}
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Files

GET/filesystem/nodes/{node_id}/permissions

ListFilesystemPermissions

Python: client.list_filesystem_permissions(...)

List direct grants in stable permission-ID order. Requires filesystem.share and current credential/Session ceilings. Authorization and pagination run in PostgreSQL. Node IDs are available from the read-only user.completion.node_id FUSE attribute.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Organization selection for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
node_idrequiredpath / string

SDK: node_id

{
  "type": "string",
  "minLength": 1
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/FilesystemPermissionPage"
}
POST/filesystem/nodes/{node_id}/permissions

CreateFilesystemPermission

Python: client.create_filesystem_permission(...)

Create one direct reader/writer grant. Requires filesystem.share. Members must belong to this organization. Null member_id grants organization-wide access. Duplicate subjects conflict. Grants never authorize Agent execution or configuration, immutable writes, or escape from admitted boundaries.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Organization selection for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
node_idrequiredpath / string

SDK: node_id

{
  "type": "string",
  "minLength": 1
}

Request body

Required.

application/json

FieldTypeDescription
member_idrequiredstring · uuid · nullableSame-organization membership; null grants organization-wide access.
rolerequiredstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/CreateFilesystemPermissionInput"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
201

Committed result.

application/json

{
  "$ref": "#/components/schemas/FilesystemPermission"
}
PUT/filesystem/nodes/{node_id}/permissions/{permission_id}

UpdateFilesystemPermission

Python: client.update_filesystem_permission(...)

Set supplied grant fields, retaining omitted fields. Explicit null expiry clears expiration. Grant identity, node and member are immutable. Equal updates preserve node revision.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Organization selection for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
node_idrequiredpath / string

SDK: node_id

{
  "type": "string",
  "minLength": 1
}
permission_idrequiredpath / string · uuid

SDK: permission_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
roleoptionalstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/UpdateFilesystemPermissionInput"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/FilesystemPermission"
}
DELETE/filesystem/nodes/{node_id}/permissions/{permission_id}

DeleteFilesystemPermission

Python: client.delete_filesystem_permission(...)

Remove a direct grant under current filesystem.share authority. Equal repeats return 204. Other direct and inherited grants remain. Existing mounts and open handles check current authority on subsequent operations.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Organization selection for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
node_idrequiredpath / string

SDK: node_id

{
  "type": "string",
  "minLength": 1
}
permission_idrequiredpath / string · uuid

SDK: permission_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 413, 422, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
204

Committed result.

POST/filesystem/commands

ExecuteFilesystemCommand

Python: client.execute_filesystem_command(...)

Execute one offline Bash command in the selected Agent's persistent Archil sandbox, against a freshly admitted authenticated caller FUSE view at /workspace. Current Agent write authority and credential scope are required to select the sandbox; the selection grants no filesystem or Session authority. Combined stdout/stderr is limited to 1 MiB; excess output returns 413. Request cancellation or deadline terminates the command. Nonzero Bash exit is a successful HTTP 200 with exit_code. Failed or timed-out commands retain earlier file effects and are never retried. The body supplies no actor or scope assertions.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Organization selection for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
agent_idrequiredstring · uuidAgent whose persistent Archil sandbox runs the command. Selection requires current Agent write authority and does not grant filesystem access.
commandrequiredstringOne offline Bash script, within the HTTP request body transport limit. File paths are relative to the caller view mounted at /workspace.

{"minLength": 1}

{
  "$ref": "#/components/schemas/FilesystemCommand"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 413, 422, 500, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/BashResult"
}
GET/filesystem/mount

ConnectFilesystemMount

Python: client.connect_filesystem_mount(...)

Upgrade with WebSocket subprotocol sftp. Exchange SFTP v3 bytes through binary messages. Paths resolve inside the authenticated organization view. The required agent_id selects the Agent's persistent Archil sandbox and requires current Agent writer authority and credential scope. Placement does not assert an acting Agent or widen filesystem access. Other query parameters are rejected. A supplied Origin must match the configured browser origin. Current grants and credential ceilings govern each file operation. Connection close, credential expiry and shutdown release the view. Native FUSE operations are internal, not separate HTTP endpoints.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

Organization selection for session credentials. Bearer keys remain bound to their organization.

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
agent_idrequiredquery / string · uuid

Agent whose persistent Archil sandbox hosts this caller view.

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 413, 422, 500, 503, 426

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
101

Authenticated SFTP v3 stream over binary WebSocket messages.

Response headers

{
  "Sec-WebSocket-Protocol": {
    "schema": {
      "type": "string",
      "enum": [
        "sftp"
      ]
    }
  }
}

Native transport

{
  "websocket": {
    "subprotocol": "sftp",
    "payload": "SFTP v3 binary byte stream"
  }
}

Namespaces

GET/namespaces/{namespace_id}/permissions

ListNamespacePermissions

Python: client.list_namespace_permissions(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
namespace_idrequiredpath / string

SDK: namespace_id

{
  "type": "string",
  "minLength": 1
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "maximum": 2147483646,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/NamespacePermissionPage"
}
POST/namespaces/{namespace_id}/permissions

CreateNamespacePermission

Python: client.create_namespace_permission(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
namespace_idrequiredpath / string

SDK: namespace_id

{
  "type": "string",
  "minLength": 1
}

Request body

Required.

application/json

FieldTypeDescription
member_idoptionalstring · uuid · nullable
grantee_agent_idoptionalstring · uuid · nullable
rolerequiredstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/CreateNamespacePermissionInput"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
201

Committed result.

application/json

{
  "$ref": "#/components/schemas/NamespacePermission"
}
PUT/namespaces/{namespace_id}/permissions/{permission_id}

UpdateNamespacePermission

Python: client.update_namespace_permission(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
namespace_idrequiredpath / string

SDK: namespace_id

{
  "type": "string",
  "minLength": 1
}
permission_idrequiredpath / string · uuid

SDK: permission_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
roleoptionalstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "$ref": "#/components/schemas/UpdateNamespacePermissionInput"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
200

Committed result.

application/json

{
  "$ref": "#/components/schemas/NamespacePermission"
}
DELETE/namespaces/{namespace_id}/permissions/{permission_id}

DeleteNamespacePermission

Python: client.delete_namespace_permission(...)

Manage direct resource grants under current resource owner or organization administrator authority and the caller credential ceiling. These grants authorize the canonical resource files without copied filesystem grants.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
namespace_idrequiredpath / string

SDK: namespace_id

{
  "type": "string",
  "minLength": 1
}
permission_idrequiredpath / string · uuid

SDK: permission_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
400, 401, 403, 404, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
204

Committed result.

Vault

GET/vault-secrets

ListVaultSecrets

Python: client.list_vault_secrets(...)

List current authorized metadata, including revoked or pending entries when visible. Values and native secret identities remain private.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
limitoptionalquery / integer · int64

SDK: limit

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
qoptionalquery / string

Case-insensitive literal substring of name; empty matches every authorized name.

SDK: q

{
  "type": "string"
}
nameoptionalquery / string

Case-insensitive exact name; empty disables this filter.

SDK: name

{
  "type": "string"
}
activeoptionalquery / boolean

Filter by revocation only; a pending entry has no usable version.

SDK: active

{
  "type": "boolean"
}
scopeoptionalquery / array

SDK: scope

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/VaultScope"
  }
}
scope_idoptionalquery / array

SDK: scope_id

{
  "type": "array",
  "items": {
    "type": "string",
    "format": "uuid"
  }
}

Responses

StatusResponse contract
200

Authorized result.

application/json

{
  "$ref": "#/components/schemas/VaultSecretPage"
}
400, 401, 403, 404, 409, 413, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/vault-secrets

CreateVaultSecret

Python: client.create_vault_secret(...)

Create a private native value under an explicit authorized scope. Return the original immutable entry/version reference, including equal replay after rotation or revocation. A reserved creation without a completed native binding returns conflict and performs no automatic recovery.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
idrequiredstring · uuid
namerequiredstring

{"minLength": 1, "maxLength": 120}

valuerequiredstring

{"maxLength": 65536, "writeOnly": true}

scope_refrequiredVaultScopeRef
consumer_constraintsrequiredVaultConsumerConstraints
http_targetsoptionalVaultHTTPDestinations
{
  "$ref": "#/components/schemas/RegisterVaultSecret"
}

Responses

StatusResponse contract
201

Authorized result.

application/json

{
  "$ref": "#/components/schemas/VaultSecretReference"
}
400, 401, 403, 404, 409, 413, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/vault-secrets/{id}

ReadVaultSecret

Python: client.read_vault_secret(...)

Read current authorized metadata and selected version identity. Secret values, fingerprints and native secret references are never returned.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Authorized result.

application/json

{
  "$ref": "#/components/schemas/VaultSecret"
}
400, 401, 403, 404, 409, 413, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/vault-secrets/{id}

UpdateVaultSecret

Python: client.update_vault_secret(...)

Update absolute supplied fields. Native immutable rotation runs outside SQL; concurrent different version publication conflicts. Existing Computer bindings retain their exact version.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1, "maxLength": 120}

valueoptionalstring

{"maxLength": 65536, "writeOnly": true}

http_targetsoptionalVaultHTTPDestinations
{
  "$ref": "#/components/schemas/VaultSecretInput"
}

Responses

StatusResponse contract
200

Authorized result.

application/json

{
  "$ref": "#/components/schemas/VaultSecret"
}
400, 401, 403, 404, 409, 413, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/vault-secrets/{id}

RevokeVaultSecret

Python: client.revoke_vault_secret(...)

Revoke future native consumer admissions. Repetition preserves the first revoke timestamp and all original references. This does not rotate credentials at their issuer or retract already admitted values.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Authorized result.

400, 401, 403, 404, 409, 413, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Network Rules

GET/network-rules

ListNetworkRules

Python: client.list_network_rules(...)

Requires organization.read. Ordinary readers see Organization rules and currently readable Agent/Template scopes within credential ceilings.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
limitoptionalquery / integer · int64

SDK: limit

{
  "type": "integer",
  "format": "int64",
  "minimum": 1,
  "default": 50
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
qoptionalquery / string

Case-insensitive literal substring of rule or scope name. Empty matches all visible rules.

SDK: q

{
  "type": "string"
}
scopeoptionalquery / array

SDK: scope

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/NetworkRuleScope"
  }
}
scope_idoptionalquery / array

SDK: scope_id

{
  "type": "array",
  "items": {
    "type": "string",
    "format": "uuid"
  }
}

Responses

StatusResponse contract
200

Authorized result.

application/json

{
  "$ref": "#/components/schemas/NetworkRulePage"
}
400, 401, 403, 404, 409, 413, 422, 500, 502, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/network-rules

CreateNetworkRule

Python: client.create_network_rule(...)

Requires organization.update. Save metadata and its revision, commit, then await affected gateways confirming the current database revision when the Computer VPN is enabled. Disabled Organizations retain rule definitions without enforcing them. Application failures return an error and retain saved metadata and completed applications; read the resource before changing it again. No fleet rollback or background retry is promised.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
namerequiredstring

{"minLength": 1, "pattern": "\\S"}

definitionrequiredNetworkRuleDefinition
scoperequiredNetworkRuleScope
scope_idrequiredstring · uuid
{
  "$ref": "#/components/schemas/NetworkRuleInput"
}

Responses

StatusResponse contract
201

Authorized result.

application/json

{
  "$ref": "#/components/schemas/NetworkRule"
}
400, 401, 403, 404, 409, 413, 422, 500, 502, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/network-rules/{id}

ReadNetworkRule

Python: client.read_network_rule(...)

Requires organization.read. Ordinary readers see Organization rules and currently readable Agent/Template scopes within credential ceilings.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Authorized result.

application/json

{
  "$ref": "#/components/schemas/NetworkRule"
}
400, 401, 403, 404, 409, 413, 422, 500, 502, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
PUT/network-rules/{id}

UpdateNetworkRule

Python: client.update_network_rule(...)

Requires organization.update. Save metadata and its revision, commit, then await affected gateways confirming the current database revision when the Computer VPN is enabled. Disabled Organizations retain rule definitions without enforcing them. Application failures return an error and retain saved metadata and completed applications; read the resource before changing it again. No fleet rollback or background retry is promised.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
nameoptionalstring

{"minLength": 1, "pattern": "\\S"}

definitionoptionalNetworkRuleDefinition
scopeoptionalNetworkRuleScope
scope_idoptionalstring · uuid
{
  "$ref": "#/components/schemas/UpdateNetworkRuleInput"
}

Responses

StatusResponse contract
200

Authorized result.

application/json

{
  "$ref": "#/components/schemas/NetworkRule"
}
400, 401, 403, 404, 409, 413, 422, 500, 502, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/network-rules/{id}

DeleteNetworkRule

Python: client.delete_network_rule(...)

Requires organization.update. Save metadata and its revision, commit, then await affected gateways confirming the current database revision when the Computer VPN is enabled. Disabled Organizations retain rule definitions without enforcing them. Application failures return an error and retain saved metadata and completed applications; read the resource before changing it again. No fleet rollback or background retry is promised.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
204

Authorized result.

400, 401, 403, 404, 409, 413, 422, 500, 502, 503, 504

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Action reviews and private input

DELETE/computers/{id}/desktop-actions/{action_id}

CancelDesktopAction

Python: client.cancel_desktop_action(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
action_idrequiredpath / string · uuid

SDK: action_id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}
session_idoptionalquery / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/FillAction"
}
400, 401, 403, 404, 409, 422, 500, 502, 503, 413, 429

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/computers/{id}/desktop-actions/{action_id}/input

SubmitDesktopInput

Python: client.submit_desktop_input(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
action_idrequiredpath / string · uuid

SDK: action_id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
session_idoptionalstring · uuidSession that owns this native input request.
valuesrequiredarray

{"minItems": 1}

{
  "$ref": "#/components/schemas/FillInputSubmission"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/FillAction"
}
400, 401, 403, 404, 409, 422, 500, 502, 503, 413, 429

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/action-reviews

ListActionReviews

Python: client.list_action_reviews(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
session_idoptionalquery / string · uuid

SDK: session_id

{
  "type": "string",
  "format": "uuid"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

Requested upper bound on this page. The owner may return fewer items to satisfy its native response/transport bounds. Use the returned cursor to continue.

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "default": 30
}
statusoptionalquery / string

SDK: status

{
  "type": "string",
  "enum": [
    "pending",
    "approved",
    "denied",
    "cancelled",
    "consumed",
    "active"
  ]
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/ActionReviewPage"
}
400, 401, 403, 404, 409, 502, 503, 413, 422, 429, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agents/{id}/action-reviews

ReviewAgentAction

Python: client.review_agent_action(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
session_idrequiredstring · uuidSession that owns this native task. Task IDs are local to its namespace store.
task_idrequiredinteger · int64

{"minimum": 1}

{
  "$ref": "#/components/schemas/ActionReviewInput"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/ActionReviewResult"
}
400, 401, 403, 404, 409, 502, 503, 413, 422, 429, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/agents/{id}/action-reviews/{review_id}

CancelActionReview

Python: client.cancel_action_review(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
review_idrequiredpath / string · uuid

SDK: review_id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/ActionReview"
}
400, 401, 403, 404, 409, 502, 503, 413, 422, 429, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/action-reviews/{review_id}

GetActionReview

Python: client.get_action_review(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
review_idrequiredpath / string · uuid

SDK: review_id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/ActionReview"
}
400, 401, 403, 404, 409, 502, 503, 413, 422, 429, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agents/{id}/action-reviews/{review_id}/decision

DecideActionReview

Python: client.decide_action_review(...)

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
review_idrequiredpath / string · uuid

SDK: review_id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
decisionrequiredstring

{"enum": ["approve", "deny"]}

{
  "$ref": "#/components/schemas/ActionReviewDecision"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/ActionReview"
}
400, 401, 403, 404, 409, 502, 503, 413, 422, 429, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

MCP connections and tools

GET/mcp-connections

ListMcpConnections

Python: client.list_mcp_connections(...)

List the remote MCP connections declared by the Agent's mcp.json, ordered by name. Requires Agent read authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
agent_idrequiredquery / string · uuid

SDK: agent_id

{
  "type": "string",
  "format": "uuid"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "default": 50
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/McpConnectionPage"
}
400, 401, 403, 404, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/mcp-connections/{connection}/authorization

AuthorizeMcpConnection

Python: client.authorize_mcp_connection(...)

Connect the Agent's configured remote MCP server. Returns ready with its tool catalog, or authorization_required with the provider's OAuth authorization URL. Requires Agent write authority and, with computer_id, Computer use.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
connectionrequiredpath / string

SDK: connection

{
  "type": "string",
  "minLength": 1,
  "maxLength": 8192
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/McpConnectionState"
}
400, 401, 403, 404, 409, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
DELETE/mcp-connections/{connection}/authorization

DisconnectMcpConnection

Python: client.disconnect_mcp_connection(...)

Forget the connection's OAuth grant and ask the provider to revoke it. revoked reports the provider's answer. Requires Agent write authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
connectionrequiredpath / string

SDK: connection

{
  "type": "string",
  "minLength": 1,
  "maxLength": 8192
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/McpDisconnection"
}
400, 401, 403, 404, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/mcp-connections/{connection}/client-metadata

ReadMcpClientMetadata

Python: client.read_mcp_client_metadata(...)

Public OAuth client metadata document for this connection. It contains fixed Completion redirect URLs and no grant data.

Authentication: None declared.

Parameters

NameLocation / typeDescription
connectionrequiredpath / string

SDK: connection

{
  "type": "string",
  "minLength": 1,
  "maxLength": 8192
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/McpClientMetadata"
}
400, 409, 500

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/mcp-connections/{connection}/oauth-callbacks

CompleteMcpAuthorization

Python: client.complete_mcp_authorization(...)

OAuth redirect target. The provider's code and state must match the saved authorization attempt.

Authentication: None declared.

Parameters

NameLocation / typeDescription
connectionrequiredpath / string

SDK: connection

{
  "type": "string",
  "minLength": 1,
  "maxLength": 8192
}
coderequiredquery / string

SDK: code

{
  "type": "string",
  "minLength": 1,
  "maxLength": 8192
}
staterequiredquery / string

SDK: state

{
  "type": "string",
  "minLength": 1,
  "maxLength": 8192
}
issoptionalquery / string

SDK: iss

{
  "type": "string",
  "maxLength": 8192
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/McpAuthorization"
}
400, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
GET/agents/{id}/remote-mcp-tools

ListRemoteMcpTools

Python: client.list_remote_mcp_tools(...)

Connect each remote MCP server in the Agent's mcp.json, ordered by name, and return its state and tool catalog. A connection that fails returns state error. Requires Agent read authority and, for a connection with computer_id, Computer use.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
cursoroptionalquery / string

SDK: cursor

{
  "type": "string"
}
limitoptionalquery / integer

SDK: limit

{
  "type": "integer",
  "minimum": 1,
  "default": 50
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Responses

StatusResponse contract
200

Native result.

application/json

{
  "$ref": "#/components/schemas/RemoteMcpToolPage"
}
400, 401, 403, 404, 413, 500, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}
POST/agents/{id}/remote-mcp-tool-calls

CallRemoteMcpTool

Python: client.call_remote_mcp_tool(...)

Call one tool on a remote MCP connection declared by this Agent's mcp.json and return the native MCP CallToolResult. Requires Agent read authority and, with computer_id, Computer use. Vault placeholders in configured headers use the caller's current Vault authority.

Authentication: BearerAuth or BrowserSession.

Parameters

NameLocation / typeDescription
idrequiredpath / string · uuid

SDK: id

{
  "type": "string",
  "format": "uuid"
}
X-Organization-IDoptionalheader / string · uuid

SDK: x_organization_id

{
  "type": "string",
  "format": "uuid"
}

Request body

Required.

application/json

FieldTypeDescription
connectionrequiredstring

{"minLength": 1, "maxLength": 8192}

namerequiredstring

{"minLength": 1, "maxLength": 256}

argumentsrequiredobject
{
  "$ref": "#/components/schemas/RemoteMcpToolCallInput"
}

Responses

StatusResponse contract
200

Native MCP CallToolResult.

application/json

{
  "type": "object",
  "additionalProperties": true
}
400, 401, 403, 404, 409, 413, 500, 502, 503

Request rejected

application/json

{
  "$ref": "#/components/schemas/ErrorBody"
}

Schemas

APIKey
FieldTypeDescription
idrequiredstring · uuid
user_idrequiredstring · uuid
native_scoperequiredNativeScope
expires_atrequiredstring · date-time · nullable
revoked_atrequiredstring · date-time · nullable
created_atrequiredstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "user_id",
    "native_scope",
    "expires_at",
    "revoked_at",
    "created_at"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "user_id": {
      "type": "string",
      "format": "uuid"
    },
    "native_scope": {
      "$ref": "#/components/schemas/NativeScope"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "revoked_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}
APIKeyCreated
FieldTypeDescription
idrequiredstring · uuid
native_scoperequiredNativeScope
revoked_atrequiredstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "native_scope": {
      "$ref": "#/components/schemas/NativeScope"
    },
    "revoked_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  },
  "required": [
    "id",
    "native_scope",
    "revoked_at"
  ]
}
APIKeyPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/APIKey"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
Account
FieldTypeDescription
deletion_idoptionalstring · uuid · nullable
userrequiredUser
organizationrequiredcomposed schema · nullable
{
  "type": "object",
  "properties": {
    "deletion_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "user": {
      "$ref": "#/components/schemas/User"
    },
    "organization": {
      "allOf": [
        {
          "$ref": "#/components/schemas/OrganizationIdentity"
        }
      ],
      "nullable": true
    }
  },
  "required": [
    "user",
    "organization"
  ]
}
AccountSettingsResult
FieldTypeDescription
userrequiredUser
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "user"
  ],
  "properties": {
    "user": {
      "$ref": "#/components/schemas/User"
    }
  }
}
ActionReview
FieldTypeDescription
task_idoptionalinteger · int64

{"minimum": 1}

input_idoptionalstring · uuid
idrequiredstring · uuid
session_idrequiredstring · uuid · nullable
action_idoptionalstring
statusrequiredActionReviewStatus
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
decided_byoptionalstring · uuid · nullable
decided_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "session_id",
    "status",
    "created_at",
    "updated_at"
  ],
  "properties": {
    "task_id": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "input_id": {
      "type": "string",
      "format": "uuid"
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "session_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "action_id": {
      "type": "string"
    },
    "status": {
      "$ref": "#/components/schemas/ActionReviewStatus"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "decided_by": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "decided_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  }
}
ActionReviewDecision
FieldTypeDescription
decisionrequiredstring

{"enum": ["approve", "deny"]}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "decision"
  ],
  "properties": {
    "decision": {
      "type": "string",
      "enum": [
        "approve",
        "deny"
      ]
    }
  }
}
ActionReviewInput
FieldTypeDescription
session_idrequiredstring · uuidSession that owns this native task. Task IDs are local to its namespace store.
task_idrequiredinteger · int64

{"minimum": 1}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "session_id",
    "task_id"
  ],
  "properties": {
    "session_id": {
      "type": "string",
      "format": "uuid",
      "description": "Session that owns this native task. Task IDs are local to its namespace store."
    },
    "task_id": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    }
  }
}
ActionReviewPage
FieldTypeDescription
itemsrequiredarray
has_morerequiredboolean
next_cursoroptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "items",
    "has_more"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ActionReview"
      }
    },
    "has_more": {
      "type": "boolean"
    },
    "next_cursor": {
      "type": "string"
    }
  }
}
ActionReviewResult
FieldTypeDescription
decisionrequiredGuardrailDecision
reviewoptionalActionReview
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "decision"
  ],
  "properties": {
    "decision": {
      "$ref": "#/components/schemas/GuardrailDecision"
    },
    "review": {
      "$ref": "#/components/schemas/ActionReview"
    }
  }
}
ActionReviewStatus
{
  "type": "string",
  "enum": [
    "pending",
    "approved",
    "denied",
    "cancelled",
    "consumed"
  ]
}
Agent
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
owner_member_idrequiredstring · uuid · nullableOwning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership.
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
allowed_permissionsrequiredarray
titlerequiredstring
archivedrequiredboolean
parent_agent_idrequiredstring · uuid · nullable
agent_template_idrequiredstring · uuid · nullable
agent_template_version_idrequiredstring · uuid · nullable
namespace_idrequiredstring

{"minLength": 1}

computer_idrequiredstring · uuid · nullable
browser_idrequiredstring · uuid · nullable
statusrequiredstring

{"enum": ["allocated", "preparing", "ready", "failed"]}

last_errorrequiredstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "owner_member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Owning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "allowed_permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "title": {
      "type": "string"
    },
    "archived": {
      "type": "boolean"
    },
    "parent_agent_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "agent_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "agent_template_version_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "namespace_id": {
      "type": "string",
      "minLength": 1
    },
    "computer_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "status": {
      "type": "string",
      "enum": [
        "allocated",
        "preparing",
        "ready",
        "failed"
      ]
    },
    "last_error": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "id",
    "organization_id",
    "owner_member_id",
    "created_at",
    "updated_at",
    "allowed_permissions",
    "title",
    "archived",
    "parent_agent_id",
    "agent_template_id",
    "agent_template_version_id",
    "namespace_id",
    "computer_id",
    "browser_id",
    "status",
    "last_error"
  ]
}
AgentConfiguration
FieldTypeDescription
pluginsoptionalarray
modeloptionalstring

{"minLength": 1}

reasoning_effortoptionalstring

{"enum": ["off", "minimal", "low", "medium", "high", "xhigh", "max"]}

priorityoptionalboolean
instructionsoptionalstring
toolsoptionalarray · nullable
skillsoptionalarray · nullable
mcp_serversoptionalarray · nullable
voiceoptionalcomposed schema · nullable
max_goal_token_budgetoptionalinteger · int64

{"minimum": 1}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "plugins": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "model": {
      "type": "string",
      "minLength": 1
    },
    "reasoning_effort": {
      "type": "string",
      "enum": [
        "off",
        "minimal",
        "low",
        "medium",
        "high",
        "xhigh",
        "max"
      ]
    },
    "priority": {
      "type": "boolean"
    },
    "instructions": {
      "type": "string"
    },
    "tools": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "nullable": true
    },
    "skills": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "nullable": true
    },
    "mcp_servers": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "nullable": true
    },
    "voice": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VoiceSettings"
        }
      ],
      "nullable": true
    },
    "max_goal_token_budget": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    }
  },
  "description": "Agent program settings, owned by the program store rather than copied into resource metadata."
}
AgentInputReceipt
FieldTypeDescription
idrequiredstring · uuid
agent_idrequiredstring · uuid
session_idrequiredstring · uuid
namespace_idrequiredstring

{"minLength": 1}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "agent_id": {
      "type": "string",
      "format": "uuid"
    },
    "session_id": {
      "type": "string",
      "format": "uuid"
    },
    "namespace_id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id",
    "agent_id",
    "session_id",
    "namespace_id"
  ]
}
AgentPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Agent"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
AgentPermission
FieldTypeDescription
idrequiredstring · uuid
agent_idrequiredstring · uuid
member_idrequiredstring · uuid · nullable
grantee_agent_idrequiredstring · uuid · nullable
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atrequiredstring · date-time · nullable
created_atrequiredstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "agent_id": {
      "type": "string",
      "format": "uuid"
    },
    "member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "grantee_agent_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "role": {
      "type": "string",
      "enum": [
        "viewer",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "agent_id",
    "member_id",
    "grantee_agent_id",
    "role",
    "expires_at",
    "created_at"
  ]
}
AgentPermissionPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AgentPermission"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
AgentSession
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
agent_idrequiredstring · uuid
parent_session_idrequiredstring · uuid · nullable
namespace_idrequiredstring

{"minLength": 1}

computer_idrequiredstring · uuid · nullable
browser_idrequiredstring · uuid · nullable
settingsrequiredAgentSettings
created_atrequiredstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "agent_id": {
      "type": "string",
      "format": "uuid"
    },
    "parent_session_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "namespace_id": {
      "type": "string",
      "minLength": 1
    },
    "computer_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "settings": {
      "$ref": "#/components/schemas/AgentSettings"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "organization_id",
    "agent_id",
    "parent_session_id",
    "namespace_id",
    "computer_id",
    "browser_id",
    "settings",
    "created_at"
  ]
}
AgentSessionEventPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullableContinuation after the last returned native entry. Retain it while polling, including when has_more is false. Empty pages preserve the supplied continuation.
has_morerequiredbooleanMore entries are currently committed after this page; false does not end polling.
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NativeEntry"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true,
      "description": "Continuation after the last returned native entry. Retain it while polling, including when has_more is false. Empty pages preserve the supplied continuation."
    },
    "has_more": {
      "type": "boolean",
      "description": "More entries are currently committed after this page; false does not end polling."
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
AgentSessionPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AgentSession"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
AgentSettings
FieldTypeDescription
pluginsoptionalarray
modeloptionalstring

{"minLength": 1}

reasoning_effortoptionalstring

{"enum": ["off", "minimal", "low", "medium", "high", "xhigh", "max"]}

priorityoptionalboolean
instructionsoptionalstring
toolsoptionalarray · nullable
skillsoptionalarray · nullable
mcp_serversoptionalarray · nullable
voiceoptionalcomposed schema · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "plugins": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "model": {
      "type": "string",
      "minLength": 1
    },
    "reasoning_effort": {
      "type": "string",
      "enum": [
        "off",
        "minimal",
        "low",
        "medium",
        "high",
        "xhigh",
        "max"
      ]
    },
    "priority": {
      "type": "boolean"
    },
    "instructions": {
      "type": "string"
    },
    "tools": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "nullable": true
    },
    "skills": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "nullable": true
    },
    "mcp_servers": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "nullable": true
    },
    "voice": {
      "allOf": [
        {
          "$ref": "#/components/schemas/VoiceSettings"
        }
      ],
      "nullable": true
    }
  },
  "description": "Behavior settings. Omission preserves/inherits a field. Supplied arrays replace it. Null tool/skill/MCP selections select all eligible entries; empty arrays select none. Null voice clears voice settings. Settings do not grant authority."
}
AgentTemplate
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
owner_member_idrequiredstring · uuid · nullableOwning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership.
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
allowed_permissionsrequiredarray
namerequiredstring

{"minLength": 1}

source_agent_idrequiredstring · uuid · nullable
computer_template_idrequiredstring · uuid · nullable
browser_template_idrequiredstring · uuid · nullable
current_version_idrequiredstring · uuid · nullable
program_refrequiredcomposed schema · nullable
statusrequiredstring

{"enum": ["draft", "publishing", "ready", "failed"]}

last_errorrequiredstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "owner_member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Owning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "allowed_permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "source_agent_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "computer_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "current_version_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "program_ref": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ProgramReference"
        }
      ],
      "nullable": true
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "publishing",
        "ready",
        "failed"
      ]
    },
    "last_error": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "id",
    "organization_id",
    "owner_member_id",
    "created_at",
    "updated_at",
    "allowed_permissions",
    "name",
    "source_agent_id",
    "computer_template_id",
    "browser_template_id",
    "current_version_id",
    "program_ref",
    "status",
    "last_error"
  ]
}
AgentTemplatePage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AgentTemplate"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
AgentTemplateVersion
FieldTypeDescription
idrequiredstring · uuid
agent_template_idrequiredstring · uuid
request_idrequiredstring · uuid
statusrequiredstring

{"enum": ["pending", "ready", "failed"]}

created_atrequiredstring · date-time
last_errorrequiredstring · nullable
program_refrequiredcomposed schema · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "agent_template_id": {
      "type": "string",
      "format": "uuid"
    },
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "failed"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "last_error": {
      "type": "string",
      "nullable": true
    },
    "program_ref": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ProgramReference"
        }
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "agent_template_id",
    "request_id",
    "status",
    "created_at",
    "last_error",
    "program_ref"
  ]
}
BashResult
FieldTypeDescription
stdoutrequiredstring
stderrrequiredstring
exit_coderequiredinteger
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "stdout": {
      "type": "string"
    },
    "stderr": {
      "type": "string"
    },
    "exit_code": {
      "type": "integer"
    }
  },
  "required": [
    "stdout",
    "stderr",
    "exit_code"
  ]
}
Browser
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
owner_member_idrequiredstring · uuid · nullableOwning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership.
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
allowed_permissionsrequiredarray
namerequiredstring

{"minLength": 1}

providerrequiredstring

{"minLength": 1}

browser_template_idrequiredstring · uuid · nullable
statusrequiredstring

{"enum": ["allocated", "provisioning", "ready", "failed", "closed"]}

last_errorrequiredstring · nullable
start_urlrequiredstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "owner_member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Owning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "allowed_permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "provider": {
      "type": "string",
      "minLength": 1
    },
    "browser_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "status": {
      "type": "string",
      "enum": [
        "allocated",
        "provisioning",
        "ready",
        "failed",
        "closed"
      ]
    },
    "last_error": {
      "type": "string",
      "nullable": true
    },
    "start_url": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "id",
    "organization_id",
    "owner_member_id",
    "created_at",
    "updated_at",
    "allowed_permissions",
    "name",
    "provider",
    "browser_template_id",
    "status",
    "last_error",
    "start_url"
  ]
}
BrowserPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Browser"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
BrowserTemplate
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
owner_member_idrequiredstring · uuid · nullableOwning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership.
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
allowed_permissionsrequiredarray
namerequiredstring

{"minLength": 1}

providerrequiredstring

{"minLength": 1}

current_capture_idrequiredstring · uuid · nullable
statusrequiredstring

{"enum": ["pending", "ready", "failed"]}

last_errorrequiredstring · nullable
source_browser_idrequiredstring · uuid
start_urlrequiredstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "owner_member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Owning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "allowed_permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "provider": {
      "type": "string",
      "minLength": 1
    },
    "current_capture_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "failed"
      ]
    },
    "last_error": {
      "type": "string",
      "nullable": true
    },
    "source_browser_id": {
      "type": "string",
      "format": "uuid"
    },
    "start_url": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "id",
    "organization_id",
    "owner_member_id",
    "created_at",
    "updated_at",
    "allowed_permissions",
    "name",
    "provider",
    "current_capture_id",
    "status",
    "last_error",
    "source_browser_id",
    "start_url"
  ]
}
BrowserTemplateCapture
FieldTypeDescription
idrequiredstring · uuid
browser_template_idrequiredstring · uuid
request_idrequiredstring · uuid
statusrequiredstring

{"enum": ["pending", "ready", "failed"]}

created_atrequiredstring · date-time
last_errorrequiredstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "browser_template_id": {
      "type": "string",
      "format": "uuid"
    },
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "failed"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "last_error": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "id",
    "browser_template_id",
    "request_id",
    "status",
    "created_at",
    "last_error"
  ]
}
BrowserTemplatePage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BrowserTemplate"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
Computer
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
owner_member_idrequiredstring · uuid · nullableOwning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership.
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
allowed_permissionsrequiredarray
namerequiredstring

{"minLength": 1}

providerrequiredstring

{"minLength": 1}

computer_template_idrequiredstring · uuid · nullable
statusrequiredstring

{"enum": ["allocated", "provisioning", "running", "paused", "failed", "closed"]}

last_errorrequiredstring · nullable
platformrequiredstring · nullable
architecturerequiredstring · nullable
os_userrequiredstring · nullable
runtime_buildrequiredstring · nullable
installed_versionrequiredstring · nullable
resume_expires_atrequiredstring · date-time · nullable
connectionoptionalComputerConnectionLive native relay observation for an attached Computer. Managed Computers omit this field. Relay errors fail the read instead of reporting an offline device.
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "owner_member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Owning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "allowed_permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "provider": {
      "type": "string",
      "minLength": 1
    },
    "computer_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "status": {
      "type": "string",
      "enum": [
        "allocated",
        "provisioning",
        "running",
        "paused",
        "failed",
        "closed"
      ]
    },
    "last_error": {
      "type": "string",
      "nullable": true
    },
    "platform": {
      "type": "string",
      "nullable": true
    },
    "architecture": {
      "type": "string",
      "nullable": true
    },
    "os_user": {
      "type": "string",
      "nullable": true
    },
    "runtime_build": {
      "type": "string",
      "nullable": true
    },
    "installed_version": {
      "type": "string",
      "nullable": true
    },
    "resume_expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "connection": {
      "description": "Live native relay observation for an attached Computer. Managed Computers omit this field. Relay errors fail the read instead of reporting an offline device.",
      "$ref": "#/components/schemas/ComputerConnection"
    }
  },
  "required": [
    "id",
    "organization_id",
    "owner_member_id",
    "created_at",
    "updated_at",
    "allowed_permissions",
    "name",
    "provider",
    "computer_template_id",
    "status",
    "last_error",
    "platform",
    "architecture",
    "os_user",
    "runtime_build",
    "installed_version",
    "resume_expires_at"
  ]
}
ComputerCommandInput
FieldTypeDescription
commandrequiredstring

{"minLength": 1, "maxLength": 32768}

cwdoptionalstring

{"minLength": 1, "maxLength": 4096}

timeout_msoptionalinteger

{"default": 30000, "minimum": 1, "maximum": 300000}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "command": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32768
    },
    "cwd": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    },
    "timeout_ms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 300000,
      "default": 30000
    }
  },
  "required": [
    "command"
  ]
}
ComputerCommandResult
FieldTypeDescription
stdoutrequiredstring
stderrrequiredstring
exit_coderequiredinteger
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "stdout": {
      "type": "string"
    },
    "stderr": {
      "type": "string"
    },
    "exit_code": {
      "type": "integer"
    }
  },
  "required": [
    "stdout",
    "stderr",
    "exit_code"
  ]
}
ComputerConnection
FieldTypeDescription
onlinerequiredboolean
runtime_buildrequiredstring · nullable
observationsrequiredarray
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "online": {
      "type": "boolean"
    },
    "runtime_build": {
      "type": "string",
      "nullable": true
    },
    "observations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ComputerFeatureObservation"
      }
    }
  },
  "required": [
    "online",
    "runtime_build",
    "observations"
  ]
}
ComputerCredentialReference
FieldTypeDescription
idrequiredstring · uuid
version_idrequiredstring

{"minLength": 1}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "version_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "version_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
ComputerFeatureObservation
FieldTypeDescription
featurerequiredstring

{"enum": ["terminal", "bash", "desktop", "control"]}

resultrequiredstring

{"enum": ["ready", "not_checked", "unavailable"]}

reasonoptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "feature": {
      "type": "string",
      "enum": [
        "terminal",
        "bash",
        "desktop",
        "control"
      ]
    },
    "result": {
      "type": "string",
      "enum": [
        "ready",
        "not_checked",
        "unavailable"
      ]
    },
    "reason": {
      "type": "string"
    }
  },
  "required": [
    "feature",
    "result"
  ]
}
ComputerPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Computer"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
ComputerPairing
FieldTypeDescription
computer_idrequiredstring · uuid · nullable
organization_idrequiredstring · uuid · nullable
idrequiredstring · uuid
user_coderequiredstring
namerequiredstring
platformrequiredstring

{"enum": ["darwin", "linux", "windows"]}

architecturerequiredstring

{"enum": ["amd64", "arm64"]}

os_userrequiredstring
runtime_buildrequiredstring
expires_atrequiredstring · date-time
verification_urirequiredstring · uri
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "computer_id",
    "organization_id",
    "id",
    "user_code",
    "name",
    "platform",
    "architecture",
    "os_user",
    "runtime_build",
    "expires_at",
    "verification_uri"
  ],
  "properties": {
    "computer_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "organization_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "user_code": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "platform": {
      "type": "string",
      "enum": [
        "darwin",
        "linux",
        "windows"
      ]
    },
    "architecture": {
      "type": "string",
      "enum": [
        "amd64",
        "arm64"
      ]
    },
    "os_user": {
      "type": "string"
    },
    "runtime_build": {
      "type": "string"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "verification_uri": {
      "type": "string",
      "format": "uri"
    }
  }
}
ComputerPairingApproval
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "organization_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    }
  }
}
ComputerPairingCodeInput
FieldTypeDescription
user_coderequiredstring

{"maxLength": 9, "pattern": "^[A-Z2-7]{4}-?[A-Z2-7]{4}$"}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "user_code"
  ],
  "properties": {
    "user_code": {
      "type": "string",
      "pattern": "^[A-Z2-7]{4}-?[A-Z2-7]{4}$",
      "maxLength": 9
    }
  }
}
ComputerSoftwareUpdateInput
FieldTypeDescription
request_idrequiredstring · uuid
target_buildrequiredstring

{"pattern": "^[a-f0-9]{64}$"}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "request_id",
    "target_build"
  ],
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "target_build": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  }
}
ComputerSoftwareUpdateStatus
FieldTypeDescription
can_updaterequiredboolean
selected_buildrequiredstring
selected_versionrequiredstring
available_buildrequiredstring
available_versionrequiredstring
update_availablerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "can_update",
    "selected_build",
    "selected_version",
    "available_build",
    "available_version",
    "update_available"
  ],
  "properties": {
    "can_update": {
      "type": "boolean"
    },
    "selected_build": {
      "type": "string"
    },
    "selected_version": {
      "type": "string"
    },
    "available_build": {
      "type": "string"
    },
    "available_version": {
      "type": "string"
    },
    "update_available": {
      "type": "boolean"
    }
  }
}
ComputerTemplate
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
owner_member_idrequiredstring · uuid · nullableOwning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership.
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
allowed_permissionsrequiredarray
namerequiredstring

{"minLength": 1}

providerrequiredstring

{"minLength": 1}

current_capture_idrequiredstring · uuid · nullable
statusrequiredstring

{"enum": ["pending", "ready", "failed", "closed"]}

last_errorrequiredstring · nullable
source_computer_idrequiredstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "owner_member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Owning organization membership. Membership deletion sets this to null without deleting the resource. Organization administrators retain resource management authority regardless of ownership, subject to credential scope ceilings; access does not assign ownership."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "allowed_permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "provider": {
      "type": "string",
      "minLength": 1
    },
    "current_capture_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "failed",
        "closed"
      ]
    },
    "last_error": {
      "type": "string",
      "nullable": true
    },
    "source_computer_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "id",
    "organization_id",
    "owner_member_id",
    "created_at",
    "updated_at",
    "allowed_permissions",
    "name",
    "provider",
    "current_capture_id",
    "status",
    "last_error",
    "source_computer_id"
  ]
}
ComputerTemplateCapture
FieldTypeDescription
idrequiredstring · uuid
computer_template_idrequiredstring · uuid
request_idrequiredstring · uuid
statusrequiredstring

{"enum": ["pending", "ready", "failed"]}

created_atrequiredstring · date-time
last_errorrequiredstring · nullable
interrupts_computeroptionalboolean
retention_secondsoptionalinteger · int64
expires_atoptionalstring · date-time
source_statusoptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "computer_template_id": {
      "type": "string",
      "format": "uuid"
    },
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "failed"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "last_error": {
      "type": "string",
      "nullable": true
    },
    "interrupts_computer": {
      "type": "boolean"
    },
    "retention_seconds": {
      "type": "integer",
      "format": "int64"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    },
    "source_status": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "computer_template_id",
    "request_id",
    "status",
    "created_at",
    "last_error"
  ]
}
ComputerTemplatePage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ComputerTemplate"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
ContinueSignInInput
FieldTypeDescription
coderequiredstringSix decimal digits from the delivered email. Never log this value.

{"minLength": 6, "maxLength": 6, "writeOnly": true}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "minLength": 6,
      "maxLength": 6,
      "writeOnly": true,
      "description": "Six decimal digits from the delivered email. Never log this value."
    }
  }
}
CreateAgentInput
FieldTypeDescription
idrequiredstring · uuid
agent_template_idoptionalstring · uuid
computer_template_idoptionalstring · uuid · nullable
browser_template_idoptionalstring · uuid · nullable
computer_idoptionalstring · uuid · nullable
browser_idoptionalstring · uuid · nullable
parent_agent_idoptionalstring · uuid · nullable
titleoptionalstring
settingsoptionalAgentConfiguration
permissionsoptionalarray
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "agent_template_id": {
      "type": "string",
      "format": "uuid"
    },
    "computer_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "computer_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "parent_agent_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "title": {
      "type": "string"
    },
    "settings": {
      "$ref": "#/components/schemas/AgentConfiguration"
    },
    "permissions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreateAgentPermissionInput"
      }
    }
  },
  "required": [
    "id"
  ],
  "description": "Define an Agent allocation. Select an existing Computer/Browser or a Template for that resource, never both. No model input is submitted. Published Template selection is resolved and pinned internally.",
  "not": {
    "anyOf": [
      {
        "required": [
          "computer_id",
          "computer_template_id"
        ]
      },
      {
        "required": [
          "browser_id",
          "browser_template_id"
        ]
      }
    ]
  }
}
CreateAgentMessageInput
FieldTypeDescription
idrequiredstring · uuid
contentrequiredstring

{"minLength": 1}

modeoptionalstringDelivery of a new message. Queue follows the current run; steer joins it after the current tool round; restart interrupts the active run and submits this input without resetting history. Reusing a message ID changes content only and retains its original mode.

{"enum": ["queue", "steer", "restart"], "default": "queue"}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "content": {
      "type": "string",
      "minLength": 1
    },
    "mode": {
      "type": "string",
      "enum": [
        "queue",
        "steer",
        "restart"
      ],
      "default": "queue",
      "description": "Delivery of a new message. Queue follows the current run; steer joins it after the current tool round; restart interrupts the active run and submits this input without resetting history. Reusing a message ID changes content only and retains its original mode."
    }
  },
  "required": [
    "id",
    "content"
  ]
}
CreateAgentPermissionInput
FieldTypeDescription
member_idoptionalstring · uuid · nullable
grantee_agent_idoptionalstring · uuid · nullable
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "description": "At most one subject may be non-null. Both null grant organization-wide access. Subjects must belong to this organization.",
  "properties": {
    "member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "grantee_agent_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "role": {
      "type": "string",
      "enum": [
        "viewer",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  },
  "required": [
    "role"
  ]
}
CreateAgentSessionInput
FieldTypeDescription
idrequiredstring · uuid
parent_session_idoptionalstring · uuid · nullable
namespace_idoptionalstringAuthorized namespace node ID. Omit to inherit the Agent or parent selection; null is invalid.

{"minLength": 1}

computer_idoptionalstring · uuid
browser_idoptionalstring · uuid
settingsoptionalAgentSettings
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "parent_session_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "namespace_id": {
      "type": "string",
      "minLength": 1,
      "description": "Authorized namespace node ID. Omit to inherit the Agent or parent selection; null is invalid."
    },
    "computer_id": {
      "type": "string",
      "format": "uuid"
    },
    "browser_id": {
      "type": "string",
      "format": "uuid"
    },
    "settings": {
      "$ref": "#/components/schemas/AgentSettings"
    }
  },
  "required": [
    "id"
  ],
  "description": "Allocate Session metadata without submitting work. Omitted selections inherit from the Agent or parent; explicit selections require authority. Namespace binding is immutable. No fork or checkpoint input is accepted."
}
CreateAgentTemplateInput
FieldTypeDescription
idrequiredstring · uuid
namerequiredstring

{"minLength": 1}

source_agent_idoptionalstring · uuid
computer_template_idoptionalstring · uuid · nullable
browser_template_idoptionalstring · uuid · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "source_agent_id": {
      "type": "string",
      "format": "uuid"
    },
    "computer_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "required": [
    "id",
    "name"
  ]
}
CreateBrowserInput
FieldTypeDescription
idrequiredstring · uuid
browser_template_idoptionalstring · uuid
provideroptionalstring

{"minLength": 1}

nameoptionalstring

{"minLength": 1}

sourceoptionalobject
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "browser_template_id": {
      "type": "string",
      "format": "uuid"
    },
    "provider": {
      "type": "string",
      "minLength": 1
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "source": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "id"
  ],
  "description": "Allocate a fresh independent Kernel profile without a live Browser. Set provider=\"kernel\" and omit source and browser_template_id. Existing native profile import, Template instantiation and other providers return 422 because Kernel has no profile-only clone or import operation. A raw native identifier does not establish Completion authority.",
  "not": {
    "anyOf": [
      {
        "required": [
          "browser_template_id",
          "provider"
        ]
      },
      {
        "required": [
          "browser_template_id",
          "source"
        ]
      },
      {
        "not": {
          "anyOf": [
            {
              "required": [
                "browser_template_id"
              ]
            },
            {
              "required": [
                "provider"
              ]
            }
          ]
        }
      }
    ]
  }
}
CreateBrowserTemplateInput
FieldTypeDescription
idrequiredstring · uuid
source_browser_idrequiredstring · uuid
namerequiredstring

{"minLength": 1}

start_urloptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "source_browser_id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "start_url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "source_browser_id",
    "name"
  ]
}
CreateComputerInput
FieldTypeDescription
idrequiredstring · uuid
computer_template_idoptionalstring · uuid
provideroptionalstring

{"minLength": 1}

nameoptionalstring

{"minLength": 1}

sourceoptionalobjectNative image or snapshot selection only. E2B accepts templateID; Daytona accepts snapshot or image, with an optional native target region; Modal accepts image_id or image; Boat accepts from and type; Vercel accepts snapshot_id or image; Archil accepts image_id or base_image. Vercel and Archil identifiers must be nonempty strings. An empty object selects the configured native image default. API destinations, account/app/environment settings and credentials belong to the immutable Vault connection and are rejected in source. Native source overrides require explicitly supplied authorized Vault references. Completion-default creation accepts an empty source; other copies use an authorized Computer or Template.
computer_idoptionalstring · uuid
credential_referencesoptionalobjectExact Vault version references keyed by E2B_SANDBOX, DAYTONA_SANDBOX, MODAL_SANDBOX, BOAT_SANDBOX, VERCEL_SANDBOX or ARCHIL_SANDBOX. Each provider takes exactly one JSON text Vault value containing its credentials and connection/account settings. E2B/Daytona use api_key and optional api_url; Modal uses token_id, token_secret and optional app_name and environment; Boat uses api_key and optional api_url and org. Vercel uses token, team_id and project_id; Archil uses api_key and api_url. Omission on a fresh provider source selects its configured Completion Vault connection with an empty source. Explicit empty references do not select a default. Derived creation retains the exact source binding.
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "computer_template_id": {
      "type": "string",
      "format": "uuid"
    },
    "provider": {
      "type": "string",
      "minLength": 1
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "source": {
      "type": "object",
      "additionalProperties": true,
      "description": "Native image or snapshot selection only. E2B accepts templateID; Daytona accepts snapshot or image, with an optional native target region; Modal accepts image_id or image; Boat accepts from and type; Vercel accepts snapshot_id or image; Archil accepts image_id or base_image. Vercel and Archil identifiers must be nonempty strings. An empty object selects the configured native image default. API destinations, account/app/environment settings and credentials belong to the immutable Vault connection and are rejected in source. Native source overrides require explicitly supplied authorized Vault references. Completion-default creation accepts an empty source; other copies use an authorized Computer or Template."
    },
    "computer_id": {
      "type": "string",
      "format": "uuid"
    },
    "credential_references": {
      "type": "object",
      "description": "Exact Vault version references keyed by E2B_SANDBOX, DAYTONA_SANDBOX, MODAL_SANDBOX, BOAT_SANDBOX, VERCEL_SANDBOX or ARCHIL_SANDBOX. Each provider takes exactly one JSON text Vault value containing its credentials and connection/account settings. E2B/Daytona use api_key and optional api_url; Modal uses token_id, token_secret and optional app_name and environment; Boat uses api_key and optional api_url and org. Vercel uses token, team_id and project_id; Archil uses api_key and api_url. Omission on a fresh provider source selects its configured Completion Vault connection with an empty source. Explicit empty references do not select a default. Derived creation retains the exact source binding.",
      "additionalProperties": {
        "$ref": "#/components/schemas/ComputerCredentialReference"
      }
    }
  },
  "required": [
    "id"
  ],
  "description": "Create an independent Computer from an explicit native provider source, current Template capture, or caller-authorized source Computer. Computer forks automatically preserve memory when the provider advertises memory capture; otherwise they use a disk snapshot clone. Template copies restore the captured state. Provider credentials are authorized Vault version references. Fresh provider sources use the configured Completion connection when references are omitted, and supplied references select the customer's connection. No model turn is started. Creation from a Computer or Template retains the source's exact provider Vault binding. If credential_references is supplied for derived creation, it must match that binding; cross-account copying is unsupported.",
  "oneOf": [
    {
      "required": [
        "computer_template_id"
      ],
      "not": {
        "anyOf": [
          {
            "required": [
              "provider"
            ]
          },
          {
            "required": [
              "source"
            ]
          },
          {
            "required": [
              "computer_id"
            ]
          }
        ]
      }
    },
    {
      "required": [
        "provider",
        "source"
      ],
      "not": {
        "anyOf": [
          {
            "required": [
              "computer_template_id"
            ]
          },
          {
            "required": [
              "computer_id"
            ]
          }
        ]
      }
    },
    {
      "required": [
        "computer_id"
      ],
      "not": {
        "anyOf": [
          {
            "required": [
              "provider"
            ]
          },
          {
            "required": [
              "source"
            ]
          },
          {
            "required": [
              "computer_template_id"
            ]
          }
        ]
      }
    }
  ]
}
CreateComputerPairingInput
FieldTypeDescription
idrequiredstring · uuid
credentialrequiredstring · password

{"minLength": 43, "maxLength": 43, "pattern": "^[A-Za-z0-9_-]{43}$", "writeOnly": true}

namerequiredstring

{"minLength": 1, "maxLength": 200}

platformrequiredstring

{"enum": ["darwin", "linux", "windows"]}

architecturerequiredstring

{"enum": ["amd64", "arm64"]}

os_userrequiredstring

{"minLength": 1, "maxLength": 200}

runtime_buildrequiredstring

{"pattern": "^[a-f0-9]{64}$"}

{
  "type": "object",
  "description": "Retain the ID and private device credential for pairing renewal. An unexpired pairing also requires unchanged device details. After expiry, an unapproved pairing can renew its code, expiry and device details. Never use renewal to reset an approved Computer.",
  "additionalProperties": false,
  "required": [
    "id",
    "credential",
    "name",
    "platform",
    "architecture",
    "os_user",
    "runtime_build"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "credential": {
      "type": "string",
      "format": "password",
      "writeOnly": true,
      "pattern": "^[A-Za-z0-9_-]{43}$",
      "minLength": 43,
      "maxLength": 43
    },
    "name": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    },
    "platform": {
      "type": "string",
      "enum": [
        "darwin",
        "linux",
        "windows"
      ]
    },
    "architecture": {
      "type": "string",
      "enum": [
        "amd64",
        "arm64"
      ]
    },
    "os_user": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    },
    "runtime_build": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  }
}
CreateComputerTemplateInput
FieldTypeDescription
idrequiredstring · uuid
computer_idrequiredstring · uuid
namerequiredstring

{"minLength": 1}

{
  "description": "Capture the source Computer automatically with memory when the provider supports it, otherwise capture disk state.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "computer_id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id",
    "computer_id",
    "name"
  ]
}
CreateFilesystemPermissionInput
FieldTypeDescription
member_idrequiredstring · uuid · nullableSame-organization membership; null grants organization-wide access.
rolerequiredstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Same-organization membership; null grants organization-wide access."
    },
    "role": {
      "type": "string",
      "enum": [
        "reader",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  },
  "required": [
    "member_id",
    "role"
  ]
}
CreateNamespacePermissionInput
FieldTypeDescription
member_idoptionalstring · uuid · nullable
grantee_agent_idoptionalstring · uuid · nullable
rolerequiredstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "description": "At most one subject may be non-null. Both null grant organization-wide access. Subjects must belong to this organization.",
  "properties": {
    "member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "grantee_agent_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "role": {
      "type": "string",
      "enum": [
        "reader",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  },
  "required": [
    "role"
  ]
}
CreateOrganizationInput
FieldTypeDescription
namerequiredstring

{"minLength": 1}

request_idrequiredstring

{"minLength": 1}

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "request_id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "name",
    "request_id"
  ],
  "additionalProperties": false
}
DesktopAccess
FieldTypeDescription
urlrequiredstring
protocolrequiredstring

{"enum": ["rfb", "png"]}

passwordoptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "url",
    "protocol"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "protocol": {
      "type": "string",
      "enum": [
        "rfb",
        "png"
      ]
    },
    "password": {
      "type": "string"
    }
  }
}
ErrorBody
FieldTypeDescription
errorrequiredstring
codeoptionalstring
detailsoptionalobject
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "string"
    },
    "code": {
      "type": "string"
    },
    "details": {
      "type": "object",
      "additionalProperties": true
    }
  }
}
FilesystemCommand
FieldTypeDescription
agent_idrequiredstring · uuidAgent whose persistent Archil sandbox runs the command. Selection requires current Agent write authority and does not grant filesystem access.
commandrequiredstringOne offline Bash script, within the HTTP request body transport limit. File paths are relative to the caller view mounted at /workspace.

{"minLength": 1}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "agent_id": {
      "type": "string",
      "format": "uuid",
      "description": "Agent whose persistent Archil sandbox runs the command. Selection requires current Agent write authority and does not grant filesystem access."
    },
    "command": {
      "type": "string",
      "minLength": 1,
      "description": "One offline Bash script, within the HTTP request body transport limit. File paths are relative to the caller view mounted at /workspace."
    }
  },
  "required": [
    "agent_id",
    "command"
  ]
}
FilesystemPermission
FieldTypeDescription
idrequiredstring · uuid
node_idrequiredstring

{"minLength": 1}

member_idrequiredstring · uuid · nullable
rolerequiredstring

{"enum": ["reader", "writer"]}

expires_atrequiredstring · date-time · nullable
created_atrequiredstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "node_id": {
      "type": "string",
      "minLength": 1
    },
    "member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "role": {
      "type": "string",
      "enum": [
        "reader",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "node_id",
    "member_id",
    "role",
    "expires_at",
    "created_at"
  ]
}
FilesystemPermissionPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FilesystemPermission"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
FilesystemReference
FieldTypeDescription
pathrequiredstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "path": {
      "type": "string"
    }
  },
  "required": [
    "path"
  ]
}
FillAction
FieldTypeDescription
kindrequiredstring

{"enum": ["browser", "desktop"]}

resource_idrequiredstring · uuid
targetrequiredstring
action_idrequiredstring · uuid
session_idoptionalstring · uuid
statusrequiredstring

{"enum": ["waiting_for_input", "running", "completed", "failed", "unknown", "cancelled"]}

fieldsoptionalarray
erroroptionalstring
detailsoptionalarray
inputsoptionalarray
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "browser",
        "desktop"
      ]
    },
    "resource_id": {
      "type": "string",
      "format": "uuid"
    },
    "target": {
      "type": "string"
    },
    "action_id": {
      "type": "string",
      "format": "uuid"
    },
    "session_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "waiting_for_input",
        "running",
        "completed",
        "failed",
        "unknown",
        "cancelled"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FillFieldOutcome"
      }
    },
    "error": {
      "type": "string"
    },
    "details": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "target": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "vault_ref": {
            "type": "string"
          },
          "vault_name": {
            "type": "string"
          }
        },
        "required": [
          "target"
        ]
      }
    },
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MissingInput"
      }
    }
  },
  "required": [
    "kind",
    "resource_id",
    "target",
    "action_id",
    "status"
  ]
}
FillFieldOutcome
FieldTypeDescription
indexrequiredinteger
statusrequiredstring
error_codeoptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "index": {
      "type": "integer"
    },
    "status": {
      "type": "string"
    },
    "error_code": {
      "type": "string"
    }
  },
  "required": [
    "index",
    "status"
  ]
}
FillInputSubmission
FieldTypeDescription
session_idoptionalstring · uuidSession that owns this native input request.
valuesrequiredarray

{"minItems": 1}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "session_id": {
      "type": "string",
      "format": "uuid",
      "description": "Session that owns this native input request."
    },
    "values": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FillInputValue"
      },
      "minItems": 1
    }
  },
  "required": [
    "values"
  ]
}
FillInputValue
FieldTypeDescription
saveoptionalVaultInputSave
input_idrequiredstring · uuid
valuerequiredstring

{"minLength": 1, "maxLength": 65536}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "save": {
      "$ref": "#/components/schemas/VaultInputSave"
    },
    "input_id": {
      "type": "string",
      "format": "uuid"
    },
    "value": {
      "type": "string",
      "minLength": 1,
      "maxLength": 65536
    }
  },
  "required": [
    "input_id",
    "value"
  ]
}
GuardrailDecision
{
  "type": "string",
  "enum": [
    "allow",
    "ask_user",
    "block"
  ]
}
HTTPNetworkRule
FieldTypeDescription
kindrequiredstring

{"enum": ["http"]}

moderequiredNetworkRuleMode
methodsoptionalarrayCase-sensitive native HTTP method tokens. Omitted means every method.

{"minItems": 1}

targetsoptionalarrayHTTP or HTTPS origin with optional path pattern and *. hostname suffix. No user information, query or fragment. Omitted path matches every path; * matches one nonempty segment and final ** matches the remaining path.

{"minItems": 1}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "mode"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "http"
      ]
    },
    "mode": {
      "$ref": "#/components/schemas/NetworkRuleMode"
    },
    "methods": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "description": "Case-sensitive native HTTP method tokens. Omitted means every method."
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 4096
      },
      "description": "HTTP or HTTPS origin with optional path pattern and *. hostname suffix. No user information, query or fragment. Omitted path matches every path; * matches one nonempty segment and final ** matches the remaining path."
    }
  }
}
InboundConnectionRule
FieldTypeDescription
kindrequiredstring

{"enum": ["connection"]}

directionrequiredstring

{"enum": ["inbound"]}

moderequiredNetworkRuleMode
protocolsoptionalNetworkRuleProtocols
portsoptionalarray

{"minItems": 1}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "direction",
    "mode"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "connection"
      ]
    },
    "direction": {
      "type": "string",
      "enum": [
        "inbound"
      ]
    },
    "mode": {
      "$ref": "#/components/schemas/NetworkRuleMode"
    },
    "protocols": {
      "$ref": "#/components/schemas/NetworkRuleProtocols"
    },
    "ports": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "integer",
        "minimum": 1,
        "maximum": 65535
      }
    }
  }
}
McpAuthorization
FieldTypeDescription
staterequiredstring

{"enum": ["authorized"]}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "authorized"
      ]
    }
  }
}
McpClientMetadata
FieldTypeDescription
client_idrequiredstring
client_namerequiredstring
redirect_urisrequiredarray
grant_typesrequiredarray
response_typesrequiredarray
token_endpoint_auth_methodrequiredstring
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "client_id",
    "client_name",
    "redirect_uris",
    "grant_types",
    "response_types",
    "token_endpoint_auth_method"
  ],
  "description": "OAuth client ID metadata document; field names are the native OAuth names.",
  "properties": {
    "client_id": {
      "type": "string"
    },
    "client_name": {
      "type": "string"
    },
    "redirect_uris": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "grant_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "response_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "token_endpoint_auth_method": {
      "type": "string"
    }
  }
}
McpConnection
FieldTypeDescription
connectionrequiredstringOpaque canonical connection reference.
agent_idrequiredstring · uuid
namerequiredstring
urlrequiredstring
computer_idoptionalstring · uuidThe connection's HTTP is carried through this Computer, so localhost is the Computer.
headersoptionalobjectConfigured header templates. Values are Vault placeholders, never secret values.
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "connection",
    "agent_id",
    "name",
    "url"
  ],
  "properties": {
    "connection": {
      "type": "string",
      "description": "Opaque canonical connection reference."
    },
    "agent_id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "computer_id": {
      "type": "string",
      "format": "uuid",
      "description": "The connection's HTTP is carried through this Computer, so localhost is the Computer."
    },
    "headers": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Configured header templates. Values are Vault placeholders, never secret values."
    }
  }
}
McpConnectionPage
FieldTypeDescription
itemsrequiredarray
has_morerequiredboolean
next_cursoroptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "items",
    "has_more"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/McpConnection"
      }
    },
    "has_more": {
      "type": "boolean"
    },
    "next_cursor": {
      "type": "string"
    }
  }
}
McpConnectionState
FieldTypeDescription
connectionrequiredstring
namerequiredstring
urlrequiredstring
computer_idoptionalstring · uuid
staterequiredstring

{"enum": ["ready", "not_connected", "disconnected", "authorization_required", "error"]}

auth_urloptionalstringProvider authorization URL when state is authorization_required.
authorization_request_idoptionalstringIdentifies this authorization attempt.
erroroptionalstring
toolsoptionalarrayNative MCP tool definitions when state is ready.
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "connection",
    "name",
    "url",
    "state"
  ],
  "properties": {
    "connection": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "computer_id": {
      "type": "string",
      "format": "uuid"
    },
    "state": {
      "type": "string",
      "enum": [
        "ready",
        "not_connected",
        "disconnected",
        "authorization_required",
        "error"
      ]
    },
    "auth_url": {
      "type": "string",
      "description": "Provider authorization URL when state is authorization_required."
    },
    "authorization_request_id": {
      "type": "string",
      "description": "Identifies this authorization attempt."
    },
    "error": {
      "type": "string"
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Native MCP tool definitions when state is ready."
    }
  }
}
McpDisconnection
FieldTypeDescription
staterequiredstring

{"enum": ["disconnected"]}

revokedrequiredbooleanWhether the provider accepted token revocation. False when it has no revocation endpoint or refused.
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "state",
    "revoked"
  ],
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "disconnected"
      ]
    },
    "revoked": {
      "type": "boolean",
      "description": "Whether the provider accepted token revocation. False when it has no revocation endpoint or refused."
    }
  }
}
Member
FieldTypeDescription
user_idoptionalstring · uuid
nameoptionalstring
profile_image_urloptionalstring · nullable
idrequiredstring · uuid
emailrequiredstring
rolerequiredstring

{"enum": ["primary_owner", "owner", "admin", "member"]}

created_atrequiredstring · date-time
is_yourequiredboolean
assignable_rolesrequiredarray
{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "profile_image_url": {
      "type": "string",
      "nullable": true
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "email": {
      "type": "string"
    },
    "role": {
      "type": "string",
      "enum": [
        "primary_owner",
        "owner",
        "admin",
        "member"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "is_you": {
      "type": "boolean"
    },
    "assignable_roles": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "owner",
          "admin",
          "member"
        ]
      }
    }
  },
  "required": [
    "id",
    "email",
    "role",
    "created_at",
    "is_you",
    "assignable_roles"
  ]
}
MemberPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Member"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
MemberRoleInput
FieldTypeDescription
rolerequiredstring

{"enum": ["owner", "admin", "member"]}

{
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "owner",
        "admin",
        "member"
      ]
    }
  },
  "required": [
    "role"
  ],
  "additionalProperties": false
}
MissingInput
FieldTypeDescription
input_idrequiredstring · uuid
labelrequiredstring
originrequiredstring
pathrequiredstring
save_asoptionalVaultDestination
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "input_id": {
      "type": "string",
      "format": "uuid"
    },
    "label": {
      "type": "string"
    },
    "origin": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "save_as": {
      "$ref": "#/components/schemas/VaultDestination"
    }
  },
  "required": [
    "input_id",
    "label",
    "origin",
    "path"
  ]
}
NamespacePermission
FieldTypeDescription
idrequiredstring · uuid
namespace_idrequiredstring

{"minLength": 1}

member_idrequiredstring · uuid · nullable
grantee_agent_idrequiredstring · uuid · nullable
rolerequiredstring

{"enum": ["reader", "writer"]}

expires_atrequiredstring · date-time · nullable
created_atrequiredstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "namespace_id": {
      "type": "string",
      "minLength": 1
    },
    "member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "grantee_agent_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "role": {
      "type": "string",
      "enum": [
        "reader",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "namespace_id",
    "member_id",
    "grantee_agent_id",
    "role",
    "expires_at",
    "created_at"
  ]
}
NamespacePermissionPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NamespacePermission"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
NativeEntry
{
  "type": "object",
  "description": "A committed Pi Durable EntryRecord, returned unchanged from its native store.",
  "additionalProperties": true
}
NativeScope
FieldTypeDescription
resourcesrequiredarray
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "resources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ScopeResource"
      }
    }
  },
  "required": [
    "resources"
  ]
}
NetworkRule
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
namerequiredstring
definitionrequiredNetworkRuleDefinition
scoperequiredNetworkRuleScope
scope_idrequiredstring · uuid
scope_namerequiredstring
can_editrequiredboolean
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "organization_id",
    "name",
    "definition",
    "scope",
    "scope_id",
    "scope_name",
    "can_edit",
    "created_at",
    "updated_at"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "definition": {
      "$ref": "#/components/schemas/NetworkRuleDefinition"
    },
    "scope": {
      "$ref": "#/components/schemas/NetworkRuleScope"
    },
    "scope_id": {
      "type": "string",
      "format": "uuid"
    },
    "scope_name": {
      "type": "string"
    },
    "can_edit": {
      "type": "boolean"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}
NetworkRuleDefinition
{
  "description": "Gateway-enforced Computer network restrictions when the Organization Computer VPN is enabled. Computer command proxies and Computer HTTP MCP enforce the same selected policy before and after Vault substitution. Generic trusted Agent runtime HTTP, remote HTTP MCP without a Computer route, Workflows and builds are outside these rules. Values in a selector combine with OR; selectors combine with AND. Omitted selectors mean any. block_matches denies matches; block_except denies nonmatches and requires a selector. Any denial wins; approval cannot override it. Connection targets accept IPs, standalone CIDRs, IP endpoints, DNS hostnames and optional-port hostname endpoints. A leading *. matches subdomains but not the apex. Names are case-insensitive IDNA and lose one trailing dot. IPs are canonicalized and CIDR host bits masked. Duplicate canonical targets, zones, mapped IPv6 and port zero are invalid. Inbound ports are sandbox-local. DNS rejects names only when no protocol, port or address alternative can affect the connection decision; final endpoint and hostname checks run at connection establishment. Hostname policies inspect native TLS SNI and plaintext HTTP authority. Protocol selectors and explicit IP alternatives are evaluated first. When they cannot decide the rule, missing or numeric hostname evidence, ECH and opaque UDP/other protocols are denied. HTTP targets match scheme, host, effective port and canonical escaped path. Query and fragment are not selectors. An omitted path matches all paths; * matches one nonempty segment and a final ** matches the remaining path. Methods are case-sensitive HTTP tokens. HTTP rules inspect plain HTTP directly. HTTPS with method/path policy must use the existing command HTTP proxy; uninspected raw ciphertext and opaque protocols are denied. Native policy application confirms the current database revision before reporting success.",
  "oneOf": [
    {
      "$ref": "#/components/schemas/OutboundConnectionRule"
    },
    {
      "$ref": "#/components/schemas/InboundConnectionRule"
    },
    {
      "$ref": "#/components/schemas/HTTPNetworkRule"
    }
  ]
}
NetworkRuleInput
FieldTypeDescription
namerequiredstring

{"minLength": 1, "pattern": "\\S"}

definitionrequiredNetworkRuleDefinition
scoperequiredNetworkRuleScope
scope_idrequiredstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "name",
    "definition",
    "scope",
    "scope_id"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "pattern": "\\S"
    },
    "definition": {
      "$ref": "#/components/schemas/NetworkRuleDefinition"
    },
    "scope": {
      "$ref": "#/components/schemas/NetworkRuleScope"
    },
    "scope_id": {
      "type": "string",
      "format": "uuid"
    }
  }
}
NetworkRuleMode
{
  "type": "string",
  "enum": [
    "block_matches",
    "block_except"
  ]
}
NetworkRulePage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NetworkRule"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  }
}
NetworkRuleProtocols
{
  "type": "array",
  "minItems": 1,
  "uniqueItems": true,
  "items": {
    "type": "string",
    "enum": [
      "tcp",
      "udp"
    ]
  }
}
NetworkRuleScope
{
  "type": "string",
  "enum": [
    "organization",
    "user",
    "agent_template",
    "agent"
  ],
  "description": "The nearest owner with configured rules supplies the complete policy, in Agent then Agent Template then User then Organization order. User scope_id is an Organization User membership ID. The User is the selected Agent owner or otherwise the Computer owner. Mutation requires Organization update authority. Scope grants no execution authority."
}
NetworkRuleTargets
{
  "type": "array",
  "minItems": 1,
  "uniqueItems": true,
  "description": "IP addresses, standalone CIDRs, address-and-port endpoints, hostnames or *.subdomain suffixes with an optional port. Names use lowercase IDNA; wildcard does not match the apex. Addresses and prefixes are canonicalized; duplicates are rejected.",
  "items": {
    "type": "string",
    "minLength": 1
  }
}
Organization
FieldTypeDescription
idrequiredstring · uuid
namerequiredstring
rolerequiredstring · nullable

{"enum": ["primary_owner", "owner", "admin", "member"]}

agent_settingsrequiredOrganizationAgentSettings
deleting_atrequiredstring · date-time · nullable
deletion_idrequiredstring · uuid · nullable
membersrequiredinteger
adminsrequiredinteger
filesystem_refrequiredFilesystemReference
network_control_enabledrequiredbooleanWhether Computer workload traffic requires the protected WireGuard route and gateway enforcement of the selected Agent, Agent Template or Organization Network Rules. False preserves rule definitions. Authorized Vault substitution is available in both modes independently of tunnel enrollment. Vercel Computers do not support the protected WireGuard route.
private_networkoptionalPrivateNetwork
network_appliedoptionalbooleanAll affected native controls confirmed the saved network configuration. This records application, not current network health.

{"readOnly": true}

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "role": {
      "type": "string",
      "nullable": true,
      "enum": [
        "primary_owner",
        "owner",
        "admin",
        "member"
      ]
    },
    "agent_settings": {
      "$ref": "#/components/schemas/OrganizationAgentSettings"
    },
    "deleting_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "deletion_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "members": {
      "type": "integer"
    },
    "admins": {
      "type": "integer"
    },
    "filesystem_ref": {
      "$ref": "#/components/schemas/FilesystemReference"
    },
    "network_control_enabled": {
      "type": "boolean",
      "description": "Whether Computer workload traffic requires the protected WireGuard route and gateway enforcement of the selected Agent, Agent Template or Organization Network Rules. False preserves rule definitions. Authorized Vault substitution is available in both modes independently of tunnel enrollment. Vercel Computers do not support the protected WireGuard route."
    },
    "private_network": {
      "$ref": "#/components/schemas/PrivateNetwork"
    },
    "network_applied": {
      "type": "boolean",
      "readOnly": true,
      "description": "All affected native controls confirmed the saved network configuration. This records application, not current network health."
    }
  },
  "required": [
    "id",
    "name",
    "role",
    "agent_settings",
    "deleting_at",
    "deletion_id",
    "members",
    "admins",
    "filesystem_ref",
    "network_control_enabled"
  ]
}
OrganizationAgentSettings
FieldTypeDescription
modeloptionalstring

{"pattern": "^[^/\\s]+\\/\\S+$"}

reasoning_effortoptionalstring

{"enum": ["off", "minimal", "low", "medium", "high", "xhigh", "max"]}

priorityoptionalboolean
{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "pattern": "^[^/\\s]+\\/\\S+$"
    },
    "reasoning_effort": {
      "type": "string",
      "enum": [
        "off",
        "minimal",
        "low",
        "medium",
        "high",
        "xhigh",
        "max"
      ]
    },
    "priority": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
OrganizationCreated
FieldTypeDescription
idrequiredstring · uuid
namerequiredstring
rolerequiredstring

{"enum": ["primary_owner", "owner", "admin", "member"]}

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "role": {
      "type": "string",
      "enum": [
        "primary_owner",
        "owner",
        "admin",
        "member"
      ]
    }
  },
  "required": [
    "id",
    "name",
    "role"
  ]
}
OrganizationIdentity
FieldTypeDescription
idrequiredstring · uuid
namerequiredstring
filesystem_refrequiredFilesystemReference
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "filesystem_ref": {
      "$ref": "#/components/schemas/FilesystemReference"
    }
  },
  "required": [
    "id",
    "name",
    "filesystem_ref"
  ]
}
OrganizationListItem
FieldTypeDescription
idrequiredstring · uuid
namerequiredstring
rolerequiredstring

{"enum": ["primary_owner", "owner", "admin", "member"]}

deleting_atrequiredstring · date-time · nullable
created_atrequiredstring · date-time
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "role": {
      "type": "string",
      "enum": [
        "primary_owner",
        "owner",
        "admin",
        "member"
      ]
    },
    "deleting_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "name",
    "role",
    "deleting_at",
    "created_at"
  ]
}
OrganizationListItemPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OrganizationListItem"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
OutboundConnectionRule
FieldTypeDescription
kindrequiredstring

{"enum": ["connection"]}

directionrequiredstring

{"enum": ["outbound"]}

moderequiredNetworkRuleMode
protocolsoptionalNetworkRuleProtocols
targetsoptionalNetworkRuleTargets
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "kind",
    "direction",
    "mode"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "connection"
      ]
    },
    "direction": {
      "type": "string",
      "enum": [
        "outbound"
      ]
    },
    "mode": {
      "$ref": "#/components/schemas/NetworkRuleMode"
    },
    "protocols": {
      "$ref": "#/components/schemas/NetworkRuleProtocols"
    },
    "targets": {
      "$ref": "#/components/schemas/NetworkRuleTargets"
    }
  }
}
PermissionSubject
FieldTypeDescription
typerequiredstring

{"enum": ["member", "organization"]}

idrequiredstring · nullableMembership UUID. Organization subjects use null.
namerequiredstring
emailrequiredstring · nullable
profile_image_urlrequiredstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "member",
        "organization"
      ]
    },
    "id": {
      "type": "string",
      "nullable": true,
      "description": "Membership UUID. Organization subjects use null."
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string",
      "nullable": true
    },
    "profile_image_url": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "type",
    "id",
    "name",
    "email",
    "profile_image_url"
  ]
}
PrivateNetwork
FieldTypeDescription
auth_keyrequiredstringVault reference. The API never returns the enrollment value.

{"minLength": 53, "pattern": "^completion-vault:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}

auth_key_nameoptionalstringName of the selected Organization Vault entry.

{"readOnly": true}

exit_noderequiredstringCanonical Tailscale IP of an existing approved exit node. Enrollment alone does not select or approve an exit. Native setup verifies this exact node and its protected route.
{
  "type": "object",
  "nullable": true,
  "additionalProperties": false,
  "required": [
    "auth_key",
    "exit_node"
  ],
  "description": "One Organization private-network attachment. The trusted gateway enrolls with a reusable, preauthorized Tailscale auth key from an Organization-owned Vault secret and selects the explicit, administratively approved exit node. Null removes the attachment and cancels its private connections. Reachability does not grant resource, MCP, Vault or Network Rule authority.",
  "properties": {
    "auth_key": {
      "type": "string",
      "minLength": 53,
      "pattern": "^completion-vault:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "Vault reference. The API never returns the enrollment value."
    },
    "auth_key_name": {
      "type": "string",
      "readOnly": true,
      "description": "Name of the selected Organization Vault entry."
    },
    "exit_node": {
      "type": "string",
      "anyOf": [
        {
          "format": "ipv4"
        },
        {
          "format": "ipv6"
        }
      ],
      "description": "Canonical Tailscale IP of an existing approved exit node. Enrollment alone does not select or approve an exit. Native setup verifies this exact node and its protected route."
    }
  }
}
ProgramReference
FieldTypeDescription
idrequiredstring

{"minLength": 1}

pathoptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "path": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
RegisterAPIKey
FieldTypeDescription
idrequiredstring · uuid
secret_hashrequiredstring

{"pattern": "^[0-9a-f]{64}$"}

native_scoperequiredNativeScope
expires_atoptionalstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "description": "Register a client-generated key hash and an explicit resource/operation scope. Human user ownership only; identity, secret hash and expiry are immutable.",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "secret_hash": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "native_scope": {
      "$ref": "#/components/schemas/NativeScope"
    },
    "expires_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "secret_hash",
    "native_scope"
  ]
}
RegisterVaultSecret
FieldTypeDescription
idrequiredstring · uuid
namerequiredstring

{"minLength": 1, "maxLength": 120}

valuerequiredstring

{"maxLength": 65536, "writeOnly": true}

scope_refrequiredVaultScopeRef
consumer_constraintsrequiredVaultConsumerConstraints
http_targetsoptionalVaultHTTPDestinations
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "name",
    "value",
    "scope_ref",
    "consumer_constraints"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "value": {
      "type": "string",
      "maxLength": 65536,
      "writeOnly": true
    },
    "scope_ref": {
      "$ref": "#/components/schemas/VaultScopeRef"
    },
    "consumer_constraints": {
      "$ref": "#/components/schemas/VaultConsumerConstraints"
    },
    "http_targets": {
      "$ref": "#/components/schemas/VaultHTTPDestinations"
    }
  }
}
RemoteMcpToolCallInput
FieldTypeDescription
connectionrequiredstring

{"minLength": 1, "maxLength": 8192}

namerequiredstring

{"minLength": 1, "maxLength": 256}

argumentsrequiredobject
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "connection",
    "name",
    "arguments"
  ],
  "properties": {
    "connection": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8192
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "arguments": {
      "type": "object",
      "additionalProperties": true
    }
  }
}
RemoteMcpToolPage
FieldTypeDescription
itemsrequiredarray
has_morerequiredboolean
next_cursoroptionalstring
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "items",
    "has_more"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/McpConnectionState"
      }
    },
    "has_more": {
      "type": "boolean"
    },
    "next_cursor": {
      "type": "string"
    }
  }
}
ResourceOwner
FieldTypeDescription
member_idrequiredstring · uuid
namerequiredstring
emailrequiredstring
profile_image_urlrequiredstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "member_id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "profile_image_url": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "member_id",
    "name",
    "email",
    "profile_image_url"
  ]
}
ResourcePermission
FieldTypeDescription
idrequiredstring · uuid
organization_idrequiredstring · uuid
resource_idrequiredstring · uuid
subjectrequiredPermissionSubject
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atrequiredstring · date-time · nullable
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "resource_id": {
      "type": "string",
      "format": "uuid"
    },
    "subject": {
      "$ref": "#/components/schemas/PermissionSubject"
    },
    "role": {
      "type": "string",
      "enum": [
        "viewer",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "organization_id",
    "resource_id",
    "subject",
    "role",
    "expires_at",
    "created_at",
    "updated_at"
  ]
}
ResourcePermissionPage
FieldTypeDescription
itemsrequiredarray
has_morerequiredboolean
next_cursorrequiredstring · nullable
ownerrequiredcomposed schema · nullable
automatic_accessrequiredstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ResourcePermission"
      }
    },
    "has_more": {
      "type": "boolean"
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "owner": {
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/components/schemas/ResourceOwner"
        }
      ]
    },
    "automatic_access": {
      "type": "string"
    }
  },
  "required": [
    "items",
    "has_more",
    "next_cursor",
    "owner",
    "automatic_access"
  ]
}
SSHKey
FieldTypeDescription
api_key_idrequiredstring · uuid · nullableThe API credential this key authenticates. Null identifies a User key.

{"readOnly": true}

idrequiredstring · uuid
public_keyrequiredstring
created_atrequiredstring · date-time
{
  "type": "object",
  "properties": {
    "api_key_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "readOnly": true,
      "description": "The API credential this key authenticates. Null identifies a User key."
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "public_key": {
      "type": "string"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "api_key_id",
    "id",
    "public_key",
    "created_at"
  ]
}
SSHKeyInput
FieldTypeDescription
public_keyrequiredstring

{"minLength": 1, "maxLength": 16384}

{
  "type": "object",
  "properties": {
    "public_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384
    }
  },
  "required": [
    "public_key"
  ],
  "additionalProperties": false
}
SSHKeyPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SSHKey"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ]
}
SaveAgentTemplateSnapshotInput
FieldTypeDescription
request_idrequiredstring · uuid
source_agent_idoptionalstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "source_agent_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "request_id"
  ]
}
SaveBrowserTemplateSnapshotInput
FieldTypeDescription
request_idrequiredstring · uuid
source_browser_idrequiredstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "source_browser_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "request_id",
    "source_browser_id"
  ]
}
SaveComputerTemplateSnapshotInput
FieldTypeDescription
request_idrequiredstring · uuid
computer_idrequiredstring · uuid
{
  "description": "Capture and publish source state using memory when the provider supports it, otherwise a disk snapshot. The capture mode is not a caller option.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "computer_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "request_id",
    "computer_id"
  ]
}
ScopeResource
FieldTypeDescription
idrequiredstringNative resource identity. For filesystem operations on managed resources, use the canonical root /namespaces/{namespace_id}, /agents/{agent_id}, or /agent-templates/{template_id}; ordinary shared files use their filesystem node ID. Non-filesystem operations use the canonical lowercase hyphenated resource UUID, such as the Agent UUID for agent.share, the Computer UUID for computer.read/use/update/share/delete, or the Computer Template UUID for computer_template.use/update/share/delete. Delegation requires the issuer's credential ceiling and current resource authority; updates to another member's key also require that member's current authority.

{"minLength": 1}

operationsrequiredarray

{"minItems": 1}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Native resource identity. For filesystem operations on managed resources, use the canonical root /namespaces/{namespace_id}, /agents/{agent_id}, or /agent-templates/{template_id}; ordinary shared files use their filesystem node ID. Non-filesystem operations use the canonical lowercase hyphenated resource UUID, such as the Agent UUID for agent.share, the Computer UUID for computer.read/use/update/share/delete, or the Computer Template UUID for computer_template.use/update/share/delete. Delegation requires the issuer's credential ceiling and current resource authority; updates to another member's key also require that member's current authority."
    },
    "operations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "uniqueItems": true
    }
  },
  "required": [
    "id",
    "operations"
  ]
}
SetResourcePermissionInput
FieldTypeDescription
rolerequiredstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "role"
  ],
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "viewer",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  }
}
SignInStep
FieldTypeDescription
statusrequiredstring

{"enum": ["redirect", "code", "verify_email", "authenticated"]}

user_idoptionalstring · uuid
urloptionalstring · uriCompletion authorization URL for a redirect step.
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "redirect",
        "code",
        "verify_email",
        "authenticated"
      ]
    },
    "user_id": {
      "type": "string",
      "format": "uuid"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Completion authorization URL for a redirect step."
    }
  }
}
StartSignInInput
FieldTypeDescription
emailrequiredstring · email

{"maxLength": 254}

ssooptionalbooleanRequire an existing company SSO connection for this email domain.
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254
    },
    "sso": {
      "type": "boolean",
      "description": "Require an existing company SSO connection for this email domain."
    }
  }
}
TransferOrganizationOwnershipInput
FieldTypeDescription
member_idrequiredstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "member_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "member_id"
  ]
}
UpdateAPIKeyInput
FieldTypeDescription
native_scoperequiredcomposed schemaReplace the complete resource/operation allowlist. Empty resources grants no operations. Requires key-management authority and cannot grant authority the caller lacks or let a scoped key expand its own permissions. The key ID, secret hash, owner and expiry are unchanged. New requests use this scope; accepted turns retain admitted authority.
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "native_scope"
  ],
  "properties": {
    "native_scope": {
      "allOf": [
        {
          "$ref": "#/components/schemas/NativeScope"
        }
      ],
      "description": "Replace the complete resource/operation allowlist. Empty resources grants no operations. Requires key-management authority and cannot grant authority the caller lacks or let a scoped key expand its own permissions. The key ID, secret hash, owner and expiry are unchanged. New requests use this scope; accepted turns retain admitted authority."
    }
  }
}
UpdateAgentInput
FieldTypeDescription
titleoptionalstring · nullable
archivedoptionalboolean
namespace_idoptionalstring

{"minLength": 1}

computer_idoptionalstring · uuid · nullable
browser_idoptionalstring · uuid · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "title": {
      "type": "string",
      "nullable": true
    },
    "archived": {
      "type": "boolean"
    },
    "namespace_id": {
      "type": "string",
      "minLength": 1
    },
    "computer_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "minProperties": 1
}
UpdateAgentPermissionInput
FieldTypeDescription
roleoptionalstring

{"enum": ["viewer", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "description": "Set supplied role or expiry. Omission retains the value; null expiry clears it. Subject is immutable.",
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "viewer",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  },
  "minProperties": 1
}
UpdateAgentTemplateInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1}

computer_template_idoptionalstring · uuid · nullable
browser_template_idoptionalstring · uuid · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "computer_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "browser_template_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "minProperties": 1
}
UpdateBrowserInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1}

start_urloptionalstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "start_url": {
      "type": "string",
      "nullable": true
    }
  },
  "minProperties": 1
}
UpdateBrowserTemplateInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1}

start_urloptionalstring · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "start_url": {
      "type": "string",
      "nullable": true
    }
  },
  "minProperties": 1
}
UpdateComputerInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    }
  },
  "minProperties": 1
}
UpdateComputerTemplateInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1}

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    }
  },
  "minProperties": 1
}
UpdateFilesystemPermissionInput
FieldTypeDescription
roleoptionalstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "reader",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  },
  "minProperties": 1
}
UpdateNamespacePermissionInput
FieldTypeDescription
roleoptionalstring

{"enum": ["reader", "writer"]}

expires_atoptionalstring · date-time · nullable
{
  "type": "object",
  "additionalProperties": false,
  "description": "Set supplied role or expiry. Omission retains the value; null expiry clears it. Subject is immutable.",
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "reader",
        "writer"
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    }
  },
  "minProperties": 1
}
UpdateNetworkRuleInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1, "pattern": "\\S"}

definitionoptionalNetworkRuleDefinition
scopeoptionalNetworkRuleScope
scope_idoptionalstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "pattern": "\\S"
    },
    "definition": {
      "$ref": "#/components/schemas/NetworkRuleDefinition"
    },
    "scope": {
      "$ref": "#/components/schemas/NetworkRuleScope"
    },
    "scope_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "minProperties": 1,
  "description": "Set only the supplied top-level writable fields to their absolute values. Omitted fields retain their saved values. Supplied arrays and objects replace that field's value; this is not a recursive merge or JSON Patch operation. Explicit null is valid only where the field schema permits it. Validate the resulting effective resource, including coupled scope and policy fields, before committing. Repeating the same update has the same resource-state effect; never interpret values as increment, toggle or append commands."
}
UpdateOrganizationInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1}

network_control_enabledoptionalbooleanRoute Computer workload traffic through the protected WireGuard gateway and enforce the selected scoped Network Rules when true. False uses ordinary networking and retains rule definitions without enforcing them. Supported HTTP tools and command proxies resolve authorized Vault references in both modes; false does not intercept arbitrary application connections. Vercel uses its native firewall independently; enabling the protected VPN for Vercel returns unsupported rather than broadening its policy.
private_networkoptionalcomposed schema · nullableOmit to preserve the attachment. Supply the complete reference and approved exit to replace it, or null to detach. The current native Vault version is pinned when this update is admitted.
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "network_control_enabled": {
      "type": "boolean",
      "description": "Route Computer workload traffic through the protected WireGuard gateway and enforce the selected scoped Network Rules when true. False uses ordinary networking and retains rule definitions without enforcing them. Supported HTTP tools and command proxies resolve authorized Vault references in both modes; false does not intercept arbitrary application connections. Vercel uses its native firewall independently; enabling the protected VPN for Vercel returns unsupported rather than broadening its policy."
    },
    "private_network": {
      "allOf": [
        {
          "$ref": "#/components/schemas/PrivateNetwork"
        }
      ],
      "nullable": true,
      "description": "Omit to preserve the attachment. Supply the complete reference and approved exit to replace it, or null to detach. The current native Vault version is pinned when this update is admitted."
    }
  },
  "minProperties": 1,
  "additionalProperties": false
}
UpdateResourceOwnerInput
FieldTypeDescription
owner_member_idrequiredstring · uuid · nullableCurrent organization membership to own the resource. Null clears ownership.
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "owner_member_id": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Current organization membership to own the resource. Null clears ownership."
    }
  },
  "required": [
    "owner_member_id"
  ],
  "description": "Set the owner to an explicit same-organization membership, or clear it. Does not change creation provenance or sharing grants."
}
User
FieldTypeDescription
idrequiredstring · uuid
emailrequiredstring
profile_image_urlrequiredstring · nullable
namerequiredstring
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "email": {
      "type": "string"
    },
    "profile_image_url": {
      "type": "string",
      "nullable": true
    },
    "name": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "email",
    "profile_image_url",
    "name"
  ]
}
VaultConsumerConstraints
FieldTypeDescription
consumerrequiredstringmcp_oauth marks a remote MCP OAuth grant that Completion saves for an Agent connection; it cannot be created through this API.

{"enum": ["computer_provider", "http", "tailscale_enrollment", "desktop", "browser", "mcp_oauth"]}

destinationoptionalstringImmutable consumer destination. For browser, the exact HTTPS top-level page URL with no embedded user information, including its path, query and fragment. For provider or enrollment credentials, the exact HTTPS destination. For desktop, the exact native application launch path. Omit for HTTP substitution.
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "consumer"
  ],
  "properties": {
    "consumer": {
      "type": "string",
      "enum": [
        "computer_provider",
        "http",
        "tailscale_enrollment",
        "desktop",
        "browser",
        "mcp_oauth"
      ],
      "description": "mcp_oauth marks a remote MCP OAuth grant that Completion saves for an Agent connection; it cannot be created through this API."
    },
    "destination": {
      "type": "string",
      "description": "Immutable consumer destination. For browser, the exact HTTPS top-level page URL with no embedded user information, including its path, query and fragment. For provider or enrollment credentials, the exact HTTPS destination. For desktop, the exact native application launch path. Omit for HTTP substitution."
    }
  }
}
VaultDestination
FieldTypeDescription
namerequiredstring

{"minLength": 1}

scoperequiredstring

{"enum": ["user", "agent", "agent_template", "organization"]}

scope_idoptionalstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "name",
    "scope"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "scope": {
      "type": "string",
      "enum": [
        "user",
        "agent",
        "agent_template",
        "organization"
      ]
    },
    "scope_id": {
      "type": "string",
      "format": "uuid"
    }
  }
}
VaultHTTPDestinations
{
  "type": "array",
  "items": {
    "type": "string"
  },
  "description": "Replace the complete HTTPS target policy. Empty disables HTTP substitution. No plaintext value is returned."
}
VaultInputSave
FieldTypeDescription
namerequiredstring

{"minLength": 1}

scoperequiredstring

{"enum": ["user", "agent", "agent_template", "organization"]}

scope_idoptionalstring · uuid
replace_refoptionalstring

{"pattern": "^completion-vault:[0-9a-fA-F-]{36}$"}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "name",
    "scope"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "scope": {
      "type": "string",
      "enum": [
        "user",
        "agent",
        "agent_template",
        "organization"
      ]
    },
    "scope_id": {
      "type": "string",
      "format": "uuid"
    },
    "replace_ref": {
      "type": "string",
      "pattern": "^completion-vault:[0-9a-fA-F-]{36}$"
    }
  }
}
VaultScope
{
  "type": "string",
  "enum": [
    "organization",
    "user",
    "agent_template",
    "agent"
  ]
}
VaultScopeRef
FieldTypeDescription
organization_idoptionalstring · uuid
organization_user_idoptionalstring · uuid
agent_idoptionalstring · uuid
agent_template_idoptionalstring · uuid
{
  "type": "object",
  "additionalProperties": false,
  "minProperties": 1,
  "maxProperties": 1,
  "description": "Exactly one immutable scope owner. organization_user_id is the current Organization membership UUID. Scope selection grants no authority.",
  "properties": {
    "organization_id": {
      "type": "string",
      "format": "uuid"
    },
    "organization_user_id": {
      "type": "string",
      "format": "uuid"
    },
    "agent_id": {
      "type": "string",
      "format": "uuid"
    },
    "agent_template_id": {
      "type": "string",
      "format": "uuid"
    }
  }
}
VaultSecret
FieldTypeDescription
idrequiredstring · uuid
namerequiredstring
scope_refrequiredVaultScopeRef
consumer_constraintsrequiredVaultConsumerConstraints
http_targetsrequiredVaultHTTPDestinations
version_idrequiredstring · nullable
created_atrequiredstring · date-time
updated_atrequiredstring · date-time
revoked_atrequiredstring · date-time · nullable
can_managerequiredboolean
can_userequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "name",
    "scope_ref",
    "consumer_constraints",
    "http_targets",
    "version_id",
    "created_at",
    "updated_at",
    "revoked_at",
    "can_manage",
    "can_use"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "scope_ref": {
      "$ref": "#/components/schemas/VaultScopeRef"
    },
    "consumer_constraints": {
      "$ref": "#/components/schemas/VaultConsumerConstraints"
    },
    "http_targets": {
      "$ref": "#/components/schemas/VaultHTTPDestinations"
    },
    "version_id": {
      "type": "string",
      "nullable": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "revoked_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "can_manage": {
      "type": "boolean"
    },
    "can_use": {
      "type": "boolean"
    }
  }
}
VaultSecretInput
FieldTypeDescription
nameoptionalstring

{"minLength": 1, "maxLength": 120}

valueoptionalstring

{"maxLength": 65536, "writeOnly": true}

http_targetsoptionalVaultHTTPDestinations
{
  "type": "object",
  "additionalProperties": false,
  "minProperties": 1,
  "description": "Set supplied name, write-only value or HTTP targets. Omitted fields retain their values. Scope and native consumer/destination are immutable. Rotation preserves existing bound versions.",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "value": {
      "type": "string",
      "maxLength": 65536,
      "writeOnly": true
    },
    "http_targets": {
      "$ref": "#/components/schemas/VaultHTTPDestinations"
    }
  }
}
VaultSecretPage
FieldTypeDescription
itemsrequiredarray
next_cursorrequiredstring · nullable
has_morerequiredboolean
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "items",
    "next_cursor",
    "has_more"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VaultSecret"
      }
    },
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "has_more": {
      "type": "boolean"
    }
  }
}
VaultSecretReference
FieldTypeDescription
idrequiredstring · uuid
version_idrequiredstring

{"minLength": 1}

{
  "$ref": "#/components/schemas/ComputerCredentialReference"
}
VerifyCodeInput
FieldTypeDescription
emailrequiredstring · email

{"maxLength": 254}

coderequiredstringSix decimal digits from the delivered email. Never log this value.

{"minLength": 6, "maxLength": 6, "writeOnly": true}

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "email",
    "code"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254
    },
    "code": {
      "type": "string",
      "minLength": 6,
      "maxLength": 6,
      "writeOnly": true,
      "description": "Six decimal digits from the delivered email. Never log this value."
    }
  }
}
VoiceSettings
FieldTypeDescription
modelrequiredstring

{"minLength": 1}

voicerequiredstring

{"minLength": 1}

instructionsrequiredstring
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "model": {
      "type": "string",
      "minLength": 1
    },
    "voice": {
      "type": "string",
      "minLength": 1
    },
    "instructions": {
      "type": "string"
    }
  },
  "required": [
    "model",
    "voice",
    "instructions"
  ]
}