openapi: 3.0.0 info: description: Agent-first API for runtime + developer control-plane operations (users, teams, agents, routines, context, workflows, integrations, and webhooks). title: ArchAstro Platform Activity Feed Agents API version: v1 tags: - name: Agents paths: /api/v1/agents: get: description: 'Returns a paginated list of agents visible to the authenticated caller. Results are ordered by creation time descending. Use `search` to filter by name, org, team, or owner fields. Use `user` or `org_id` to scope the list to a specific owner. Use `template_config` to find agents whose last applied template matches a given config ID. Pagination is page-based: pass `page` and `page_size` to navigate through large result sets. When called under a developer app scope, only agents belonging to that app are returned.' operationId: get_api_v1_agents parameters: - description: Config ID (`cfg_...`) or `lookup_key` of an AgentTemplate. Returns only agents whose last applied template matches. example: string in: query name: template_config required: false schema: type: string - description: Free-text search string matched against the agent name, org, team, and owner fields. example: string in: query name: search required: false schema: type: string - description: Number of agents to return per page. Defaults to `25`. example: 1 in: query name: page_size required: false schema: type: integer - description: Organization ID (`org_...`) to filter by. Returns only agents owned by this org. example: string in: query name: org_id required: false schema: type: string - description: Page number to retrieve, 1-indexed. Defaults to `1`. example: 1 in: query name: page required: false schema: type: integer - description: User ID (`usr_...`) to filter by. Returns only agents owned by this user. example: string in: query name: user required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentListResponse' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required summary: List agents x-auth: - bearer - publishable_key tags: - Agents post: description: 'Creates a new agent. Supports two mutually exclusive provisioning modes. **Template mode** — pass `template` with the ID or `lookup_key` of an existing AgentTemplate config. The agent''s tools, routines, skills, and installations are provisioned from that template''s `config_ref` entries. **Bundle mode** — pass `template_bundle` with a self-contained install payload (AgentTemplate body plus every skill, script, and config it references). The entire bundle commits in a single transaction; any failure rolls back the whole install and the response includes `installed_configs[]` — one entry per persisted config. Pass exactly one of `template` or `template_bundle`. If neither is supplied, `name` is required and a blank agent is created. Requires authentication; when called under a developer app scope (`/developer/apps/:app/...`), the caller must hold the app scope for the target app.' operationId: post_api_v1_agents parameters: [] requestBody: content: application/json: schema: example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user email: user@example.com identity: string lookup_key: string metadata: key: value model: string name: Example Name org: string originator: string phone_number: '+15555550123' profile_picture: data: string filename: string mime_type: application/json team: string template: string template_bundle: configs: - content: string content_type: application/json relative_path: tools/my-tool.yaml lookup_key_suffix: string setup_actions: - depends_on: - string description: An example description. kind: env_var params: key: value required: true sort_order: 1 title: Example Title verify_config: key: value skills: - content: string content_type: application/json files: - content: string content_type: application/json relative_path: skills/my-skill/helpers.md relative_path: skills/my-skill/SKILL.md template: content: string content_type: application/json relative_path: agent.yaml user: string properties: acl: description: Access control list controlling which users, teams, or orgs can read or manage this agent. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object email: description: Email address assigned to the agent. Used as the agent's contact identity. example: user@example.com type: string identity: description: System-prompt identity string describing who the agent is. Passed verbatim to the model on each conversation turn. example: string type: string lookup_key: description: Stable, unique slug used to look up this agent by name instead of ID. Must be unique within the owning app or org. example: string type: string metadata: description: Arbitrary key-value map stored on the agent. Not interpreted by the platform. example: key: value type: object model: description: Default AI model identifier for this agent, e.g. `claude-sonnet-4-5`. Overridden per-request when the caller specifies a model. example: string type: string name: description: Display name for the agent. Required when neither `template` nor `template_bundle` is provided. example: Example Name type: string org: description: Organization ID (`org_...`) that should own this agent. Mutually exclusive with `team` and `user`. example: string type: string originator: description: Free-form label identifying the source or author of the agent, e.g. a user ID, a deploy pipeline, or a slug. example: string type: string phone_number: description: Phone number assigned to the agent in E.164 format, e.g. `+15550001234`. example: '+15555550123' type: string profile_picture: description: Profile picture to attach to the agent. All three subfields are required when this object is present. example: data: string filename: string mime_type: application/json properties: data: description: Base64-encoded binary content of the image. example: string type: string filename: description: Original filename of the image, e.g. `avatar.png`. example: string type: string mime_type: description: MIME type of the image, e.g. `image/png` or `image/jpeg`. example: application/json type: string required: - data - filename - mime_type type: object team: description: Team ID (`team_...`) that should own this agent. Mutually exclusive with `org` and `user`. example: string type: string template: description: ID (`cfg_...`) or `lookup_key` of an existing AgentTemplate config to provision from. Mutually exclusive with `template_bundle`. example: string type: string template_bundle: description: Self-contained install bundle containing an AgentTemplate plus all referenced skills and configs. The entire bundle is committed atomically. Mutually exclusive with `template`. example: configs: - content: string content_type: application/json relative_path: tools/my-tool.yaml lookup_key_suffix: string setup_actions: - depends_on: - string description: An example description. kind: env_var params: key: value required: true sort_order: 1 title: Example Title verify_config: key: value skills: - content: string content_type: application/json files: - content: string content_type: application/json relative_path: skills/my-skill/helpers.md relative_path: skills/my-skill/SKILL.md template: content: string content_type: application/json relative_path: agent.yaml properties: configs: description: Additional configuration resources (scripts, model configs, routine templates) referenced by `config_ref` entries in the template. example: - content: string content_type: application/json relative_path: tools/my-tool.yaml items: description: A supporting configuration resource included in a template bundle, such as a script, model config, or routine template referenced by the agent template. example: content: string content_type: application/json relative_path: tools/my-tool.yaml properties: content: description: Full text content of the configuration file. example: string type: string content_type: description: MIME type of the configuration content, e.g. `"application/x-yaml"` or `"application/json"`. `null` if not specified. example: application/json type: string relative_path: description: Bundle-relative path to this config file. The path determines the config kind and its storage identity within the installation. example: tools/my-tool.yaml type: string required: - content - relative_path type: object type: array lookup_key_suffix: description: A string appended to the lookup key of every uploaded config and rewritten into every `config_ref` in the template body. Should be stable for a given install and unique across installs to avoid key collisions. example: string type: string setup_actions: description: Post-install checklist items created alongside the agent. Each action is inserted as a pending setup step that the user must complete before the agent is fully operational. example: - depends_on: - string description: An example description. kind: env_var params: key: value required: true sort_order: 1 title: Example Title verify_config: key: value items: description: A post-install setup checklist item that the user must complete before the installed agent is fully operational. example: depends_on: - string description: An example description. kind: env_var params: key: value required: true sort_order: 1 title: Example Title verify_config: key: value properties: depends_on: description: List of other setup action identifiers that must be completed before this action becomes actionable. example: - string items: type: string type: array description: description: Markdown-formatted instructions or context shown beneath the checklist item. `null` if not provided. example: An example description. type: string kind: description: Category of setup step. One of `"env_var"` (configure an environment variable), `"install"` (complete an installation step), or `"custom"` (a user-defined action). example: env_var type: string params: description: Kind-specific configuration for the action. For `"env_var"` steps this typically includes `key` and `scope`; for `"install"` steps it includes `installation_kind`. Shape varies by `kind`. example: key: value type: object required: description: When `true`, this action must be completed before the checklist progress bar reaches 100%. Defaults to `true`. example: true type: boolean sort_order: description: Numeric sort position controlling the display order of this action in the checklist. Defaults to `0` when not specified. example: 1 type: integer title: description: Short human-readable label displayed in the setup checklist. example: Example Title type: string verify_config: description: 'Configuration passed to the runtime verifier to determine whether the action has been completed, e.g. `{"type": "secret_present"}`. `null` if no automated verification is configured.' example: key: value type: object required: - kind - title type: object type: array skills: description: Skill bundles referenced by the template. Each entry includes the skill root and any supporting files. example: - content: string content_type: application/json files: - content: string content_type: application/json relative_path: skills/my-skill/helpers.md relative_path: skills/my-skill/SKILL.md items: description: A skill to install as part of a template bundle, consisting of a root `SKILL.md` definition and any accompanying support files. example: content: string content_type: application/json files: - content: string content_type: application/json relative_path: skills/my-skill/helpers.md relative_path: skills/my-skill/SKILL.md properties: content: description: Full text content of the `SKILL.md` file. example: string type: string content_type: description: MIME type of the `SKILL.md` content. Defaults to `text/markdown` when omitted. example: application/json type: string files: description: Additional files nested inside the skill folder, each with its own path and content. example: - content: string content_type: application/json relative_path: skills/my-skill/helpers.md items: description: A single file nested inside a skill folder, included as part of an install bundle. example: content: string content_type: application/json relative_path: skills/my-skill/helpers.md properties: content: description: Full text content of the file. example: string type: string content_type: description: MIME type of the file content. Defaults to a value inferred from the file extension when omitted. example: application/json type: string relative_path: description: Path of this file relative to the skill folder root, e.g. `"skills/my-skill/helpers.md"`. example: skills/my-skill/helpers.md type: string required: - content - relative_path type: object type: array relative_path: description: Bundle-relative path to the skill root, which must end in `/SKILL.md` (e.g. `"skills/my-skill/SKILL.md"`). example: skills/my-skill/SKILL.md type: string required: - content - relative_path type: object type: array template: description: The agent template definition to install, including its path and raw content. example: content: string content_type: application/json relative_path: agent.yaml properties: content: description: Full text content of the agent template file, typically a YAML document. example: string type: string content_type: description: MIME type of the template content. Defaults to `application/x-yaml` when omitted. example: application/json type: string relative_path: description: Bundle-relative path to the template file, used to derive its storage identity (e.g. `"agent.yaml"`). example: agent.yaml type: string required: - content - relative_path type: object required: - template type: object user: description: User ID (`usr_...`) that should own this agent. Mutually exclusive with `org` and `team`. example: string type: string type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentCreateResponse' description: Successful response '400': description: Bad request '401': description: Unauthorized '403': description: Forbidden — app scope required '404': description: Template not found '409': description: Conflict '422': description: Validation failed summary: Create an agent x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}: delete: description: 'Permanently deletes an agent and all of its associated resources. This action cannot be undone. The authenticated caller must own the agent or hold sufficient permissions within its owning org or team. When called under a developer app scope, the caller must hold the app scope for the target app.' operationId: delete_api_v1_agents__agent parameters: - description: ID (`agi_...`) or `lookup_key` of the agent to delete. example: string in: path name: agent required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '403': description: App-scoped token required. Use a token scoped to the target app.; Permission denied. The connected account may not have the required permissions. Try reconnecting your account. '404': description: Agent not found summary: Delete an agent x-auth: - bearer - publishable_key tags: - Agents get: description: 'Returns the agent identified by ID or `lookup_key`. The authenticated caller must own the agent or hold sufficient permissions within its owning org or team. When called under a developer app scope, the agent must belong to that app. Use the list endpoint to retrieve many agents at once.' operationId: get_api_v1_agents__agent parameters: - description: ID (`agi_...`) or `lookup_key` of the agent to retrieve. example: string in: path name: agent required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Agent' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found summary: Retrieve an agent x-auth: - bearer - publishable_key tags: - Agents patch: description: 'Updates one or more fields on an existing agent. Only the fields you supply are changed; omitted fields retain their current values. To clear the agent''s default model, pass `model` as an empty string. The authenticated caller must own the agent or hold write permissions within its owning org or team. When called under a developer app scope, the caller must hold the app scope for the target app.' operationId: patch_api_v1_agents__agent parameters: - description: ID (`agi_...`) or `lookup_key` of the agent to update. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user email: user@example.com identity: string lookup_key: string metadata: key: value model: string name: Example Name org: string originator: string phone_number: '+15555550123' profile_picture: data: string filename: string mime_type: application/json team: string user: string properties: acl: description: Replacement access control list. Fully replaces the existing ACL. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object email: description: New email address for the agent. example: user@example.com type: string identity: description: Replacement identity system-prompt string describing who the agent is. example: string type: string lookup_key: description: New `lookup_key` slug. Must be unique within the owning app or org. example: string type: string metadata: description: Replacement key-value metadata map. The entire map is replaced, not merged. example: key: value type: object model: description: New default AI model identifier, e.g. `claude-sonnet-4-5`. Pass an empty string to clear the agent's default model. example: string type: string name: description: New display name for the agent. example: Example Name type: string org: description: Organization ID (`org_...`) to transfer ownership to. example: string type: string originator: description: Replacement originator label identifying the source or author of the agent. example: string type: string phone_number: description: New phone number for the agent in E.164 format, e.g. `+15550001234`. example: '+15555550123' type: string profile_picture: description: Replacement profile picture. All three subfields are required when this object is present. example: data: string filename: string mime_type: application/json properties: data: description: Base64-encoded binary content of the image. example: string type: string filename: description: Original filename of the image, e.g. `avatar.png`. example: string type: string mime_type: description: MIME type of the image, e.g. `image/png` or `image/jpeg`. example: application/json type: string required: - data - filename - mime_type type: object team: description: Team ID (`team_...`) to transfer ownership to. example: string type: string user: description: User ID (`usr_...`) to transfer ownership to. example: string type: string type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Agent' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found '422': description: Validation failed summary: Update an agent x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_computers: get: description: 'Returns all computers belonging to the authenticated app, ordered by creation time descending. Pass `agent` to scope the results to a single agent''s computers. When `agent` is omitted, computers for all agents in the app are returned. Requires an app-scoped API key. If the specified agent does not exist or does not belong to the app, the endpoint returns 404.' operationId: get_api_v1_agents__agent_agent_computers parameters: - description: Agent ID (`agt_...`). When provided, only computers belonging to this agent are returned. example: string in: path name: agent required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentComputerListResponse' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found summary: List computers x-auth: - bearer - publishable_key tags: - Agents post: description: 'Creates and provisions a new computer resource associated with the specified agent. The computer is allocated in the requested region (defaulting to `iad`) and its status transitions from `provisioning` to `running` once it is ready. Requires an app-scoped API key. The agent identified by `agent` must belong to the same app. Supplying a `lookup_key` lets you retrieve this computer later without storing its ID — the key must be unique within the app.' operationId: post_api_v1_agents__agent_agent_computers parameters: - description: Agent ID (`agt_...`). The computer is associated with this agent. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: config: {} lookup_key: string metadata: key: value name: Example Name region: string properties: config: description: Provider-specific configuration for the computer. Supported keys vary by region and plan. example: {} type: object lookup_key: description: Stable, user-defined key for this computer. Must be unique within the app. Use it to look up the computer without storing its ID. example: string type: string metadata: description: Arbitrary key-value metadata to attach to the computer. Not interpreted by the platform; returned as-is on all subsequent reads. example: key: value type: object name: description: Human-readable display name for the computer. example: Example Name type: string region: description: Region in which to provision the computer, e.g. `"iad"`. Defaults to `"iad"` when omitted. example: string type: string required: - name type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentComputer' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found '422': description: Validation failed summary: Provision a computer for an agent x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_env_vars: get: description: 'Returns all environment variables defined for the specified agent. Variable values are always masked in the response; only the last four characters are visible. To inspect a specific variable, use the retrieve endpoint. The authenticated user must have access to the agent''s parent app. Pass the app scope via the `app` parameter when calling with an API key that is scoped to a specific app. Results are returned in an unordered flat list.' operationId: get_api_v1_agents__agent_agent_env_vars parameters: - description: Agent ID (`agt_...`). Returns environment variables belonging to this agent. example: string in: path name: agent required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentEnvVarMaskedList' description: Successful response '401': description: Unauthorized '403': description: App-scoped token required. Use a token scoped to the target app.; Forbidden '404': description: Agent not found summary: List an agent's environment variables x-auth: - bearer - publishable_key tags: - Agents post: description: 'Creates a new environment variable for the specified agent. The variable is stored securely and the plaintext `value` is never returned after creation; subsequent reads return a masked representation showing only the last four characters. The authenticated user must have access to the agent''s parent app. Pass the app scope via the `app` parameter when calling with an API key that is scoped to a specific app. Each `key` must be unique within the agent; attempting to create a duplicate key returns a validation error.' operationId: post_api_v1_agents__agent_agent_env_vars parameters: - description: Agent ID (`agt_...`). The agent must belong to an app the caller can access. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: description: An example description. key: string value: string properties: description: description: Optional human-readable note describing what the variable is used for. example: An example description. type: string key: description: Environment variable name, e.g. `WEBHOOK_SECRET`. Must be unique within the agent. example: string type: string value: description: Plaintext secret value to store. The value is encrypted at rest and never returned in full. example: string type: string required: - key - value type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentEnvVarMasked' description: Successful response '401': description: Unauthorized '403': description: App-scoped token required. Use a token scoped to the target app.; Forbidden '404': description: Not found '422': description: Validation failed summary: Create an agent environment variable x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_health_actions: get: description: 'Returns all health actions associated with a given agent. Health actions represent required or recommended steps — such as setting environment variables, completing OAuth installations, or running custom verifiers — that an agent needs to reach a healthy state. Results are not paginated; the full list for the agent is returned. Use the `source`, `status`, and `kind` filters to narrow results to the subset your UI or workflow needs. Multiple values for the same filter are treated as OR (e.g. passing two statuses returns actions matching either). The caller must be authenticated and scoped to the app that owns the agent.' operationId: get_api_v1_agents__agent_agent_health_actions parameters: - description: Agent ID (`agt_...`) or lookup key of the agent whose health actions you want to list. example: string in: path name: agent required: true schema: type: string - description: 'Filter results to actions from one or more lifecycle stages. Accepted values: `"setup"` (actions created during agent installation) and `"health"` (ongoing health checks). Omit to return actions from all stages.' example: - string in: query name: source required: false schema: items: type: string type: array - description: 'Filter results to actions in one or more statuses. Accepted values: `"pending"`, `"completed"`, `"skipped"`, and `"degraded"`. Omit to return actions in all statuses.' example: - string in: query name: status required: false schema: items: type: string type: array - description: 'Filter results to actions of one or more kinds. Accepted values: `"env_var"` (a required secret or config value), `"install"` (an OAuth or integration install step), and `"custom"` (a platform-defined check). Omit to return all kinds.' example: - string in: query name: kind required: false schema: items: type: string type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/HealthActionListResponse' description: Successful response '401': description: Unauthorized '403': description: App-scoped token required. Use a token scoped to the target app.; Forbidden '404': description: Agent not found summary: List health actions for an agent x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_installations: get: description: 'Returns all installations belonging to the specified agent, across all kinds and states. Use this endpoint to inspect which external services and enablement channels an agent is connected to. Results are scoped to the authenticated app and are returned in an unordered array. To list installations across all agents in an app, use the top-level List Installations endpoint instead. The caller must have app scope for the app that owns the agent.' operationId: get_api_v1_agents__agent_agent_installations parameters: - description: Agent ID (`agt_...`) whose installations you want to retrieve. example: string in: path name: agent required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/InstallationListResponse' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found summary: List installations for an agent x-auth: - bearer - publishable_key tags: - Agents post: description: 'Creates a new installation for an agent, connecting it to an external service or enablement channel via the specified `kind`. The installation begins in a pending state unless an integration is supplied at creation time, in which case it is activated immediately. Supply `shared_integration` to bind an existing org- or app-level integration, or supply `integration` to create a new integration inline and activate the installation in a single request. Supplying both fields returns 422. Use `lookup_key` to assign a stable identifier you can reference later in knowledge search `source_refs`. The key must be unique within the app, org, and sandbox combination. The caller must have app scope for the app that owns the agent.' operationId: post_api_v1_agents__agent_agent_installations parameters: - description: Agent ID (`agt_...`) that will own this installation. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: config: {} integration: access_token: string installation_id: string metadata: key: value refresh_token: string workspace_key: example-slug kind: string lookup_key: string shared_integration: string properties: config: description: Kind-specific configuration object. Shape varies by `kind`; omit if the kind requires no initial configuration. example: {} type: object integration: description: Inline integration fields to create for `integration/*` kinds. When provided, a new Integration record is created and the installation is activated immediately. Mutually exclusive with `shared_integration`. example: access_token: string installation_id: string metadata: key: value refresh_token: string workspace_key: example-slug properties: access_token: description: OAuth access token or static API key used by `oauth` providers to authenticate requests on behalf of the user. example: string type: string installation_id: description: External installation identifier used by `app_installation` providers, e.g. a GitHub App installation ID or a Slack team ID. example: string type: string metadata: description: 'Arbitrary provider-specific metadata, e.g. `{"bot_user_id": "U012AB3CD"}` for Slack. Stored alongside the integration and made available to connector logic.' example: key: value type: object refresh_token: description: OAuth refresh token used to obtain a new `access_token` when the current one expires. Omit for providers that do not issue refresh tokens. example: string type: string workspace_key: description: Provider-specific workspace or team identifier, e.g. a Slack workspace slug. Used to scope the integration to a particular workspace. example: example-slug type: string type: object kind: description: 'Installation kind that determines the external service being connected. Examples: `"enablement/github_app"`, `"enablement/slack_bot"`, `"integration/github"`, `"integration/gmail"`, `"web/site"`. Use the List Kinds endpoint to retrieve all supported values.' example: string type: string lookup_key: description: Stable identifier you assign to this installation. Propagated to backing context source rows so they can be referenced via knowledge search `source_refs`. Must contain only lowercase letters, numbers, underscores, or hyphens (max 100 characters). Must be unique within the same app, org, and sandbox combination. Omit to skip stable referencing. example: string type: string shared_integration: description: ID of an existing shared org- or app-level integration to bind to this installation. Mutually exclusive with `integration`. example: string type: string required: - kind type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Installation' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found '422': description: Validation failed summary: Create an installation x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_installations/kinds: get: description: 'Returns the full catalogue of installation kinds supported by the platform. Use the returned `kind` values when calling the Create Installation endpoint. The list is platform-wide and does not vary by agent. The `agent` parameter is accepted for future per-agent filtering but is currently unused. The caller must have app scope to call this endpoint.' operationId: get_api_v1_agents__agent_agent_installations_kinds parameters: - description: Agent ID (`agt_...`). Accepted for forward compatibility but currently does not filter the response. example: string in: path name: agent required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/InstallationKindListResponse' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required summary: List available installation kinds x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_routines: post: description: 'Creates a new routine and attaches it to the specified agent. Routines define how an agent responds to events or a cron schedule; the `handler_type` controls which execution model is used. The routine is created in `"draft"` status by default. To start processing events immediately, either pass `status: "active"` or call the activate endpoint after creation. Scheduled routines must run no more frequently than once per hour. Requires app scope.' operationId: post_api_v1_agents__agent_agent_routines parameters: - description: Agent ID (`agt_...`) that this routine will be attached to. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user config: string description: An example description. event_config: {} event_type: string handler_type: string lookup_key: string metadata: key: value name: Example Name preset_config: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string preset_name: Example Name schedule: string script: string status: string steps: - config: string handler_type: preset inputs: {} name: Example Name on_error: halt output_key: string preset_config: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string preset_name: Example Name script: string trigger_context: string properties: acl: description: Access control list governing who can read or manage this routine. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object config: description: Workflow config ID (`cfg_...`). Required when `handler_type` is `"workflow_graph"`. example: string type: string description: description: Optional human-readable description of what this routine does. example: An example description. type: string event_config: description: Mapping of event types to trigger configuration. Each key is an event type string; each value is an object with a `"filters"` map and an optional `"dedupe_key_path"` (a JSON path used to deduplicate events, e.g. `"$.thread.id"`). example: {} type: object event_type: description: Event type that triggers this routine. Deprecated — use `event_config` instead. example: string type: string handler_type: description: Execution model for this routine. One of `"workflow_graph"`, `"script"`, `"preset"`, or `"chain"`. example: string type: string lookup_key: description: Stable, unique key you assign to this routine for deterministic lookup. Must be unique within the app. example: string type: string metadata: description: Arbitrary key-value metadata you can attach to the routine. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the routine. example: Example Name type: string preset_config: description: Configuration passed to the preset at runtime. Used when `handler_type` is `"preset"`. example: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string properties: instructions: description: Custom task or behavior instructions for the preset (max 10,000 chars). example: You are a helpful assistant. Answer questions concisely and cite sources when possible. type: string llm: description: LLM invocation settings (e.g. a `model` override for this routine/step). example: model: claude-sonnet-4-5 properties: model: description: Model identifier to use for this routine or step, e.g. `"claude-sonnet-4-5"`. When omitted, the agent's default model is used. example: claude-sonnet-4-5 type: string type: object session_mode: description: 'Session mode: `stateless` (default, new session per trigger) or `session` (find-or-create a persistent session scoped by `session_scope`).' example: stateless type: string session_scope: description: 'When `session_mode` is `session`, controls session scoping: `per_user` (default), `per_key`, `per_org`, or `global`.' example: per_user type: string structured_message_template_ids: description: IDs of structured message templates that constrain the agent's responses to predefined structured formats. example: - string items: type: string type: array type: object preset_name: description: Name of the registered preset to use. Required when `handler_type` is `"preset"`. example: Example Name type: string schedule: description: Cron expression for time-triggered routines (e.g. `"0 9 * * 1"`). Must not be more frequent than once per hour. example: string type: string script: description: Inline script source. Required when `handler_type` is `"script"`. example: string type: string status: description: Initial lifecycle status. One of `"draft"` or `"active"`. Defaults to `"draft"`. example: string type: string steps: description: Ordered list of steps for a chain handler. Required when `handler_type` is `"chain"`; must be omitted or empty otherwise. Each step must have exactly one handler body field (`preset_name`, `script`, or `config`) matching that step's `handler_type`. example: - config: string handler_type: preset inputs: {} name: Example Name on_error: halt output_key: string preset_config: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string preset_name: Example Name script: string items: description: A single execution step within a chain-routine, describing the handler to invoke and how to handle errors or pass data between steps. example: config: string handler_type: preset inputs: {} name: Example Name on_error: halt output_key: string preset_config: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string preset_name: Example Name script: string properties: config: description: ID of a saved config to use as the handler body. Required when `handler_type` is `"workflow_graph"`; also accepted for `"script"` as an alternative to an inline `script` value. example: string type: string handler_type: description: Execution handler for this step. One of `"preset"`, `"script"`, or `"workflow_graph"`. example: preset type: string inputs: description: Optional key-value map binding outputs from prior steps to this step's input variables. example: {} type: object name: description: Optional label for this step. Must be unique within the chain when provided. example: Example Name type: string on_error: description: Error handling policy for this step. One of `"halt"` (default), `"continue"`, or `"retry"`. example: halt type: string output_key: description: Key under which this step's result is stored and addressable by downstream steps. Defaults to `name` when omitted. example: string type: string preset_config: description: Configuration overrides for the preset, using the same shape as the routine-level `preset_config`. You may include an `llm` key to override the agent's default model for this step. `null` if not provided. example: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string properties: instructions: description: Custom task or behavior instructions for the preset (max 10,000 chars). example: You are a helpful assistant. Answer questions concisely and cite sources when possible. type: string llm: description: LLM invocation settings (e.g. a `model` override for this routine/step). example: model: claude-sonnet-4-5 properties: model: description: Model identifier to use for this routine or step, e.g. `"claude-sonnet-4-5"`. When omitted, the agent's default model is used. example: claude-sonnet-4-5 type: string type: object session_mode: description: 'Session mode: `stateless` (default, new session per trigger) or `session` (find-or-create a persistent session scoped by `session_scope`).' example: stateless type: string session_scope: description: 'When `session_mode` is `session`, controls session scoping: `per_user` (default), `per_key`, `per_org`, or `global`.' example: per_user type: string structured_message_template_ids: description: IDs of structured message templates that constrain the agent's responses to predefined structured formats. example: - string items: type: string type: array type: object preset_name: description: Name of the preset to invoke. Required when `handler_type` is `"preset"`. example: Example Name type: string script: description: Inline script source code to execute. Used when `handler_type` is `"script"` and no `config` is provided. example: string type: string required: - handler_type type: object type: array trigger_context: description: Context in which the routine is triggered. One of `"chat_session"` or `"event"`. Defaults to `"event"`. example: string type: string required: - handler_type - name type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentRoutine' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found '422': description: Validation failed summary: Create a routine x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_tools: get: description: 'Returns all tools for the authenticated app, optionally filtered by agent or tool kind. Both explicitly created tools and tools derived from connected integrations (installation-sourced tools) are included in the response. Installation-sourced tools appear with `source: "installation"` and `status: "active"`. They are synthesized at request time from connected integrations and do not have a persistent tool ID of the `atl_...` form; their `id` is a composite of the installation ID and server tool type. Use the `agent` filter to retrieve tools for a specific agent. Supplying an `agent` ID that does not belong to the authenticated app returns 404. Requires app scope.' operationId: get_api_v1_agents__agent_agent_tools parameters: - description: Filter by tool kind. One of `"builtin"` or `"custom"`. Omit to return tools of all kinds. example: string in: query name: kind required: false schema: type: string - description: Filter results to tools belonging to this agent (`agt_...`). Omit to return tools across all agents in the app. example: string in: path name: agent required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentToolListResponse' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found summary: List agent tools x-auth: - bearer - publishable_key tags: - Agents post: description: 'Creates a new tool and attaches it to the specified agent. Tools can be either `"builtin"` (a platform-provided capability identified by `builtin_tool_key`) or `"custom"` (a caller-defined tool with its own name, description, parameter schema, and handler). New tools are created in `"draft"` status by default unless `status: "active"` is explicitly supplied. Draft tools are not exposed to the LLM during agent runs; call the activate endpoint to promote them. For built-in tools that support multiple instances per agent (those whose catalog entry has a `multi_instance_mode`), supply `name_prefix` to namespace the LLM-facing tool names. Requires app scope.' operationId: post_api_v1_agents__agent_agent_tools parameters: - description: Agent ID (`agt_...`) to attach the tool to. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: async: true builtin_tool_config: {} builtin_tool_key: string config: string description: An example description. handler_type: string kind: string lookup_key: string metadata: key: value name: Example Name name_prefix: string parameters: {} status: string properties: async: description: When `true`, the tool executes asynchronously and the agent does not block waiting for a result. Applies to `"custom"` tools. example: true type: boolean builtin_tool_config: description: Configuration object for the built-in tool. Shape is defined by the catalog entry's `config_schema` for the chosen `builtin_tool_key`. Applies only to `"builtin"` tools. example: {} type: object builtin_tool_key: description: Key identifying the built-in tool type to add (e.g. `"knowledge_search"`). Required when `kind` is `"builtin"`. Must match a key in the tool catalog. example: string type: string config: description: Config ID (`cfg_...`) referencing the script or workflow graph that implements the tool handler. Applies to `"custom"` tools. example: string type: string description: description: Human-readable description of what the tool does. Shown to the LLM as context. Applies primarily to `"custom"` tools. example: An example description. type: string handler_type: description: Execution handler for the tool. One of `"script"` or `"workflow_graph"`. Applies to `"custom"` tools. example: string type: string kind: description: Tool kind. One of `"builtin"` or `"custom"`. example: string type: string lookup_key: description: Optional stable identifier you can use to look up this tool without its ID. Must be unique within the app. Useful for idempotent provisioning. example: string type: string metadata: description: Arbitrary key-value metadata to attach to the tool. Not interpreted by the platform. example: key: value type: object name: description: Display name for the tool. Required when `kind` is `"custom"`. example: Example Name type: string name_prefix: description: Per-instance namespace for built-in tools that support multiple instances per agent. Stamped onto LLM-facing tool names (e.g. `"org"` produces `"org_knowledge_search"`). Must match `^[a-z][a-z0-9_]*$` and be at most 24 characters. Required for `"namespaced"` multi-instance tools; omit for single-instance tools. example: string type: string parameters: description: JSON Schema object describing the tool's input parameters. Used by the LLM to construct valid tool calls. Applies to `"custom"` tools. example: {} type: object status: description: Initial status of the tool. One of `"draft"` or `"active"`. Defaults to `"draft"` when omitted. example: string type: string required: - kind type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentTool' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found '422': description: Validation failed summary: Create an agent tool x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/agent_working_memory: get: description: 'Returns a paginated list of working memory entries belonging to the specified agent. Entries are key-value pairs the agent stores for context between interactions. Results are ordered by creation time descending (newest first) and can be filtered with a substring search against the key name. Requires an app-scoped API key. The authenticated caller must have access to the app the agent belongs to. Returns 403 if the key is not app-scoped, and 404 if the agent does not exist within the accessible scope.' operationId: get_api_v1_agents__agent_agent_working_memory parameters: - description: Agent ID (`agt_...`) whose working memory entries to retrieve. example: string in: path name: agent required: true schema: type: string - description: Number of entries to return per page. Defaults to 25. example: 1 in: query name: page_size required: false schema: type: integer - description: Page number to retrieve, starting at 1. Defaults to 1. example: 1 in: query name: page required: false schema: type: integer - description: Substring filter applied to entry keys (case-insensitive). Omit to return all keys. example: string in: query name: search required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/WorkingMemoryEntryListResponse' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found summary: List working memory entries for an agent x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/export: get: description: 'Reconstructs an AgentTemplate config from a deployed agent and all of its sub-resources (tools, routines, skills, installations). Returns the template definition together with every dependent config file (scripts, workflows, skills, schemas) and their raw content, producing a fully self-contained export bundle. Use this endpoint to snapshot an agent''s current configuration for backup, migration, or to seed a new Solution template. Pass `remove_identity: true` to strip instance-specific fields (email, phone number) before export. The authenticated caller must own the agent or hold sufficient permissions within its owning org or team. When called under a developer app scope, the caller must hold the app scope for the target app.' operationId: get_api_v1_agents__agent_export parameters: - description: ID (`agi_...`) or `lookup_key` of the agent to export. example: string in: path name: agent required: true schema: type: string - description: When `true`, strips instance-unique identity fields (`email`, `phone_number`) from the exported template so it can be reused as a generic blueprint. example: true in: query name: remove_identity required: false schema: type: boolean responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentExport' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found summary: Export an agent as an AgentTemplate x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/health: get: description: 'Returns an aggregate health profile for the specified agent, including an overall status, a numeric health score, recent activity metrics, and a list of recommended remediation actions. The health check is computed on demand at request time. The `checked_at` timestamp in the response reflects when the evaluation ran. Use this endpoint to surface diagnostics about tool availability, model configuration, and runtime activity in dashboards or monitoring workflows. The authenticated caller must own the agent or hold sufficient permissions within its owning org or team. When called under a developer app scope, the caller must hold the app scope for the target app.' operationId: get_api_v1_agents__agent_health parameters: - description: ID (`agi_...`) or `lookup_key` of the agent to evaluate. example: string in: path name: agent required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentHealth' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found summary: Retrieve an agent's health profile x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/schedules: get: description: 'Returns all schedules belonging to the specified agent in any status. Use the `status` parameter to narrow results to a single lifecycle state. Requires an app-scoped API key. The agent must belong to the app identified by the key.' operationId: get_api_v1_agents__agent_schedules parameters: - description: Agent ID (`agi_...`). The agent whose schedules you want to retrieve. example: string in: path name: agent required: true schema: type: string - description: Filter results by schedule status. One of `"active"`, `"paused"`, `"completed"`, `"cancelled"`, or `"expired"`. Omit to return schedules in all statuses. example: string in: query name: status required: false schema: type: string responses: '200': content: application/json: schema: description: A list of schedule objects for the agent. example: data: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' cron_expression: 0 9 * * 1 id: asc_0aBcDeFgHiJkLmNoPqRsTu instructions: Send a daily summary of open support tickets to the team Slack channel. last_run_at: '2024-01-01T00:00:00Z' max_runs: 10 metadata: key: value next_run_at: '2024-01-01T00:00:00Z' run_count: 1 schedule_type: recurring scheduled_at: '2024-01-01T00:00:00Z' status: active thread: thr_0aBcDeFgHiJkLmNoPqRsTu timezone: America/New_York updated_at: '2024-01-01T00:00:00Z' properties: data: description: Array of agent schedule objects matching the query. example: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' cron_expression: 0 9 * * 1 id: asc_0aBcDeFgHiJkLmNoPqRsTu instructions: Send a daily summary of open support tickets to the team Slack channel. last_run_at: '2024-01-01T00:00:00Z' max_runs: 10 metadata: key: value next_run_at: '2024-01-01T00:00:00Z' run_count: 1 schedule_type: recurring scheduled_at: '2024-01-01T00:00:00Z' status: active thread: thr_0aBcDeFgHiJkLmNoPqRsTu timezone: America/New_York updated_at: '2024-01-01T00:00:00Z' items: description: A scheduled task created by an agent. Supports one-time and recurring (cron-based) execution patterns. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' cron_expression: 0 9 * * 1 id: asc_0aBcDeFgHiJkLmNoPqRsTu instructions: Send a daily summary of open support tickets to the team Slack channel. last_run_at: '2024-01-01T00:00:00Z' max_runs: 10 metadata: key: value next_run_at: '2024-01-01T00:00:00Z' run_count: 1 schedule_type: recurring scheduled_at: '2024-01-01T00:00:00Z' status: active thread: thr_0aBcDeFgHiJkLmNoPqRsTu timezone: America/New_York updated_at: '2024-01-01T00:00:00Z' properties: agent: description: ID of the agent that owns this schedule (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string app: description: ID of the application the schedule belongs to (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the schedule was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string cron_expression: description: Standard cron expression defining the recurrence pattern (e.g. `"0 9 * * 1"`). Present only when `schedule_type` is `"recurring"`. `null` for one-time schedules. example: 0 9 * * 1 type: string id: description: Schedule ID (`asc_...`). example: asc_0aBcDeFgHiJkLmNoPqRsTu type: string instructions: description: The task description the agent will execute when this schedule fires. example: Send a daily summary of open support tickets to the team Slack channel. type: string last_run_at: description: UTC datetime of the most recent successful execution. `null` if the schedule has never run. example: '2024-01-01T00:00:00Z' format: date-time type: string max_runs: description: Maximum number of times a recurring schedule may fire before automatically transitioning to `"completed"`. `null` means no limit. example: 10 type: integer metadata: description: Arbitrary key-value pairs attached to the schedule by the agent. Not interpreted by the platform. example: key: value type: object next_run_at: description: UTC datetime of the next planned execution. `null` if the schedule has completed, been cancelled, or has not yet been computed. example: '2024-01-01T00:00:00Z' format: date-time type: string run_count: description: Total number of times this schedule has fired. example: 1 type: integer schedule_type: description: Determines how the schedule repeats. `"once"` fires a single time at `scheduled_at` then transitions to `"completed"`. `"recurring"` fires on the `cron_expression` and reschedules automatically. example: recurring type: string scheduled_at: description: The exact UTC datetime at which a one-time schedule fires. Present only when `schedule_type` is `"once"`. `null` for recurring schedules. example: '2024-01-01T00:00:00Z' format: date-time type: string status: description: Current lifecycle status of the schedule. One of `"active"` (will fire as planned), `"paused"` (temporarily suspended), `"completed"` (has run its last execution), `"cancelled"` (manually stopped), or `"expired"` (past its valid window). example: active type: string thread: description: Thread ID (`thr_...`) this schedule is bound to. When set, the scheduled task is delivered into the thread rather than creating a new session. `null` for session-based schedules. example: thr_0aBcDeFgHiJkLmNoPqRsTu type: string timezone: description: IANA timezone name used to interpret the cron expression or `scheduled_at` (e.g. `"America/New_York"`). Defaults to `"Etc/UTC"`. example: America/New_York type: string updated_at: description: When the schedule was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object type: array type: object description: Successful response '400': description: Invalid status value '401': description: Unauthorized '403': description: Forbidden - app scope required summary: List schedules for an agent x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/schedules/{schedule}: get: description: 'Returns a single schedule belonging to the specified agent. Use this endpoint to fetch the current state, next run time, and configuration of an individual schedule. Requires an app-scoped API key. Both the agent and the schedule must belong to the app identified by the key. Returns 404 if the schedule does not exist or belongs to a different agent.' operationId: get_api_v1_agents__agent_schedules__schedule parameters: - description: Agent ID (`agi_...`). The agent that owns the schedule. example: string in: path name: agent required: true schema: type: string - description: Schedule ID (`asc_...`). The schedule to retrieve. example: string in: path name: schedule required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentSchedule' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Schedule not found summary: Retrieve a schedule x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/search: post: description: "Performs a semantic search over an agent's knowledge base and returns a ranked,\n`kind`-discriminated list of matching items.\n\nTwo item kinds may appear in `data`:\n\n- `\"chunk\"` — chunk-level results from the agent's context store. Present for all agents.\n- `\"document\"` — document-level results. Present only when the agent has an active\n `archastro/knowledge` installation.\n\nResults from both kinds are scored with Reciprocal Rank Fusion (RRF), normalized to\nbe comparable across kinds, then merged into a single ranked list. On a relevance tie,\nchunks appear before documents. The total number of results is capped at `max_results`\nacross both kinds.\n\nUse `mode` to choose the retrieval strategy: `\"hybrid\"` (default) combines vector and\nfull-text search; `\"vector\"` and `\"fulltext\"` select each strategy independently." operationId: post_api_v1_agents__agent_search parameters: - description: ID (`agi_...`) or `lookup_key` of the agent whose knowledge base to search. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: max_results: 1 mode: string query: string recency_days: 1 source_types: - string properties: max_results: description: Maximum total results to return across all kinds. Chunks and documents are ranked together and the list is capped at this value. Defaults to `20`; maximum is `100`. example: 1 type: integer mode: description: Retrieval strategy. One of `"hybrid"` (default), `"vector"`, or `"fulltext"`. example: string type: string query: description: Natural-language search query used to retrieve relevant knowledge items. example: string type: string recency_days: description: When set, restricts results to items indexed within the last N days. example: 1 type: integer source_types: description: Array of source-type slugs used to filter chunk results, e.g. `["web", "file"]`. Omit to include all source types. example: - string items: type: string type: array required: - query type: object required: true responses: '200': content: application/json: schema: description: Knowledge search results for the specified agent. example: data: [] properties: data: description: Ranked list of matching knowledge items. Each item is a `kind`-discriminated union — either `"chunk"` (always present) or `"document"` (present only when the agent has an active `archastro/knowledge` installation). Sorted by relevance descending; capped at `max_results` total across both kinds. example: [] items: description: 'A discriminated union representing a single result from a knowledge search. The `kind` field identifies the variant: `"chunk"` for a chunk-level result (see `KnowledgeSearchResult`) or `"document"` for a document-level result (see `DocumentSearchResult`).' discriminator: propertyName: kind oneOf: - description: A single chunk returned by a knowledge search query. Represents an indexed content item matched against the search terms. example: content: ArchAstro connects your agents to external knowledge sources for real-time context retrieval. content_type: application/json created_at: '2024-01-01T00:00:00Z' id: cim_0aBcDeFgHiJkLmNoPqRsTu kind: chunk metadata: key: value raw_content: {} type: gmail properties: content: description: Normalized plain-text content of the matched chunk. example: ArchAstro connects your agents to external knowledge sources for real-time context retrieval. type: string content_type: description: MIME type of the content, e.g. `"text/plain"` or `"text/html"`. example: application/json type: string created_at: description: When this item was indexed into the knowledge base (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string id: description: Context item ID (`cim_...`). example: cim_0aBcDeFgHiJkLmNoPqRsTu type: string kind: default: chunk description: Result variant discriminator. Always `"chunk"` for this object type. enum: - chunk example: chunk type: string metadata: description: Arbitrary key-value metadata attached to this item by the source connector. example: key: value type: object raw_content: description: Raw content payload as stored by the source connector, before normalization. example: {} type: object type: description: Type identifier of the parent knowledge source (e.g. `"gmail"`, `"github_activity"`). Returns `"unknown"` when the source association is not loaded. example: gmail type: string required: - id - kind type: object - description: A single document-level result returned by a knowledge search query. Includes a short preview snippet and content statistics alongside the document's metadata. example: id: cdo_0aBcDeFgHiJkLmNoPqRsTu kind: document metadata: key: value snippet: This document describes the onboarding workflow for new users, including account setup, initial configuration steps, and a guided tour of the main features… title: Example Title total_lines: 42 total_size: 1024 properties: id: description: Document ID (`cdo_...`). example: cdo_0aBcDeFgHiJkLmNoPqRsTu type: string kind: default: document description: Result variant discriminator. Always `"document"` for this schema; use this field to distinguish document results from other `KnowledgeResult` variants. enum: - document example: document type: string metadata: description: Arbitrary key-value metadata attached to the document. `null` if no metadata has been set. example: key: value type: object snippet: description: Leading 300-character preview of the document's text content, trimmed of surrounding whitespace. Truncated with an ellipsis when the full content exceeds the limit. example: This document describes the onboarding workflow for new users, including account setup, initial configuration steps, and a guided tour of the main features… type: string title: description: Title of the document as stored in the knowledge base. `null` if the document has no title. example: Example Title type: string total_lines: description: Total number of lines in the document's text content. `0` for empty documents. example: 42 type: integer total_size: description: Total byte size of the document's text content encoded as UTF-8. `0` for empty documents. example: 1024 type: integer required: - id - kind type: object type: array required: - data type: object description: Successful response '401': description: Unauthorized '404': description: Agent not found '422': description: Invalid parameters summary: Search an agent's knowledge base x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/threads: post: description: 'Creates a new thread owned by the specified agent. The thread is scoped to the agent''s identity and is immediately available for messaging. The authenticated caller must have access to the agent''s parent app. If your API key is scoped to a specific app, pass that app''s ID via the `app` parameter. Attempting to create a thread for an agent you cannot access returns 404. By default the platform may send an automatic welcome message into the new thread. Pass `skip_welcome_message: true` to suppress this behavior.' operationId: post_api_v1_agents__agent_threads parameters: - description: Agent ID (`agt_...`). The thread will be owned by this agent. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: skip_welcome_message: true thread: description: An example description. is_unlisted: true key: string metadata: key: value muted: true org: string settings: {} title: Example Title properties: skip_welcome_message: description: When `true`, suppresses the automatic welcome message that the platform sends when a new thread is created. Defaults to `false`. example: true type: boolean thread: description: Attributes for the new thread. example: description: An example description. is_unlisted: true key: string metadata: key: value muted: true org: string settings: {} title: Example Title properties: description: description: Optional longer description of the thread's purpose. example: An example description. type: string is_unlisted: description: When `true`, the thread does not appear in standard thread lists. Defaults to `false`. example: true type: boolean key: description: Stable client-assigned key for the thread. Must be unique within the agent. Useful for idempotent creation — if a thread with this key already exists it is returned instead of creating a duplicate. example: string type: string metadata: description: Arbitrary key-value metadata you can attach to the thread. Values must be JSON-serializable. example: key: value type: object muted: description: When `true`, notifications for activity in this thread are suppressed. Defaults to `false`. example: true type: boolean org: description: Organization ID (`org_...`) to associate with the thread. Used to scope the thread to a specific organization when the agent operates across multiple orgs. example: string type: string settings: description: Thread-level settings map. Supports `agent_enabled` (boolean) to control whether the agent participates in this thread. example: {} type: object title: description: Human-readable title for the thread. Displayed in thread lists and headers. example: Example Title type: string type: object required: - thread type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Thread' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Agent not found '422': description: Validation failed summary: Create a thread for an agent x-auth: - bearer - publishable_key tags: - Agents /api/v1/agents/{agent}/upgrade: post: description: "Upgrades an existing agent by reconciling it against an AgentTemplate from a\nSolution. Supports two modes:\n\n- `\"reapply\"` (default) — re-applies the agent's currently tracked template,\n picking up any changes the template author has made since the last apply.\n- `\"replace\"` — moves the agent to a different template. `template` is required\n in this mode.\n\nSet `dry_run: true` to compute and return the full upgrade diff (adds, updates,\nremoves, noops) without writing any changes. The response includes a\n`review_fingerprint` you can pass back via `expected_review_fingerprint` on the\nlive apply to guard against the diff changing between review and execution.\n\nSafe overrides (`name`, `email`, `phone_number`, `metadata`, `identity`,\n`originator`, `model`) let you pin instance-specific values that should not be\noverwritten by the template during the upgrade.\n\nThe authenticated caller must own the agent or hold write permissions within its\nowning org or team. When called under a developer app scope, the caller must hold\nthe app scope for the target app." operationId: post_api_v1_agents__agent_upgrade parameters: - description: ID (`agi_...`) or `lookup_key` of the agent to upgrade. example: string in: path name: agent required: true schema: type: string requestBody: content: application/json: schema: example: dry_run: true email: user@example.com expected_review_fingerprint: string identity: string metadata: key: value mode: reapply model: string name: Example Name originator: string phone_number: '+15555550123' template: string properties: dry_run: description: When `true`, computes and returns the full upgrade diff without persisting any changes. Use with `expected_review_fingerprint` to guard the live apply. example: true type: boolean email: description: Instance-specific email address override. Pins this value so the template upgrade does not overwrite it. example: user@example.com type: string expected_review_fingerprint: description: Stale-review guard. Pass the `review_fingerprint` returned by a prior `dry_run` response to ensure the diff has not changed between review and live apply. Returns an error if the fingerprint no longer matches. example: string type: string identity: description: Instance-specific identity system-prompt override. Pins this value so the template upgrade does not overwrite it. example: string type: string metadata: description: Instance-specific metadata override. Pins this value so the template upgrade does not overwrite it. example: key: value type: object mode: description: Upgrade mode. `"reapply"` (default) refreshes the agent's tracked template; `"replace"` moves the agent to a different template (requires `template`). enum: - reapply - replace example: reapply type: string model: description: Instance-specific default model override. Pins this value so the template upgrade does not overwrite it. Pass an empty string to clear the model. example: string type: string name: description: Instance-specific name override. Pins this value so the template upgrade does not overwrite it. example: Example Name type: string originator: description: Instance-specific originator label override. Pins this value so the template upgrade does not overwrite it. example: string type: string phone_number: description: Instance-specific phone number override in E.164 format. Pins this value so the template upgrade does not overwrite it. example: '+15555550123' type: string template: description: ID (`cfg_...`) or `lookup_key` of the target AgentTemplate config. Optional in `"reapply"` mode; required in `"replace"` mode. example: string type: string type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AgentUpgradeResponse' description: Successful response '400': description: Bad request '401': description: Unauthorized '403': description: App-scoped token required. Use a token scoped to the target app.; Forbidden '404': description: Agent not found; Template not found '409': description: Agent template changed since review; prepare the diff again. '422': description: Agent has no tracked template; Template has no parent Solution; Config is not an agent template; Validation failed summary: Upgrade an agent from an AgentTemplate x-auth: - bearer - publishable_key tags: - Agents components: schemas: AgentHealth: description: Aggregate health profile for an agent, summarizing its current operational status, score, and the full list of setup and health actions. example: activity: {} agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu checked_at: '2024-01-01T00:00:00Z' checks: - {} counts: {} health_actions: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' depends_on: - string description: An example description. id: aha_0aBcDeFgHiJkLmNoPqRsTu kind: env_var last_verified_at: '2024-01-01T00:00:00Z' last_verifier_message: string org: org_0aBcDeFgHiJkLmNoPqRsTu params: key: value required: true sort_order: 1 source: setup status: pending title: Example Title updated_at: '2024-01-01T00:00:00Z' verify_config: {} recent: {} score: 85 status: ok properties: activity: description: Timestamps for the agent's most recent and next scheduled activity, used to surface last-run and upcoming-run information. example: {} type: object agent: $ref: '#/components/schemas/Agent' description: The agent this health profile describes. checked_at: description: When the health profile was last computed (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string checks: description: Renderable health check results. Each object includes at minimum `key`, `label`, `status`, and `summary` fields. example: - {} items: type: object type: array counts: description: Action counts broken down by dependency area and resolution status, used to render progress indicators per category. example: {} type: object health_actions: description: All actionable items tracked for this agent, including both `"setup"` items (post-install checklist) and `"health"` items (probe-detected issues). Sorted by `(source, sort_order, id)`. Use each item's `params` field to construct deep-links that route the user to the correct resolution flow. items: $ref: '#/components/schemas/AgentHealthAction' type: array recent: description: Recent execution metrics for the agent, including run counts and failure counts over a recent time window. example: {} type: object score: description: Normalized health score from `0` (fully degraded) to `100` (fully healthy), derived from the weight and status of all health actions. example: 85 type: integer status: description: Overall health status of the agent. One of `"ok"`, `"warning"`, or `"critical"`. example: ok type: string required: - activity - agent - checked_at - checks - counts - health_actions - recent - score - status type: object AgentComputerListResponse: description: A list of agent computers returned by a list query. example: data: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu config: key: value created_at: '2024-01-01T00:00:00Z' error_message: string id: cmp_0aBcDeFgHiJkLmNoPqRsTu last_active_at: '2024-01-01T00:00:00Z' lookup_key: main-computer metadata: key: value name: Example Name region: us-east-1 sprite_url: https://example.com status: ready updated_at: '2024-01-01T00:00:00Z' properties: data: description: Array of agent computer objects matching the query. items: $ref: '#/components/schemas/AgentComputer' type: array required: - data type: object AgentUpgradeSummary: description: Aggregate counts of each change type produced by an agent upgrade diff. example: adds: 1 noops: 1 removes: 1 updates: 1 properties: adds: description: Number of child resources that will be created by this upgrade. example: 1 type: integer noops: description: Number of child resources with no changes in this upgrade. example: 1 type: integer removes: description: Number of child resources that will be removed by this upgrade. example: 1 type: integer updates: description: Number of child resources that will be updated by this upgrade. example: 1 type: integer required: - adds - noops - removes - updates type: object Attachment: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: $ref: '#/components/schemas/ImageSource' description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. items: $ref: '#/components/schemas/MediaVariant' type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object Agent: description: An AI agent that can be configured with tools, routines, and skills, and invoked to handle conversations or tasks. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: $ref: '#/components/schemas/Acl' description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: $ref: '#/components/schemas/AgentSourceSolution' description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object Actor: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: $ref: '#/components/schemas/ImageSource' description: Profile picture for the actor. `null` if the actor has no profile picture. type: object WorkingMemoryEntryListResponse: description: Paginated list of working memory entries stored for an agent. Includes page metadata to support sequential page traversal. example: data: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' expires_at: '2024-01-01T00:00:00Z' id: amm_0aBcDeFgHiJkLmNoPqRsTu key: user_preference updated_at: '2024-01-01T00:00:00Z' value: string has_next: true has_prev: true page: 1 page_size: 20 total_entries: 1 total_pages: 1 properties: data: description: Array of working memory entry objects for the current page. items: $ref: '#/components/schemas/WorkingMemoryEntry' type: array has_next: description: '`true` if a subsequent page exists and can be fetched by incrementing the page number.' example: true type: boolean has_prev: description: '`true` if a previous page exists and can be fetched by decrementing the page number.' example: true type: boolean page: description: The current page number, starting at `1`. example: 1 type: integer page_size: description: Maximum number of entries returned per page. example: 20 type: integer total_entries: description: Total number of working memory entries matching the query across all pages. example: 1 type: integer total_pages: description: Total number of pages given the current `page_size`. example: 1 type: integer required: - data type: object Acl: description: An access-control list payload that supports either full replacement or targeted patch operations on a resource's grants. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' items: $ref: '#/components/schemas/AclGrant' type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' items: $ref: '#/components/schemas/AclGrant' type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' items: $ref: '#/components/schemas/AclRemoveTarget' type: array type: object InstallationKind: description: A supported installation kind describing a category of external service or enablement channel an agent can be connected to. example: accepts_sources: true category: integration config_schema: {} description: An example description. kind: enablement/github_app label: GitHub App provider: github requires_integration: true properties: accepts_sources: description: When `true`, sources can be attached to installations of this kind to supply additional context to the agent. example: true type: boolean category: description: Grouping category for UI display purposes, e.g. `"enablement"` or `"integration"`. `null` if uncategorized. example: integration type: string config_schema: description: JSON Schema object describing the shape of the `config` parameter accepted when creating or updating an installation of this kind. `null` if the kind accepts no configuration. example: {} type: object description: description: Short prose description of what this kind connects to and how it is used. `null` if no description is defined. example: An example description. type: string kind: description: Unique slug identifying this installation kind, e.g. `"enablement/github_app"`, `"integration/gmail"`, or `"web/site"`. Pass this value as `kind` when creating an installation. example: enablement/github_app type: string label: description: Human-readable display name for this kind, e.g. `"GitHub App"`. `null` if the kind has no label defined. example: GitHub App type: string provider: description: Identifier of the external provider this kind connects to, e.g. `"github"` or `"slack"`. `null` for kinds with no specific provider. example: github type: string requires_integration: description: When `true`, this kind requires an integration to be provided (either inline or via `shared_integration`) before the installation can be activated. example: true type: boolean required: - kind type: object ConfigVersion: description: A single immutable snapshot of a config's content, created each time the config is saved. example: change_description: An example description. content_hash: sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 created_at: '2024-01-01T00:00:00Z' data: {} id: cfv_0aBcDeFgHiJkLmNoPqRsTu org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu version_number: 1 properties: change_description: description: Human-readable summary of what changed in this version, as provided by the author. `null` if no description was supplied. example: An example description. type: string content_hash: description: SHA-256 digest of the raw config content encoded as `sha256:`. Uses the same algorithm as the CLI `computeContentHash` helper. `null` for versions created before this field was introduced. example: sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 type: string created_at: description: When this config version was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string data: description: Arbitrary structured metadata stored alongside this version. `null` when no extra data was provided. example: {} type: object id: description: Config version ID (`cfv_...`). example: cfv_0aBcDeFgHiJkLmNoPqRsTu type: string org: description: Organization ID (`org_...`) that owns this config version. `null` for personal configs. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox: description: Sandbox ID (`sbx_...`) this version was saved under. `null` for production configs. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string version_number: description: Monotonically increasing integer identifying this version within the config. Starts at 1. example: 1 type: integer required: - id - version_number type: object ThreadSettings: description: Configuration settings for a thread that control AI agent behavior and other thread-level preferences. example: agent_enabled: true properties: agent_enabled: description: Whether the AI agent is active for this thread. `true` enables AI responses; `false` disables them. Defaults to `true` when settings have not been explicitly configured. example: true type: boolean type: object Message: description: A chat message posted in a thread, including its content, author, attachments, reactions, and optional reply metadata. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. items: $ref: '#/components/schemas/Actor' type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. items: $ref: '#/components/schemas/Attachment' type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. items: $ref: '#/components/schemas/MessageReaction' type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object User: description: A platform user account. Represents a human or system actor that can own threads, belong to an organization, and interact with the API. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object AgentUpgradeChange: description: One child-resource change produced by an agent upgrade, describing the action to be taken on a single resource. example: action: update description: An example description. field_changes: - field: name locally_edited: true id: id_0aBcDeFgHiJkLmNoPqRsTu key: string name: Example Name parent_template_config: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string resource: {} resource_type: tool source_template_config: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: action: description: The operation that will be performed. One of `"add"`, `"update"`, `"remove"`, or `"noop"`. example: update type: string description: description: Description of the child resource this change touches, when one is set. `null` when no description is available. example: An example description. type: string field_changes: description: Field-level diff entries for this change. Populated only when `action` is `"update"`; empty or absent for `add`, `remove`, and `noop` entries. items: $ref: '#/components/schemas/AgentUpgradeFieldChange' type: array id: description: Public ID of the existing resource being updated or removed (e.g. `atl_...`, `arn_...`). `null` for `add` entries. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string key: description: Lookup key of the resource derived from its source template. `null` when the template has no lookup key. example: string type: string name: description: Human-facing name of the child resource this change touches (tool/routine/skill/computer name, or builtin tool key for unnamed builtin tools). Falls back to the source template's name. `null` for the synthetic `agent_base` entry. example: Example Name type: string parent_template_config: $ref: '#/components/schemas/UpgradeTemplateSummary' description: Summary of the parent AgentTemplate config (`cfg_...`) being applied in this upgrade. resource: description: 'Resource-type-specific identity details. Tools: `tool_type`, `builtin_tool_key`, `name_prefix`, `handler_type`, `instruction`. Routines: `handler_type`, `preset_name`, `event_type`, `schedule`, `trigger_context`. Skills: `instruction`. Computers: `region`. Only populated keys are present; `null` when nothing is known.' example: {} type: object resource_type: description: Type of the child resource being changed. One of `"agent"`, `"tool"`, `"routine"`, `"skill"`, or `"computer"`. example: tool type: string source_template_config: $ref: '#/components/schemas/UpgradeTemplateSummary' description: Summary of the specific child template config (`cfg_...`) that defines this resource. `null` when no source template is resolvable. required: - action - parent_template_config - resource_type type: object PresetConfig: description: Configuration for a preset routine handler. Controls the agent's behavior, session persistence, and model selection for a given routine or chain step. example: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string properties: instructions: description: Custom task or behavior instructions for the preset (max 10,000 chars). example: You are a helpful assistant. Answer questions concisely and cite sources when possible. type: string llm: $ref: '#/components/schemas/LLMConfig' description: LLM invocation settings (e.g. a `model` override for this routine/step). session_mode: description: 'Session mode: `stateless` (default, new session per trigger) or `session` (find-or-create a persistent session scoped by `session_scope`).' example: stateless type: string session_scope: description: 'When `session_mode` is `session`, controls session scoping: `per_user` (default), `per_key`, `per_org`, or `global`.' example: per_user type: string structured_message_template_ids: description: IDs of structured message templates that constrain the agent's responses to predefined structured formats. example: - string items: type: string type: array type: object HealthActionListResponse: description: List response containing agent health actions for a given agent or organization. example: data: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' depends_on: - string description: An example description. id: aha_0aBcDeFgHiJkLmNoPqRsTu kind: env_var last_verified_at: '2024-01-01T00:00:00Z' last_verifier_message: string org: org_0aBcDeFgHiJkLmNoPqRsTu params: key: value required: true sort_order: 1 source: setup status: pending title: Example Title updated_at: '2024-01-01T00:00:00Z' verify_config: {} properties: data: description: Array of agent health action objects representing setup checklist items and probe-detected issues. items: $ref: '#/components/schemas/AgentHealthAction' type: array required: - data type: object AgentSchedule: description: A scheduled task created by an agent. Supports one-time and recurring (cron-based) execution patterns. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' cron_expression: 0 9 * * 1 id: asc_0aBcDeFgHiJkLmNoPqRsTu instructions: Send a daily summary of open support tickets to the team Slack channel. last_run_at: '2024-01-01T00:00:00Z' max_runs: 10 metadata: key: value next_run_at: '2024-01-01T00:00:00Z' run_count: 1 schedule_type: recurring scheduled_at: '2024-01-01T00:00:00Z' status: active thread: thr_0aBcDeFgHiJkLmNoPqRsTu timezone: America/New_York updated_at: '2024-01-01T00:00:00Z' properties: agent: description: ID of the agent that owns this schedule (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string app: description: ID of the application the schedule belongs to (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the schedule was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string cron_expression: description: Standard cron expression defining the recurrence pattern (e.g. `"0 9 * * 1"`). Present only when `schedule_type` is `"recurring"`. `null` for one-time schedules. example: 0 9 * * 1 type: string id: description: Schedule ID (`asc_...`). example: asc_0aBcDeFgHiJkLmNoPqRsTu type: string instructions: description: The task description the agent will execute when this schedule fires. example: Send a daily summary of open support tickets to the team Slack channel. type: string last_run_at: description: UTC datetime of the most recent successful execution. `null` if the schedule has never run. example: '2024-01-01T00:00:00Z' format: date-time type: string max_runs: description: Maximum number of times a recurring schedule may fire before automatically transitioning to `"completed"`. `null` means no limit. example: 10 type: integer metadata: description: Arbitrary key-value pairs attached to the schedule by the agent. Not interpreted by the platform. example: key: value type: object next_run_at: description: UTC datetime of the next planned execution. `null` if the schedule has completed, been cancelled, or has not yet been computed. example: '2024-01-01T00:00:00Z' format: date-time type: string run_count: description: Total number of times this schedule has fired. example: 1 type: integer schedule_type: description: Determines how the schedule repeats. `"once"` fires a single time at `scheduled_at` then transitions to `"completed"`. `"recurring"` fires on the `cron_expression` and reschedules automatically. example: recurring type: string scheduled_at: description: The exact UTC datetime at which a one-time schedule fires. Present only when `schedule_type` is `"once"`. `null` for recurring schedules. example: '2024-01-01T00:00:00Z' format: date-time type: string status: description: Current lifecycle status of the schedule. One of `"active"` (will fire as planned), `"paused"` (temporarily suspended), `"completed"` (has run its last execution), `"cancelled"` (manually stopped), or `"expired"` (past its valid window). example: active type: string thread: description: Thread ID (`thr_...`) this schedule is bound to. When set, the scheduled task is delivered into the thread rather than creating a new session. `null` for session-based schedules. example: thr_0aBcDeFgHiJkLmNoPqRsTu type: string timezone: description: IANA timezone name used to interpret the cron expression or `scheduled_at` (e.g. `"America/New_York"`). Defaults to `"Etc/UTC"`. example: America/New_York type: string updated_at: description: When the schedule was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object InstallationListResponse: description: Paginated list response containing installation objects for an agent. example: data: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu config: {} created_at: '2024-01-01T00:00:00Z' id: cin_0aBcDeFgHiJkLmNoPqRsTu kind: enablement/github_app lookup_key: string shared_integration: int_0aBcDeFgHiJkLmNoPqRsTu state: active status_payload: {} updated_at: '2024-01-01T00:00:00Z' properties: data: description: Array of installation objects returned for the current page. items: $ref: '#/components/schemas/Installation' type: array required: - data type: object SolutionTemplateSummary: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object AgentSourceSolution: description: 'Summary of the Solution and AgentTemplate that an agent was last provisioned from. Returned on single-agent responses; `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted.' example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: $ref: '#/components/schemas/SolutionSummary' description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. template: $ref: '#/components/schemas/UpgradeTemplateSummary' description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. required: - solution - template type: object AclGrant: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object AgentEnvVarMaskedList: description: Flat list of masked environment variables belonging to an agent. example: data: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' description: An example description. id: anv_0aBcDeFgHiJkLmNoPqRsTu key: OPENAI_API_KEY masked_value: '****1234' updated_at: '2024-01-01T00:00:00Z' properties: data: description: Array of masked environment variable objects for the agent. items: $ref: '#/components/schemas/AgentEnvVarMasked' type: array required: - data type: object InstalledConfigEntry: description: A slim summary of a single config record created during an agent install transaction. Returned as an entry in `AgentCreateResponse.installed_configs`. example: id: id_0aBcDeFgHiJkLmNoPqRsTu key: my-skill kind: Skill lookup_key: my-skill properties: id: description: ID of the persisted config record (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string key: description: Caller-supplied correlation key echoed back from the request. For top-level configs this is the original `lookup_key` (before any suffix is applied). For skill file children it is the composite `":"` string, since file rows have no lookup_key of their own. example: my-skill type: string kind: description: Type of config that was created. One of `"Skill"`, `"File"`, `"Script"`, `"AgentTemplate"`, or `"Config"`. example: Skill type: string lookup_key: description: Stored `lookup_key` for this config after any suffix has been applied. `null` for `File` children inside a skill bundle, which are keyed by `(parent_id, relative_path)` rather than by `lookup_key`. example: my-skill type: string required: - id - key - kind type: object WorkingMemoryEntry: description: A key-value memory record stored for an agent, optionally scoped to a user. Memory entries persist across invocations and may carry an expiration time. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' expires_at: '2024-01-01T00:00:00Z' id: amm_0aBcDeFgHiJkLmNoPqRsTu key: user_preference updated_at: '2024-01-01T00:00:00Z' value: string properties: agent: description: ID of the agent that owns this memory entry (`agt_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When this memory entry was first written (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string expires_at: description: When this entry will be automatically deleted. `null` if the entry does not expire. example: '2024-01-01T00:00:00Z' format: date-time type: string id: description: Working memory entry ID (`amm_...`). example: amm_0aBcDeFgHiJkLmNoPqRsTu type: string key: description: The string key used to look up this memory entry within the agent's memory namespace. example: user_preference type: string updated_at: description: When this memory entry was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string value: description: The string value stored under `key`. May be any serialized content the agent wrote. example: string type: string required: - id type: object AgentCreateResponse: description: The response returned by `POST /api/v1/agents`. Contains all agent fields plus an optional `installed_configs` array when a `template_bundle` was supplied in the request. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-5-sonnet-20241022 email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant. installed_configs: - id: id_0aBcDeFgHiJkLmNoPqRsTu key: my-skill kind: Skill lookup_key: my-skill lookup_key: my-agent metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu originator: my-service phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: $ref: '#/components/schemas/Acl' description: Access control list governing who can interact with this agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied. app: description: ID of the app this agent belongs to (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default AI model the agent uses when no model is specified at runtime, e.g. `"claude-3-5-sonnet-20241022"`. `null` if not configured. example: claude-3-5-sonnet-20241022 type: string email: description: Email address assigned to this agent for inbound email handling. `null` if not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System prompt or persona description that shapes the agent's behavior. `null` if not set. example: You are a helpful assistant. type: string installed_configs: description: List of config records created as part of this request's `template_bundle` install. One entry per persisted config, sorted by `key`. Omitted entirely when the request did not include a `template_bundle`. items: $ref: '#/components/schemas/InstalledConfigEntry' type: array lookup_key: description: Unique, stable identifier for the agent within its app. `null` if not set. example: my-agent type: string metadata: description: Arbitrary key-value metadata attached to the agent. `null` if none was provided. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` for agents outside an org. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string originator: description: Free-form label identifying the source or author of the agent, e.g. a username or service name. `null` if not set. example: my-service type: string phone_number: description: Phone number assigned to this agent for inbound SMS or voice handling. `null` if not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`sbx_...`). `null` for agents not scoped to a sandbox. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string team: description: ID of the team that owns this agent (`tea_...`). `null` if owned by a user rather than a team. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent record was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if owned by a team. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object LLMConfig: description: LLM invocation settings for a routine or chain step. When present, overrides the agent-level model selection. example: model: claude-sonnet-4-5 properties: model: description: Model identifier to use for this routine or step, e.g. `"claude-sonnet-4-5"`. When omitted, the agent's default model is used. example: claude-sonnet-4-5 type: string type: object Thread: description: A chat thread, representing a conversation channel that can be owned by a user, team, or agent and may contain messages, participants, and AI agent activity. example: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: agent_user: description: ID of the agent that owns this thread (`agt_...`). `null` for user-owned or team-owned threads. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the thread was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string creator: $ref: '#/components/schemas/User' description: Expanded user object for the user who created this thread. Populated only when the association is loaded. description: description: Optional description or purpose statement for the thread. `null` if not set. example: An example description. type: string id: description: Thread ID (`thr_...`). example: string type: string is_channel: description: Whether this thread operates as a channel — a multi-member broadcast-style conversation. example: true type: boolean is_default: description: Whether this is the default thread for its owner. Each user or team has at most one default thread. example: true type: boolean is_transient: description: Whether this thread is ephemeral and may be deleted automatically after a period of inactivity or when its TTL expires. example: true type: boolean is_unlisted: description: Whether this thread is hidden from public discovery. Unlisted threads are accessible only to direct participants. example: true type: boolean key: description: Application-defined stable key that uniquely identifies the thread within its scope. Useful for idempotent creation. `null` if not set. example: string type: string last_activity: description: When the last message or activity occurred in this thread. Present only when activity enrichment is requested. example: '2024-01-01T00:00:00Z' format: date-time type: string metadata: description: Arbitrary key-value metadata attached to the thread. Shape is application-defined; `null` if no metadata has been set. example: key: value type: object muted: description: Whether the authenticated user has muted notifications for this thread. `true` suppresses all notification delivery. example: true type: boolean org: description: ID of the organization this thread belongs to (`org_...`). `null` for threads outside an org context. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string parent_message: $ref: '#/components/schemas/Message' description: The message that spawned this thread as a sub-thread. `null` for top-level threads. participant: description: Array of participant user IDs (`usr_...`) who are members of this thread. example: - string items: type: string type: array participants: description: Expanded participant user objects for each member of this thread. Populated only when the association is loaded. items: $ref: '#/components/schemas/User' type: array participating_actor: description: Composite actor identifiers for all participants currently active in this thread. Present only when actor enrichment is requested. example: - string items: type: string type: array participating_agents: description: Expanded agent objects for all agents participating in this thread. Present only when agent enrichment is requested. items: $ref: '#/components/schemas/Agent' type: array role: description: The authenticated user's membership role in this thread, e.g. `"owner"`, `"member"`, or `"viewer"`. `null` if the user is not a member. example: member type: string sandbox: description: ID of the developer sandbox this thread is scoped to (`sbx_...`). `null` for production threads. example: string type: string settings: $ref: '#/components/schemas/ThreadSettings' description: Per-thread configuration settings controlling AI agent behavior for this thread. slug: description: URL-safe slug for the thread, used in human-readable permalinks. `null` if not assigned. example: example-slug type: string sub_threads: description: Threads that are nested under this thread as replies to a parent message. Present only when sub-thread enrichment is requested. example: - {} items: type: object type: array team: description: ID of the team that owns this thread (`team_...`). `null` for user-owned or agent-owned threads. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string title: description: Human-readable name of the thread. `null` if no title has been set. example: Example Title type: string ttl: description: Time-to-live in seconds after which the thread may be automatically cleaned up. `null` if the thread does not expire. example: 3600 type: integer unread_count: description: Number of messages in this thread that the authenticated user has not yet read. Present only when read-state enrichment is requested. example: 5 type: integer updated_at: description: When the thread was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user who owns this thread (`usr_...`). `null` for team-owned or agent-owned threads. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object AgentListResponse: description: Paginated list of agent objects. Use the pagination fields to traverse multiple pages of results. example: data: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu has_next: true has_prev: true page: 1 page_size: 20 total_entries: 42 total_pages: 1 properties: data: description: Array of agent objects for the current page. items: $ref: '#/components/schemas/Agent' type: array has_next: description: '`true` when a subsequent page of results exists.' example: true type: boolean has_prev: description: '`true` when a previous page of results exists.' example: true type: boolean page: description: Current page number, starting at 1. example: 1 type: integer page_size: description: Maximum number of agents returned per page. example: 20 type: integer total_entries: description: Total number of agents matching the query across all pages. example: 42 type: integer total_pages: description: Total number of pages available given the current `page_size`. example: 1 type: integer required: - data type: object AgentToolListResponse: description: Paginated list response containing the tools attached to an agent. example: data: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu async: true builtin_tool_config: {} builtin_tool_key: string config: cfg_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' description: An example description. handler_type: http id: atl_0aBcDeFgHiJkLmNoPqRsTu instruction: string kind: builtin last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name name_prefix: string parameters: {} parameters_config: cfg_0aBcDeFgHiJkLmNoPqRsTu status: active updated_at: '2024-01-01T00:00:00Z' properties: data: description: Array of agent tool objects returned for the current request. items: $ref: '#/components/schemas/AgentTool' type: array required: - data type: object ImageSource: description: Resolved metadata for an image, including its delivery URL, dimensions, and optional references to the underlying storage file or media record. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object AclRemoveTarget: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object AgentUpgradeResponse: description: Response returned by the agent upgrade endpoint, combining the updated agent, its source Solution and template, and the full upgrade diff. example: agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string upgrade_result: changes: - action: update description: An example description. field_changes: - field: name locally_edited: true id: id_0aBcDeFgHiJkLmNoPqRsTu key: string name: Example Name parent_template_config: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string resource: {} resource_type: tool source_template_config: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string dry_run: true mode: full review_fingerprint: string status: upgraded summary: adds: 1 noops: 1 removes: 1 updates: 1 properties: agent: $ref: '#/components/schemas/Agent' description: The agent after the upgrade has been applied. `null` for dry-run requests where no changes were persisted. solution: $ref: '#/components/schemas/SolutionSummary' description: Summary of the parent Solution the agent was upgraded from. template: $ref: '#/components/schemas/UpgradeTemplateSummary' description: Summary of the AgentTemplate config (`cfg_...`) that was selected for this upgrade. upgrade_result: $ref: '#/components/schemas/AgentUpgradeResult' description: Full upgrade diff including status, mode, dry-run flag, summary counts, and per-resource change list. required: - solution - template - upgrade_result type: object MediaVariant: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: $ref: '#/components/schemas/ImageSource' description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object InstallationKindListResponse: description: List response containing all available installation kinds that can be used when configuring an agent installation. example: data: - accepts_sources: true category: integration config_schema: {} description: An example description. kind: enablement/github_app label: GitHub App provider: github requires_integration: true properties: data: description: Array of installation kind objects describing the available integration types and their configuration requirements. items: $ref: '#/components/schemas/InstallationKind' type: array required: - data type: object AgentEnvVarMasked: description: An agent environment variable with its secret value masked for safe display in list and show responses. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' description: An example description. id: anv_0aBcDeFgHiJkLmNoPqRsTu key: OPENAI_API_KEY masked_value: '****1234' updated_at: '2024-01-01T00:00:00Z' properties: agent: description: ID of the agent this environment variable belongs to (`agt_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the environment variable was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Optional human-readable note describing the purpose of this variable. `null` if not set. example: An example description. type: string id: description: Environment variable ID (`anv_...`). example: anv_0aBcDeFgHiJkLmNoPqRsTu type: string key: description: Name of the environment variable as it appears in the agent's runtime. example: OPENAI_API_KEY type: string masked_value: description: Redacted representation of the secret value. The last four characters are preserved; all preceding characters are replaced with `****`. Returns `****` when the value is absent or four characters or fewer. example: '****1234' type: string updated_at: description: When the environment variable was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - agent - id - key - masked_value type: object AgentHealthAction: description: A single actionable item in an agent's health or setup checklist, carrying the structured data needed to render the item and deep-link to the resolution flow. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' depends_on: - string description: An example description. id: aha_0aBcDeFgHiJkLmNoPqRsTu kind: env_var last_verified_at: '2024-01-01T00:00:00Z' last_verifier_message: string org: org_0aBcDeFgHiJkLmNoPqRsTu params: key: value required: true sort_order: 1 source: setup status: pending title: Example Title updated_at: '2024-01-01T00:00:00Z' verify_config: {} properties: agent: description: ID of the agent this action is scoped to (`agt_...`). `null` for org-level actions. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string app: description: ID of the application this action is associated with (`app_...`). `null` when not app-scoped. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When this health action was first created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string depends_on: description: IDs of other health actions that must reach `"completed"` status before this action can be started. Empty array when there are no dependencies. example: - string items: type: string type: array description: description: Longer Markdown-formatted explanation of what the action requires and why. `null` if not provided. example: An example description. type: string id: description: Health action ID (`aha_...`). example: aha_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Category of action to take. One of `"env_var"` (set a secret), `"install"` (authorize an OAuth integration), or `"custom"` (agent-defined step). example: env_var type: string last_verified_at: description: When the verifier last ran for this action (ISO 8601). `null` until the verifier has been invoked at least once. example: '2024-01-01T00:00:00Z' format: date-time type: string last_verifier_message: description: Human-readable output from the most recent verifier run. `null` if the verifier has not run yet. example: string type: string org: description: ID of the organization this action is associated with (`org_...`). `null` when not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string params: description: Kind-specific structured data used to construct the deep-link for this action. For `"env_var"` actions includes `key` and `scope`; for `"install"` actions includes `installation_kind`. Empty object `{}` when no additional parameters are needed. example: key: value type: object required: description: '`true` if this action must be completed before the agent is considered fully operational and counts toward the blocking checklist progress bar.' example: true type: boolean sort_order: description: Display order within the same `source` group. Lower values appear first. example: 1 type: integer source: description: Lifecycle stage that produced this action. One of `"setup"` (post-install checklist item) or `"health"` (probe-detected issue). example: setup type: string status: description: Current resolution state. One of `"pending"` (not yet completed), `"completed"` (resolved), `"skipped"` (dismissed by the user), or `"degraded"` (completed but the verifier is reporting a warning). example: pending type: string title: description: Short display label for this action, intended for use as a checklist item heading. example: Example Title type: string updated_at: description: When this health action was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string verify_config: description: Configuration for the action's verifier step. Contains at minimum a `type` field that indicates which verification affordance to render. Server-internal fields are stripped before this is returned. example: {} type: object required: - id - kind - required - sort_order - source - status - title type: object AgentTool: description: A tool attached to an agent, defining a capability the agent can invoke during a conversation or task run. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu async: true builtin_tool_config: {} builtin_tool_key: string config: cfg_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' description: An example description. handler_type: http id: atl_0aBcDeFgHiJkLmNoPqRsTu instruction: string kind: builtin last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name name_prefix: string parameters: {} parameters_config: cfg_0aBcDeFgHiJkLmNoPqRsTu status: active updated_at: '2024-01-01T00:00:00Z' properties: agent: description: ID of the agent this tool belongs to (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string app: description: ID of the application that owns this tool (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string async: description: '`true` when the tool executes asynchronously and returns a task handle rather than an immediate result.' example: true type: boolean builtin_tool_config: description: Provider-specific configuration for the built-in tool. Present only when `kind` is `"builtin"`. Shape varies by `builtin_tool_key`. example: {} type: object builtin_tool_key: description: Registry key identifying the built-in tool implementation. Present only when `kind` is `"builtin"`. example: string type: string config: description: ID of the config record (`cfg_...`) containing this tool's full configuration. `null` for inline-only tools. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the tool was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: 'Description of what the tool does, passed to the LLM as part of the tool definition. Resolved from the built-in registry for `kind: "builtin"` tools.' example: An example description. type: string handler_type: description: Execution handler type. One of `"http"`, `"script"`, or `"builtin"`. example: http type: string id: description: Tool ID (`atl_...`). example: atl_0aBcDeFgHiJkLmNoPqRsTu type: string instruction: description: Optional system-level instruction appended to the agent prompt when this tool is active. example: string type: string kind: description: Tool kind. One of `"builtin"`, `"custom"`, or `"mcp"`. example: builtin type: string last_applied_template_config: description: ID of the AgentToolTemplate config (`cfg_...`) this tool was last provisioned or updated from. `null` for manually created tools. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this tool within the agent. Unique per agent. example: string type: string metadata: description: Arbitrary key-value metadata attached to the tool. Not interpreted by the platform. example: key: value type: object name: description: 'Human-readable name of the tool as exposed to the LLM. Resolved from the built-in registry for `kind: "builtin"` tools.' example: Example Name type: string name_prefix: description: Per-instance namespace prepended to LLM-facing tool names for built-in tools that support multiple instances per agent. `null` when not applicable. example: string type: string parameters: description: JSON Schema object describing the tool's input parameters as presented to the LLM. example: {} type: object parameters_config: description: ID of the config record (`cfg_...`) storing the tool's parameter schema. `null` when parameters are defined inline. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string status: description: Current status of the tool. One of `"active"` or `"disabled"`. example: active type: string updated_at: description: When the tool was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object SolutionSummary: description: A catalog entry for an imported Solution, including its display metadata, bundled templates, owner scopes, and any available upgrade information. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: $ref: '#/components/schemas/ImageSource' description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. items: $ref: '#/components/schemas/SolutionTemplateSummary' type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object AgentComputer: description: A cloud computer resource provisioned for an agent to use for browser and desktop automation tasks. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu config: key: value created_at: '2024-01-01T00:00:00Z' error_message: string id: cmp_0aBcDeFgHiJkLmNoPqRsTu last_active_at: '2024-01-01T00:00:00Z' lookup_key: main-computer metadata: key: value name: Example Name region: us-east-1 sprite_url: https://example.com status: ready updated_at: '2024-01-01T00:00:00Z' properties: agent: description: ID of the agent that owns this computer (`agi_...`). `null` if the computer is not yet assigned to an agent. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string app: description: ID of the app this computer belongs to (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string config: description: Provider-specific configuration key-value pairs for the computer. Structure depends on the underlying compute provider. example: key: value type: object created_at: description: When the computer was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string error_message: description: Human-readable error description when `status` is `"error"`. `null` otherwise. example: string type: string id: description: Computer ID (`cmp_...`). example: cmp_0aBcDeFgHiJkLmNoPqRsTu type: string last_active_at: description: When the computer last reported activity or received a command. `null` if the computer has never been active. example: '2024-01-01T00:00:00Z' format: date-time type: string lookup_key: description: Unique, stable identifier you assign to this computer within its app. `null` if not set. example: main-computer type: string metadata: description: Arbitrary key-value metadata you attached to the computer. `null` if none was provided. example: key: value type: object name: description: Human-readable display name for the computer. `null` if not set. example: Example Name type: string region: description: Cloud region where the computer is hosted, e.g. `"us-east-1"`. `null` if not yet assigned. example: us-east-1 type: string sprite_url: description: URL of the live screenshot sprite used to render a real-time preview of the computer's screen. `null` when no sprite is available. example: https://example.com type: string status: description: Current lifecycle state of the computer. Common values include `"provisioning"`, `"ready"`, `"error"`, and `"terminated"`. example: ready type: string updated_at: description: When the computer record was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object Installation: description: An installation representing a connection between an agent and an external service or enablement channel. Tracks configuration, lifecycle state, and any bound integration. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu config: {} created_at: '2024-01-01T00:00:00Z' id: cin_0aBcDeFgHiJkLmNoPqRsTu kind: enablement/github_app lookup_key: string shared_integration: int_0aBcDeFgHiJkLmNoPqRsTu state: active status_payload: {} updated_at: '2024-01-01T00:00:00Z' properties: agent: description: ID of the agent that owns this installation (`agi_...`). `null` if the installation has no agent owner. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string config: description: Kind-specific configuration object for this installation. Shape depends on the `kind` value. `null` if the kind requires no configuration. example: {} type: object created_at: description: When the installation was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string id: description: Installation ID (`cin_...`). example: cin_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Slug identifying the type of external service this installation connects to, e.g. `"enablement/github_app"` or `"integration/gmail"`. `null` if not set. example: enablement/github_app type: string lookup_key: description: Caller-assigned stable identifier for this installation, used to reference it in knowledge search `source_refs`. `null` if no lookup key was provided at creation time. example: string type: string shared_integration: description: ID of the shared org- or app-level integration bound to this installation (`int_...`). `null` if no integration has been bound. example: int_0aBcDeFgHiJkLmNoPqRsTu type: string state: description: Current lifecycle state of the installation. One of `"pending"`, `"active"`, `"paused"`, or `"error"`. `"error"` indicates the installation was suspended due to a policy or compliance issue and requires attention. example: active type: string status_payload: description: Provider-supplied status detail for this installation, set during activation or event processing. `null` if no status has been reported. example: {} type: object updated_at: description: When the installation record was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object AgentUpgradeFieldChange: description: 'One field-level diff entry within an agent upgrade change, describing how a single field will change. `baseline` and `locally_edited` are populated only for `agent_base` entries; child resource entries (tools, routines, skills, computers) carry only `field`, `old`, and `new`.' example: field: name locally_edited: true properties: baseline: description: Value that was set by the last-applied template version (pinned baseline). Populated only on `agent_base` field changes. `null` when no baseline is available (legacy agent or deleted version). field: description: Name of the field that will change, e.g. `"name"` or `"identity"`. example: name type: string locally_edited: description: '`true` when the agent''s current value differs from `baseline`, indicating a local edit that this upgrade will overwrite. `false` when the current value matches the baseline. `null` when `baseline` is unavailable. Populated only on `agent_base` field changes.' example: true type: boolean new: description: Incoming value the field will be set to after the upgrade (string, number, boolean, or `null`). old: description: Current value of the field before the upgrade (string, number, boolean, or `null`). required: - field type: object AgentRoutine: description: An agent routine defines a reusable handler — script, preset, or chain — that runs in response to events or on a schedule. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu config: cfg_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' description: An example description. event_config: {} event_type: agentroutine.invoked handler_type: script id: arn_0aBcDeFgHiJkLmNoPqRsTu last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: daily-digest metadata: key: value name: Example Name preset_config: instructions: You are a helpful assistant. Answer questions concisely and cite sources when possible. llm: model: claude-sonnet-4-5 session_mode: stateless session_scope: per_user structured_message_template_ids: - string preset_name: Example Name schedule: string script: string status: active steps: - {} trigger_context: event updated_at: '2024-01-01T00:00:00Z' properties: acl: $ref: '#/components/schemas/Acl' description: Access control list for the routine. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the routine is accessible to all members of its scope. agent: description: ID of the agent that owns this routine (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string app: description: Application that scopes this routine (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string config: description: ID of the Config record that backs this routine's configuration (`cfg_...`). `null` when the routine is not config-backed. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When this routine was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Optional description of what this routine does. `null` when not set. example: An example description. type: string event_config: description: Additional configuration controlling how the event trigger is matched or filtered. Shape depends on `event_type`. `null` when not configured. example: {} type: object event_type: description: Platform event type that triggers this routine, e.g. `"agentroutine.invoked"`. `null` for schedule-only routines. example: agentroutine.invoked type: string handler_type: description: Execution strategy for this routine. One of `"workflow_graph"`, `"script"`, `"preset"`, or `"chain"`. example: script type: string id: description: Routine ID (`arn_...`). example: arn_0aBcDeFgHiJkLmNoPqRsTu type: string last_applied_template_config: description: ID of the AgentRoutineTemplate Config this routine was last provisioned or updated from (`cfg_...`). `null` for hand-built routines. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Unique human-readable key used to look up this routine without knowing its ID. `null` when not set. example: daily-digest type: string metadata: description: Arbitrary key-value metadata attached to this routine. `null` when not set. example: key: value type: object name: description: Human-readable name for the routine. example: Example Name type: string preset_config: $ref: '#/components/schemas/PresetConfig' description: Resolved preset configuration when `handler_type` is `"preset"`. `null` for other handler types. preset_name: description: Name of the preset invoked when `handler_type` is `"preset"`. `null` for other handler types. example: Example Name type: string schedule: description: Cron expression controlling when the routine fires on a schedule. `null` for event-only routines. example: string type: string script: description: Inline script body executed when `handler_type` is `"script"`. `null` for other handler types. example: string type: string status: description: Lifecycle status of the routine. One of `"draft"`, `"active"`, or `"paused"`. Only `"active"` routines respond to triggers. example: active type: string steps: description: Ordered list of chain steps (present when handler_type is "chain"). Each step is a plain map with handler_type, optional body fields (preset_name / preset_config / script / config), and step-local plumbing (name, inputs, output_key, on_error). example: - {} items: type: object type: array trigger_context: description: Execution context in which runs are created. One of `"event"` (background job) or `"chat_session"` (interactive session). Defaults to `"event"`. example: event type: string updated_at: description: When this routine was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object Config: description: A versioned config file owned by a team or user, representing a typed artifact such as an agent definition or API tool specification. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' current_version: change_description: An example description. content_hash: sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 created_at: '2024-01-01T00:00:00Z' data: {} id: cfv_0aBcDeFgHiJkLmNoPqRsTu org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu version_number: 1 id: cfg_0aBcDeFgHiJkLmNoPqRsTu is_archived: true kind: Agent lookup_key: string mime_type: application/json org: org_0aBcDeFgHiJkLmNoPqRsTu parent: cfg_0aBcDeFgHiJkLmNoPqRsTu parent_solution: cfg_0aBcDeFgHiJkLmNoPqRsTu raw_content: string relative_path: string sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu virtual_path: agents/my-agent.yaml properties: agent: description: Agent ID (`agt_...`) associated with this config. `null` if not linked to an agent. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When this config was first created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string current_version: $ref: '#/components/schemas/ConfigVersion' description: The most recently saved version of this config. `null` if the config has never been saved with content. id: description: Config ID (`cfg_...`). example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string is_archived: description: Whether this config has been archived. Archived configs are hidden from default listings but remain accessible by ID. example: true type: boolean kind: description: Type of config, e.g. `"Agent"` or `"APITool"`. Determines which fields and validation rules apply. example: Agent type: string lookup_key: description: Stable, user-defined key used to look up this config without knowing its ID. `null` if not set. example: string type: string mime_type: description: MIME type of the config's content, e.g. `"text/yaml"`. `null` if not determined. example: application/json type: string org: description: Organization ID (`org_...`) this config belongs to. `null` for configs not scoped to an org. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string parent: description: Parent bundle config ID (`cfg_...`). Present only for configs that are children of a bundle; `null` otherwise. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string parent_solution: description: ID (`cfg_...`) of the solution config this config was imported with. `null` if the config was not imported via a solution. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string raw_content: description: Raw file content as a string. Populated only for system configs; `null` for user-owned configs. example: string type: string relative_path: description: Path of this config relative to its parent bundle root. Present only for bundle children; `null` otherwise. example: string type: string sandbox: description: Sandbox identifier this config belongs to. `null` for production configs. example: string type: string team: description: Team ID (`tea_...`) that owns this config. `null` for personal (user-scoped) configs. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When this config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: User ID (`usr_...`) who owns this config. `null` for team-scoped configs. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string virtual_path: description: Logical path uniquely identifying this config within its team, e.g. `"agents/my-agent.yaml"`. `null` for configs without an explicit path. example: agents/my-agent.yaml type: string required: - id - kind type: object AgentExport: description: A portable export bundle for an agent, containing everything needed to re-deploy it in another workspace or environment. example: configs: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' current_version: change_description: An example description. content_hash: sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 created_at: '2024-01-01T00:00:00Z' data: {} id: cfv_0aBcDeFgHiJkLmNoPqRsTu org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu version_number: 1 id: cfg_0aBcDeFgHiJkLmNoPqRsTu is_archived: true kind: Agent lookup_key: string mime_type: application/json org: org_0aBcDeFgHiJkLmNoPqRsTu parent: cfg_0aBcDeFgHiJkLmNoPqRsTu parent_solution: cfg_0aBcDeFgHiJkLmNoPqRsTu raw_content: string relative_path: string sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu virtual_path: agents/my-agent.yaml template: {} properties: configs: description: Ordered list of config file objects that the agent depends on. Included in full so the import can recreate all dependencies without additional requests. items: $ref: '#/components/schemas/Config' type: array template: description: The agent template definition as a structured map. Pass this directly to the import endpoint to recreate the agent. example: {} type: object required: - configs - template type: object UpgradeTemplateSummary: description: Compact summary of an AgentTemplate config referenced by an agent upgrade or source-solution response. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object MessageReaction: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object AgentUpgradeResult: description: The computed diff and outcome of an agent upgrade operation, including the full list of per-resource changes. example: changes: - action: update description: An example description. field_changes: - field: name locally_edited: true id: id_0aBcDeFgHiJkLmNoPqRsTu key: string name: Example Name parent_template_config: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string resource: {} resource_type: tool source_template_config: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string dry_run: true mode: full review_fingerprint: string status: upgraded summary: adds: 1 noops: 1 removes: 1 updates: 1 properties: changes: description: Ordered list of per-resource changes that will be (or were) applied by this upgrade. items: $ref: '#/components/schemas/AgentUpgradeChange' type: array dry_run: description: '`true` when the request was a dry run and no changes were persisted to the agent.' example: true type: boolean mode: description: Upgrade mode that was used. One of `"full"` (apply all changes) or `"review"` (require fingerprint confirmation). example: full type: string review_fingerprint: description: Opaque fingerprint of the computed diff. Pass this value back as `review_fingerprint` to confirm and apply a `"review"` mode upgrade. example: string type: string status: description: Outcome of the upgrade. `"ready"` for a dry-run (no changes applied); `"upgraded"` when the upgrade was committed. example: upgraded type: string summary: $ref: '#/components/schemas/AgentUpgradeSummary' description: Aggregate counts of adds, updates, removes, and noops across all child resources. required: - changes - dry_run - mode - status - summary type: object x-archastro-docs-scope: external x-auth-schemes: bearer: description: User JWT in Authorization header scheme: bearer type: http device_flow: description: Third-party device flow token — requires per-action opt-in scheme: bearer type: http x-token-use: third_party publishable_key: description: Publishable API key — identifies the app in: header name: x-archastro-api-key prefix: pk_ type: api_key secret_key: description: Secret API key — full admin access, no user JWT required in: header name: x-archastro-api-key prefix: sk_ type: api_key x-channel-auth: - bearer x-channels: - description: 'Channel for real-time chat messaging. Supports team-scoped and user-scoped threads with keyed, transient, and direct thread access patterns.' joins: - description: Join a team-scoped thread by ID name: join_team_thread params: example: after_cursor: string before_cursor: string include_metadata: true limit: 1 team_id: string thread_id: string properties: after_cursor: example: string type: string before_cursor: example: string type: string include_metadata: example: true type: boolean limit: example: 1 type: integer team_id: example: string type: string thread_id: example: string type: string required: - team_id - thread_id type: object pattern: api:chat:team:{team_id}:thread:{thread_id} returns: type: object - description: Join a team-scoped transient (ephemeral) thread name: join_team_transient params: example: after_cursor: string before_cursor: string include_metadata: true key: string limit: 1 team_id: string properties: after_cursor: example: string type: string before_cursor: example: string type: string include_metadata: example: true type: boolean key: example: string type: string limit: example: 1 type: integer team_id: example: string type: string required: - key - team_id type: object pattern: api:chat:team:{team_id}:transient:{key} returns: type: object - description: Join a user-scoped thread by ID name: join_user_thread params: example: after_cursor: string before_cursor: string include_metadata: true limit: 1 thread_id: string properties: after_cursor: example: string type: string before_cursor: example: string type: string include_metadata: example: true type: boolean limit: example: 1 type: integer thread_id: example: string type: string required: - thread_id type: object pattern: api:chat:user:thread:{thread_id} returns: type: object - description: Join a user-scoped transient (ephemeral) thread name: join_user_transient params: example: after_cursor: string before_cursor: string include_metadata: true key: string limit: 1 properties: after_cursor: example: string type: string before_cursor: example: string type: string include_metadata: example: true type: boolean key: example: string type: string limit: example: 1 type: integer required: - key type: object pattern: api:chat:user:transient:{key} returns: type: object - description: Join or create a team-scoped keyed thread name: join_team_keyed params: example: after_cursor: string before_cursor: string include_metadata: true key: string limit: 1 team_id: string properties: after_cursor: example: string type: string before_cursor: example: string type: string include_metadata: example: true type: boolean key: example: string type: string limit: example: 1 type: integer team_id: example: string type: string required: - key - team_id type: object pattern: api:chat:team:{team_id}:key:{key} returns: type: object - description: Join or create a user-scoped keyed thread name: join_user_keyed params: example: after_cursor: string before_cursor: string include_metadata: true key: string limit: 1 properties: after_cursor: example: string type: string before_cursor: example: string type: string include_metadata: example: true type: boolean key: example: string type: string limit: example: 1 type: integer required: - key type: object pattern: api:chat:user:key:{key} returns: type: object messages: - description: Add an emoji reaction to a message event: api:chat:add_reaction params: example: emoji: string message_id: string properties: emoji: example: string type: string message_id: example: string type: string required: - emoji - message_id type: object returns: description: 'Empty acknowledgement payload returned by channel message handlers that produce no data. The wire envelope is `{"status": "ok", "response": {}}`.' properties: {} type: object - description: Delete a message event: api:chat:delete_message params: example: message_id: string properties: message_id: example: string type: string required: - message_id type: object returns: description: 'Empty acknowledgement payload returned by channel message handlers that produce no data. The wire envelope is `{"status": "ok", "response": {}}`.' properties: {} type: object - description: Edit an existing message's content event: api:chat:edit_message params: example: content: string message_id: string properties: content: example: string type: string message_id: example: string type: string required: - content - message_id type: object returns: description: 'Empty acknowledgement payload returned by channel message handlers that produce no data. The wire envelope is `{"status": "ok", "response": {}}`.' properties: {} type: object - description: Fork a sub-thread from an existing message event: api:chat:fork_thread params: example: message_id: string title: Example Title properties: message_id: example: string type: string title: example: Example Title type: string required: - message_id type: object returns: description: Response returned after forking a chat thread. Contains the new thread, its initial chat-room snapshot, and the owning team when applicable. example: chat_model: after_cursor: string agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu before_cursor: string is_transient: true members: - agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name messages: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string messages_loaded_on_last_update: 1 team: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' thread: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu team: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' thread: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: chat_model: description: Initial chat-room render snapshot for the forked thread, including members and loaded messages. `null` for transient threads whose room model is suppressed. example: after_cursor: string agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu before_cursor: string is_transient: true members: - agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name messages: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string messages_loaded_on_last_update: 1 team: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' thread: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: after_cursor: description: Opaque cursor to pass when fetching messages newer than those in this snapshot. `null` when this snapshot already reflects the latest messages. example: string type: string agent: description: The agent associated with this chat room. `null` when no agent is attached. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object before_cursor: description: Opaque cursor to pass when fetching messages older than those in this snapshot. `null` when the beginning of the thread history has been reached. example: string type: string is_transient: description: Whether this thread is ephemeral. Transient threads are not retained in long-term storage and may be deleted when the session ends. example: true type: boolean members: description: All active members of the chat room, including both human users and agents. example: - agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name items: description: A participant in a chat thread, which may be either a human user or an AI agent. Exactly one of `user` or `agent` is populated depending on `type`. example: agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: agent: description: Full agent object for this member. Populated when `type` is `"agent"`; `null` for user members. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object membership_type: description: Role of this member within the thread. Common values are `"owner"` and `"member"`. `null` when the membership type is not applicable. example: owner type: string type: description: Kind of participant. One of `"user"` (a human user) or `"agent"` (an AI agent). example: user type: string user: description: Full user object for this member. Populated when `type` is `"user"`; `null` for agent members. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object required: - type type: object type: array messages: description: The page of messages currently loaded for the thread, ordered chronologically. Use `before_cursor` or `after_cursor` to page through additional history. example: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string items: description: A chat message posted in a thread, including its content, author, attachments, reactions, and optional reply metadata. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object type: array messages_loaded_on_last_update: description: Number of messages that were added to the snapshot in the most recent incremental update. `null` on the initial load. example: 1 type: integer team: description: The team that owns this thread. `null` for threads scoped to an individual user rather than a team. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' properties: acl: description: Access control list governing visibility and join permissions for this team. `null` when no ACL restrictions are applied and the team inherits default access rules. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the developer application this team belongs to (`dap_...`). `null` if the team is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string badges: description: Aggregated badge counts for the team, keyed by category. `null` when badge data is not loaded. example: {} type: object created_at: description: When this team was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Human-readable description of the team's purpose. `null` if not set. example: An example description. type: string id: description: Team ID (`tem_...`). example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string membership_status: description: The authenticated viewer's role on this team. One of `"owner"`, `"admin"`, or `"member"`. `null` if the viewer is not a member. example: member type: string metadata: description: Arbitrary key-value metadata attached to this team. Returns an empty object when no metadata has been set. example: key: value type: object name: description: Display name of the team. example: Example Name type: string org: description: ID of the organization this team belongs to (`org_...`). `null` if the team is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox: description: ID of the developer sandbox this team is scoped to (`dsb_...`). `null` outside sandbox contexts. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string slug: description: URL-safe slug for the team, derived from the team name. `null` if not set. example: example-slug type: string updated_at: description: When this team was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object thread: description: The parent thread whose message history and membership this snapshot represents. example: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: agent_user: description: ID of the agent that owns this thread (`agt_...`). `null` for user-owned or team-owned threads. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the thread was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string creator: description: Expanded user object for the user who created this thread. Populated only when the association is loaded. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object description: description: Optional description or purpose statement for the thread. `null` if not set. example: An example description. type: string id: description: Thread ID (`thr_...`). example: string type: string is_channel: description: Whether this thread operates as a channel — a multi-member broadcast-style conversation. example: true type: boolean is_default: description: Whether this is the default thread for its owner. Each user or team has at most one default thread. example: true type: boolean is_transient: description: Whether this thread is ephemeral and may be deleted automatically after a period of inactivity or when its TTL expires. example: true type: boolean is_unlisted: description: Whether this thread is hidden from public discovery. Unlisted threads are accessible only to direct participants. example: true type: boolean key: description: Application-defined stable key that uniquely identifies the thread within its scope. Useful for idempotent creation. `null` if not set. example: string type: string last_activity: description: When the last message or activity occurred in this thread. Present only when activity enrichment is requested. example: '2024-01-01T00:00:00Z' format: date-time type: string metadata: description: Arbitrary key-value metadata attached to the thread. Shape is application-defined; `null` if no metadata has been set. example: key: value type: object muted: description: Whether the authenticated user has muted notifications for this thread. `true` suppresses all notification delivery. example: true type: boolean org: description: ID of the organization this thread belongs to (`org_...`). `null` for threads outside an org context. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string parent_message: description: The message that spawned this thread as a sub-thread. `null` for top-level threads. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object participant: description: Array of participant user IDs (`usr_...`) who are members of this thread. example: - string items: type: string type: array participants: description: Expanded participant user objects for each member of this thread. Populated only when the association is loaded. example: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name items: description: A platform user account. Represents a human or system actor that can own threads, belong to an organization, and interact with the API. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object type: array participating_actor: description: Composite actor identifiers for all participants currently active in this thread. Present only when actor enrichment is requested. example: - string items: type: string type: array participating_agents: description: Expanded agent objects for all agents participating in this thread. Present only when agent enrichment is requested. example: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu items: description: An AI agent that can be configured with tools, routines, and skills, and invoked to handle conversations or tasks. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object type: array role: description: The authenticated user's membership role in this thread, e.g. `"owner"`, `"member"`, or `"viewer"`. `null` if the user is not a member. example: member type: string sandbox: description: ID of the developer sandbox this thread is scoped to (`sbx_...`). `null` for production threads. example: string type: string settings: description: Per-thread configuration settings controlling AI agent behavior for this thread. example: agent_enabled: true properties: agent_enabled: description: Whether the AI agent is active for this thread. `true` enables AI responses; `false` disables them. Defaults to `true` when settings have not been explicitly configured. example: true type: boolean type: object slug: description: URL-safe slug for the thread, used in human-readable permalinks. `null` if not assigned. example: example-slug type: string sub_threads: description: Threads that are nested under this thread as replies to a parent message. Present only when sub-thread enrichment is requested. example: - {} items: type: object type: array team: description: ID of the team that owns this thread (`team_...`). `null` for user-owned or agent-owned threads. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string title: description: Human-readable name of the thread. `null` if no title has been set. example: Example Title type: string ttl: description: Time-to-live in seconds after which the thread may be automatically cleaned up. `null` if the thread does not expire. example: 3600 type: integer unread_count: description: Number of messages in this thread that the authenticated user has not yet read. Present only when read-state enrichment is requested. example: 5 type: integer updated_at: description: When the thread was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user who owns this thread (`usr_...`). `null` for team-owned or agent-owned threads. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object required: - is_transient - members - messages - thread type: object team: description: Team that owns the forked thread. Present only when the original thread was team-scoped; `null` for personal threads. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' properties: acl: description: Access control list governing visibility and join permissions for this team. `null` when no ACL restrictions are applied and the team inherits default access rules. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the developer application this team belongs to (`dap_...`). `null` if the team is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string badges: description: Aggregated badge counts for the team, keyed by category. `null` when badge data is not loaded. example: {} type: object created_at: description: When this team was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Human-readable description of the team's purpose. `null` if not set. example: An example description. type: string id: description: Team ID (`tem_...`). example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string membership_status: description: The authenticated viewer's role on this team. One of `"owner"`, `"admin"`, or `"member"`. `null` if the viewer is not a member. example: member type: string metadata: description: Arbitrary key-value metadata attached to this team. Returns an empty object when no metadata has been set. example: key: value type: object name: description: Display name of the team. example: Example Name type: string org: description: ID of the organization this team belongs to (`org_...`). `null` if the team is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox: description: ID of the developer sandbox this team is scoped to (`dsb_...`). `null` outside sandbox contexts. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string slug: description: URL-safe slug for the team, derived from the team name. `null` if not set. example: example-slug type: string updated_at: description: When this team was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object thread: description: The newly-created thread produced by the fork operation. example: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: agent_user: description: ID of the agent that owns this thread (`agt_...`). `null` for user-owned or team-owned threads. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the thread was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string creator: description: Expanded user object for the user who created this thread. Populated only when the association is loaded. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object description: description: Optional description or purpose statement for the thread. `null` if not set. example: An example description. type: string id: description: Thread ID (`thr_...`). example: string type: string is_channel: description: Whether this thread operates as a channel — a multi-member broadcast-style conversation. example: true type: boolean is_default: description: Whether this is the default thread for its owner. Each user or team has at most one default thread. example: true type: boolean is_transient: description: Whether this thread is ephemeral and may be deleted automatically after a period of inactivity or when its TTL expires. example: true type: boolean is_unlisted: description: Whether this thread is hidden from public discovery. Unlisted threads are accessible only to direct participants. example: true type: boolean key: description: Application-defined stable key that uniquely identifies the thread within its scope. Useful for idempotent creation. `null` if not set. example: string type: string last_activity: description: When the last message or activity occurred in this thread. Present only when activity enrichment is requested. example: '2024-01-01T00:00:00Z' format: date-time type: string metadata: description: Arbitrary key-value metadata attached to the thread. Shape is application-defined; `null` if no metadata has been set. example: key: value type: object muted: description: Whether the authenticated user has muted notifications for this thread. `true` suppresses all notification delivery. example: true type: boolean org: description: ID of the organization this thread belongs to (`org_...`). `null` for threads outside an org context. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string parent_message: description: The message that spawned this thread as a sub-thread. `null` for top-level threads. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object participant: description: Array of participant user IDs (`usr_...`) who are members of this thread. example: - string items: type: string type: array participants: description: Expanded participant user objects for each member of this thread. Populated only when the association is loaded. example: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name items: description: A platform user account. Represents a human or system actor that can own threads, belong to an organization, and interact with the API. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object type: array participating_actor: description: Composite actor identifiers for all participants currently active in this thread. Present only when actor enrichment is requested. example: - string items: type: string type: array participating_agents: description: Expanded agent objects for all agents participating in this thread. Present only when agent enrichment is requested. example: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu items: description: An AI agent that can be configured with tools, routines, and skills, and invoked to handle conversations or tasks. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object type: array role: description: The authenticated user's membership role in this thread, e.g. `"owner"`, `"member"`, or `"viewer"`. `null` if the user is not a member. example: member type: string sandbox: description: ID of the developer sandbox this thread is scoped to (`sbx_...`). `null` for production threads. example: string type: string settings: description: Per-thread configuration settings controlling AI agent behavior for this thread. example: agent_enabled: true properties: agent_enabled: description: Whether the AI agent is active for this thread. `true` enables AI responses; `false` disables them. Defaults to `true` when settings have not been explicitly configured. example: true type: boolean type: object slug: description: URL-safe slug for the thread, used in human-readable permalinks. `null` if not assigned. example: example-slug type: string sub_threads: description: Threads that are nested under this thread as replies to a parent message. Present only when sub-thread enrichment is requested. example: - {} items: type: object type: array team: description: ID of the team that owns this thread (`team_...`). `null` for user-owned or agent-owned threads. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string title: description: Human-readable name of the thread. `null` if no title has been set. example: Example Title type: string ttl: description: Time-to-live in seconds after which the thread may be automatically cleaned up. `null` if the thread does not expire. example: 3600 type: integer unread_count: description: Number of messages in this thread that the authenticated user has not yet read. Present only when read-state enrichment is requested. example: 5 type: integer updated_at: description: When the thread was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user who owns this thread (`usr_...`). `null` for team-owned or agent-owned threads. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object required: - thread type: object - description: List all messages in the current thread event: api:chat:list_messages params: properties: {} type: object returns: description: Response returned when listing the messages of a joined chat thread. Contains the set of messages currently loaded for the thread. example: messages: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: messages: description: Ordered array of message objects currently loaded for the thread, from oldest to newest. Use the `load_more_messages` channel message to fetch earlier pages. example: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string items: description: A chat message posted in a thread, including its content, author, attachments, reactions, and optional reply metadata. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object type: array required: - messages type: object - description: Load additional messages with cursor-based pagination event: api:chat:load_more_messages params: example: after_cursor: string before_cursor: string include_metadata: true limit: 1 properties: after_cursor: example: string type: string before_cursor: example: string type: string include_metadata: example: true type: boolean limit: example: 1 type: integer type: object returns: description: Response returned after loading an additional page of chat messages. Contains a refreshed chat-room snapshot with the newly-fetched messages merged in. example: data: after_cursor: string agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu before_cursor: string is_transient: true members: - agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name messages: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string messages_loaded_on_last_update: 1 team: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' thread: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: data: description: Updated chat-room snapshot for the thread, incorporating the newly-loaded page of messages alongside any previously loaded messages. example: after_cursor: string agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu before_cursor: string is_transient: true members: - agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name messages: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string messages_loaded_on_last_update: 1 team: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' thread: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: after_cursor: description: Opaque cursor to pass when fetching messages newer than those in this snapshot. `null` when this snapshot already reflects the latest messages. example: string type: string agent: description: The agent associated with this chat room. `null` when no agent is attached. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object before_cursor: description: Opaque cursor to pass when fetching messages older than those in this snapshot. `null` when the beginning of the thread history has been reached. example: string type: string is_transient: description: Whether this thread is ephemeral. Transient threads are not retained in long-term storage and may be deleted when the session ends. example: true type: boolean members: description: All active members of the chat room, including both human users and agents. example: - agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name items: description: A participant in a chat thread, which may be either a human user or an AI agent. Exactly one of `user` or `agent` is populated depending on `type`. example: agent: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu membership_type: owner type: user user: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: agent: description: Full agent object for this member. Populated when `type` is `"agent"`; `null` for user members. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object membership_type: description: Role of this member within the thread. Common values are `"owner"` and `"member"`. `null` when the membership type is not applicable. example: owner type: string type: description: Kind of participant. One of `"user"` (a human user) or `"agent"` (an AI agent). example: user type: string user: description: Full user object for this member. Populated when `type` is `"user"`; `null` for agent members. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object required: - type type: object type: array messages: description: The page of messages currently loaded for the thread, ordered chronologically. Use `before_cursor` or `after_cursor` to page through additional history. example: - actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string items: description: A chat message posted in a thread, including its content, author, attachments, reactions, and optional reply metadata. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object type: array messages_loaded_on_last_update: description: Number of messages that were added to the snapshot in the most recent incremental update. `null` on the initial load. example: 1 type: integer team: description: The team that owns this thread. `null` for threads scoped to an individual user rather than a team. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu badges: {} created_at: '2024-01-01T00:00:00Z' description: An example description. id: tem_0aBcDeFgHiJkLmNoPqRsTu membership_status: member metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu slug: example-slug updated_at: '2024-01-01T00:00:00Z' properties: acl: description: Access control list governing visibility and join permissions for this team. `null` when no ACL restrictions are applied and the team inherits default access rules. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the developer application this team belongs to (`dap_...`). `null` if the team is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string badges: description: Aggregated badge counts for the team, keyed by category. `null` when badge data is not loaded. example: {} type: object created_at: description: When this team was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Human-readable description of the team's purpose. `null` if not set. example: An example description. type: string id: description: Team ID (`tem_...`). example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string membership_status: description: The authenticated viewer's role on this team. One of `"owner"`, `"admin"`, or `"member"`. `null` if the viewer is not a member. example: member type: string metadata: description: Arbitrary key-value metadata attached to this team. Returns an empty object when no metadata has been set. example: key: value type: object name: description: Display name of the team. example: Example Name type: string org: description: ID of the organization this team belongs to (`org_...`). `null` if the team is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox: description: ID of the developer sandbox this team is scoped to (`dsb_...`). `null` outside sandbox contexts. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string slug: description: URL-safe slug for the team, derived from the team name. `null` if not set. example: example-slug type: string updated_at: description: When this team was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string required: - id type: object thread: description: The parent thread whose message history and membership this snapshot represents. example: agent_user: agi_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' creator: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name description: An example description. id: string is_channel: true is_default: true is_transient: true is_unlisted: true key: string last_activity: '2024-01-01T00:00:00Z' metadata: key: value muted: true org: org_0aBcDeFgHiJkLmNoPqRsTu parent_message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string participant: - string participants: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name participating_actor: - string participating_agents: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu role: member sandbox: string settings: agent_enabled: true slug: example-slug sub_threads: - {} team: tem_0aBcDeFgHiJkLmNoPqRsTu title: Example Title ttl: 3600 unread_count: 5 updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: agent_user: description: ID of the agent that owns this thread (`agt_...`). `null` for user-owned or team-owned threads. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the thread was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string creator: description: Expanded user object for the user who created this thread. Populated only when the association is loaded. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object description: description: Optional description or purpose statement for the thread. `null` if not set. example: An example description. type: string id: description: Thread ID (`thr_...`). example: string type: string is_channel: description: Whether this thread operates as a channel — a multi-member broadcast-style conversation. example: true type: boolean is_default: description: Whether this is the default thread for its owner. Each user or team has at most one default thread. example: true type: boolean is_transient: description: Whether this thread is ephemeral and may be deleted automatically after a period of inactivity or when its TTL expires. example: true type: boolean is_unlisted: description: Whether this thread is hidden from public discovery. Unlisted threads are accessible only to direct participants. example: true type: boolean key: description: Application-defined stable key that uniquely identifies the thread within its scope. Useful for idempotent creation. `null` if not set. example: string type: string last_activity: description: When the last message or activity occurred in this thread. Present only when activity enrichment is requested. example: '2024-01-01T00:00:00Z' format: date-time type: string metadata: description: Arbitrary key-value metadata attached to the thread. Shape is application-defined; `null` if no metadata has been set. example: key: value type: object muted: description: Whether the authenticated user has muted notifications for this thread. `true` suppresses all notification delivery. example: true type: boolean org: description: ID of the organization this thread belongs to (`org_...`). `null` for threads outside an org context. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string parent_message: description: The message that spawned this thread as a sub-thread. `null` for top-level threads. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object participant: description: Array of participant user IDs (`usr_...`) who are members of this thread. example: - string items: type: string type: array participants: description: Expanded participant user objects for each member of this thread. Populated only when the association is loaded. example: - alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name items: description: A platform user account. Represents a human or system actor that can own threads, belong to an organization, and interact with the API. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object type: array participating_actor: description: Composite actor identifiers for all participants currently active in this thread. Present only when actor enrichment is requested. example: - string items: type: string type: array participating_agents: description: Expanded agent objects for all agents participating in this thread. Present only when agent enrichment is requested. example: - acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu items: description: An AI agent that can be configured with tools, routines, and skills, and invoked to handle conversations or tasks. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object type: array role: description: The authenticated user's membership role in this thread, e.g. `"owner"`, `"member"`, or `"viewer"`. `null` if the user is not a member. example: member type: string sandbox: description: ID of the developer sandbox this thread is scoped to (`sbx_...`). `null` for production threads. example: string type: string settings: description: Per-thread configuration settings controlling AI agent behavior for this thread. example: agent_enabled: true properties: agent_enabled: description: Whether the AI agent is active for this thread. `true` enables AI responses; `false` disables them. Defaults to `true` when settings have not been explicitly configured. example: true type: boolean type: object slug: description: URL-safe slug for the thread, used in human-readable permalinks. `null` if not assigned. example: example-slug type: string sub_threads: description: Threads that are nested under this thread as replies to a parent message. Present only when sub-thread enrichment is requested. example: - {} items: type: object type: array team: description: ID of the team that owns this thread (`team_...`). `null` for user-owned or agent-owned threads. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string title: description: Human-readable name of the thread. `null` if no title has been set. example: Example Title type: string ttl: description: Time-to-live in seconds after which the thread may be automatically cleaned up. `null` if the thread does not expire. example: 3600 type: integer unread_count: description: Number of messages in this thread that the authenticated user has not yet read. Present only when read-state enrichment is requested. example: 5 type: integer updated_at: description: When the thread was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user who owns this thread (`usr_...`). `null` for team-owned or agent-owned threads. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object required: - is_transient - members - messages - thread type: object required: - data type: object - description: Mark a thread as read up to a given message event: api:chat:mark_thread_read params: example: message_id: string properties: message_id: example: string type: string required: - message_id type: object returns: description: Response returned after marking a chat thread as read. Confirms that the read marker was successfully recorded for the authenticated user. example: success: true properties: success: description: Indicates whether the read marker was successfully applied. Always `true` on success; errors are returned as channel error replies rather than a `false` value here. example: true type: boolean required: - success type: object - description: Post a new message with optional uploads and reply-to event: api:chat:post_message params: example: content: string idempotency_key: string reply_to: string uploads: - {} properties: content: example: string type: string idempotency_key: example: string type: string reply_to: example: string type: string uploads: example: - {} items: type: object type: array required: - content type: object returns: description: Response returned after successfully posting a message to a chat thread. Contains the persisted message object echoed back to the sender. example: message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: message: description: The message that was created and stored. Contains the full message object including its assigned ID, author, content, and timestamps. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object required: - message type: object - description: Post a simple text message event: api:chat:post_simple_message params: example: content: string idempotency_key: string reply_to: string properties: content: example: string type: string idempotency_key: example: string type: string reply_to: example: string type: string type: object returns: description: Response returned after successfully posting a message to a chat thread. Contains the persisted message object echoed back to the sender. example: message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: message: description: The message that was created and stored. Contains the full message object including its assigned ID, author, content, and timestamps. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object required: - message type: object - description: Remove an emoji reaction from a message event: api:chat:remove_reaction params: example: emoji: string message_id: string properties: emoji: example: string type: string message_id: example: string type: string required: - emoji - message_id type: object returns: description: 'Empty acknowledgement payload returned by channel message handlers that produce no data. The wire envelope is `{"status": "ok", "response": {}}`.' properties: {} type: object name: ApiChatChannel pushes: - description: Broadcast system-wide events event: system_event payload: example: event: {} properties: event: example: {} type: object type: object - description: Broadcast thread-level events (agent updates, read state, unread counts) event: thread_event payload: example: payload: {} thread_id: string type: string properties: payload: example: {} type: object thread_id: example: string type: string type: example: string type: string type: object - description: Broadcast when a message is updated or removed event: message_updated payload: example: message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string thread_id: string properties: message: description: A chat message posted in a thread, including its content, author, attachments, reactions, and optional reply metadata. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object thread_id: example: string type: string type: object - description: Broadcast when a new message is added to a thread event: message_added payload: example: after_cursor: string before_cursor: string message: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string thread_id: string properties: after_cursor: example: string type: string before_cursor: example: string type: string message: description: A chat message posted in a thread, including its content, author, attachments, reactions, and optional reply metadata. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string properties: actors: description: Resolved actor descriptors for the message sender, combining identity and display metadata. Always contains exactly one entry. example: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 items: description: The entity that authored a message, either a human user or an agent. example: alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: alias: description: Short handle or alias for the actor, used as an alternate display identifier. `null` if not configured. example: alice type: string id: description: Composite actor identifier. Format is `"user-"` for human users or `"agent-"` for agents. example: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 type: string name: description: Display name of the actor shown in the UI. `null` if no name is set. example: Example Name type: string profile_picture: description: Profile picture for the actor. `null` if the actor has no profile picture. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object type: object type: array agent: description: ID of the agent user that sent this message (`agi_...`). `null` for messages sent by human users. example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Files, links, tasks, media, artifacts, and actions attached to this message. Empty array if there are no attachments. example: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 items: description: A rich attachment associated with a message, such as a file, scraped link, artifact, task, media item, or inline action. example: content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 properties: content_type: description: MIME type of the attached file, e.g. `"image/png"` or `"application/pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: application/json type: string description: description: Short description. The page meta-description for `scraped_link`, the artifact description for `artifact`, and the task description for `task` types. `null` on other types. example: An example description. type: string filename: description: Original filename of the attached file, e.g. `"report.pdf"`. Present on `file`, `artifact`, and `media` types. `null` otherwise. example: string type: string height: description: Height in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer id: description: Unique identifier for this attachment within the message. example: string type: string image_height: description: Height in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer image_source: description: Image source metadata for inline rendering. Present on `file`, `scraped_link`, `artifact`, and `media` types when the content is an image. `null` otherwise. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object image_url: description: URL of the preview image extracted from the scraped page. Present on `scraped_link` type only. `null` otherwise. example: https://example.com type: string image_width: description: Width in pixels of the scraped preview image. Present on `scraped_link` type only. `null` otherwise. example: 1 type: integer media_type: description: The media category, e.g. `"video"` or `"audio"`. Present on `media` type only. `null` otherwise. example: application/json type: string name: description: Display name of the media item. Present on `media` type only. `null` otherwise. example: Example Name type: string object: description: The full embedded object payload. For `task` type, contains the task record. For `action` type, contains the action definition. `null` on other types. example: {} type: object title: description: Display title. The page title for `scraped_link`, the artifact name for `artifact`, and the task title for `task` types. `null` on other types. example: Example Title type: string type: description: The attachment type. One of `"file"`, `"scraped_link"`, `"artifact"`, `"task"`, `"media"`, or `"action"`. Determines which additional fields are present. example: file type: string url: description: URL to access the resource. A signed download URL for `file` and `artifact` types; the original URL for `scraped_link`; a media playback URL for `media`. `null` on `task` and `action` types. example: https://example.com type: string variants: description: Array of available encoding variants for the media item (e.g. different resolutions). Present on `media` type only. `null` otherwise. example: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 items: description: A processed variant of a media item, such as the original upload or a resized thumbnail, including a signed download URL resolved at request time. example: content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 properties: content_type: description: MIME type of this variant's file (e.g., `"image/jpeg"`, `"video/mp4"`). `null` if the file is not loaded. example: application/json type: string created_at: description: When this variant was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string file: description: ID of the underlying storage file that backs this variant (`fil_...`). example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string filename: description: Original filename of the uploaded file for this variant. `null` if the file is not loaded. example: string type: string height: description: Height of this variant in pixels. `null` if not recorded. example: 600 type: integer id: description: Media variant ID (`mvr_...`). example: mvr_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Resolved image delivery metadata for this variant, including dimensions and CDN URL. `null` for non-image content types. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object updated_at: description: When this variant was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string url: description: Signed download URL for this variant, resolved at request time. `null` if the file is unavailable. example: https://example.com type: string variant_key: description: Identifier for this variant's processing tier. Common values include `"original"` (the unmodified upload) and `"thumbnail"` (a resized preview). example: original type: string width: description: Width of this variant in pixels. `null` if not recorded. example: 800 type: integer required: - id type: object type: array version: description: Version number of the attached artifact at the time of attachment. Present on `artifact` type only. `null` otherwise. example: 1 type: integer width: description: Width in pixels of the media item. Present on `media` type only. `null` otherwise. example: 1 type: integer required: - id - type type: object type: array branched_thread: description: ID of the thread that was branched from this message (`thr_...`). `null` if this message has not spawned a branch thread. example: string type: string content: description: Text content of the message. `null` for messages that contain only attachments. example: Hello, how can I help you today? type: string created_at: description: When the message was posted (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string has_replies: description: Whether this message has at least one reply. Only present when explicitly requested or computed by the server. example: true type: boolean id: description: Message ID (`msg_...`). example: msg_0aBcDeFgHiJkLmNoPqRsTu type: string idempotency_key: description: Client-supplied idempotency key used to deduplicate message sends. `null` if the sender did not provide one. example: 01234567-89ab-cdef-0123-456789abcdef type: string legacy_agent: description: Identifier of the legacy chat agent that sent this message, if applicable. `null` for messages sent by users or modern agent users. example: string type: string metadata: description: Arbitrary key-value metadata attached to the message. Always present; defaults to an empty object when no metadata has been set. example: key: value type: object org: description: ID of the organization that owns this message (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string reactions: description: Emoji and other reactions added to this message by users. Empty array if no reactions have been added or the association is not preloaded. example: - payload: key: value type: emoji_reaction user: string items: description: A compact reaction record embedded in a message's `reactions` array, representing a single user's reaction to a message. example: payload: key: value type: emoji_reaction user: string properties: payload: description: Type-specific reaction data. For `"emoji_reaction"` reactions, contains an `emoji` key with the Unicode emoji string (e.g., `"👍"`). example: key: value type: object type: description: Reaction type identifier. Currently always `"emoji_reaction"` for emoji-based reactions. example: emoji_reaction type: string user: description: Public ID of the user who added the reaction (`usr_...`). example: string type: string required: - type type: object type: array rendering_mode: description: Display hint for how the message should be rendered. One of `"reply"`, `"direct"`, or `"inline"`. `null` for user-authored messages, which are always rendered as standard replies. example: reply type: string replies: description: Inline array of reply messages, each serialized as a full message object. Only present when the server has preloaded replies for this message. example: - {} items: type: object type: array replies_after_cursor: description: Opaque pagination cursor to fetch replies posted after the current page. Only present when inline replies are included in the response. example: string type: string replies_before_cursor: description: Opaque pagination cursor to fetch replies posted before the current page. Only present when inline replies are included in the response. example: string type: string reply_count: description: Total number of direct replies to this message. Only present when explicitly requested or computed by the server. example: 1 type: integer reply_to: description: The parent message this message is a reply to, expanded as a full message object when loaded. `null` if this is a top-level message or the association is not preloaded. example: actors: - alias: alice id: user-usr_01j3k5m7n9p2r4s6t8v0w1x2 name: Example Name profile_picture: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 agent: agi_0aBcDeFgHiJkLmNoPqRsTu attachments: - content_type: application/json description: An example description. filename: string height: 1 id: string image_height: 1 image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 image_url: https://example.com image_width: 1 media_type: application/json name: Example Name object: {} title: Example Title type: file url: https://example.com variants: - content_type: application/json created_at: '2024-01-01T00:00:00Z' file: fil_0aBcDeFgHiJkLmNoPqRsTu filename: string height: 600 id: mvr_0aBcDeFgHiJkLmNoPqRsTu image_source: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 updated_at: '2024-01-01T00:00:00Z' url: https://example.com variant_key: original width: 800 version: 1 width: 1 branched_thread: string content: Hello, how can I help you today? created_at: '2024-01-01T00:00:00Z' has_replies: true id: msg_0aBcDeFgHiJkLmNoPqRsTu idempotency_key: 01234567-89ab-cdef-0123-456789abcdef legacy_agent: string metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu reactions: - payload: key: value type: emoji_reaction user: string rendering_mode: reply replies: - {} replies_after_cursor: string replies_before_cursor: string reply_count: 1 reply_to: {} sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: string user: string type: object sandbox: description: ID of the developer sandbox this message belongs to (`dsb_...`). `null` for non-sandbox messages. example: string type: string team: description: ID of the team this message is scoped to (`tem_...`). `null` if the message is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this message belongs to (`thr_...`). `null` for messages not yet associated with a thread. example: string type: string user: description: The human user who sent this message. Returns a public ID string (`usr_...`) when the association is not preloaded, or an expanded user object when it is. `null` for messages sent by agents. example: string type: string required: - id type: object thread_id: example: string type: string type: object x-auth: - bearer - description: 'Channel for real-time custom object collaboration. Clients join `api:object:{object_id}` to receive the current object state and subscribe to field-level updates. Mutations are sent as key:value maps.' joins: - description: null name: join_by_id params: example: object_id: string properties: object_id: example: string type: string required: - object_id type: object pattern: api:object:{object_id} returns: type: object - description: null name: join_by_row_key params: example: row_key: string schema_type: string properties: row_key: example: string type: string schema_type: example: string type: string required: - row_key - schema_type type: object pattern: api:object:{schema_type}:{row_key} returns: type: object messages: - description: null event: save params: properties: {} type: object returns: description: 'Empty acknowledgement payload returned by channel message handlers that produce no data. The wire envelope is `{"status": "ok", "response": {}}`.' properties: {} type: object - description: null event: update_fields params: example: fields: {} properties: fields: example: {} type: object required: - fields type: object returns: description: Response returned after updating one or more fields on a custom object. Confirms the object that was modified and the field values that were applied. example: fields: key: value id: cobj_0aBcDeFgHiJkLmNoPqRsTu properties: fields: description: Map of field names to their new values as applied during the update. Only the fields that were included in the update request are present. example: key: value type: object id: description: ID of the custom object that was updated (`cobj_...`). example: cobj_0aBcDeFgHiJkLmNoPqRsTu type: string required: - fields - id type: object name: ApiObjectChannel pushes: - description: null event: object_created payload: example: fields: {} id: string properties: fields: example: {} type: object id: example: string type: string type: object - description: null event: object_updated payload: example: fields: {} id: string properties: fields: example: {} type: object id: example: string type: string type: object x-auth: - bearer - description: "Phoenix channel for real-time activity feed updates.\n\nClients join a topic scoped to an agent or org and receive\n`new_entry` events as feed entries are created.\n\n## Topics\n\n * `\"api:activity_feed:agent:{agent_user_id}\"` — entries for a specific agent\n * `\"api:activity_feed:org:{org_id}\"` — entries for an entire org/tenant" joins: - description: Join an agent-scoped activity feed name: join_agent params: example: agent_id: string properties: agent_id: example: string type: string required: - agent_id type: object pattern: api:activity_feed:agent:{agent_id} returns: type: object - description: Join an org-scoped activity feed name: join_org params: example: org_id: string properties: org_id: example: string type: string required: - org_id type: object pattern: api:activity_feed:org:{org_id} returns: type: object messages: - description: List activity feed entries with cursor-based pagination event: list_entries params: example: after_cursor: string before_cursor: string kind: string level: string limit: 1 properties: after_cursor: example: string type: string before_cursor: example: string type: string kind: example: string type: string level: example: string type: string limit: example: 1 type: integer type: object returns: description: A paginated list of activity feed entries returned by a feed query, with cursors for navigating backward and forward through results. example: after_cursor: string before_cursor: string entries: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu attachments: - {} automation_run: atr_0aBcDeFgHiJkLmNoPqRsTu content: The agent completed the task successfully. correlation_id: 01234567-89ab-cdef-0123-456789abcdef created_at: '2024-01-01T00:00:00Z' id: afe_0aBcDeFgHiJkLmNoPqRsTu kind: agent_step level: info metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu routine_run: arr_0aBcDeFgHiJkLmNoPqRsTu sandbox: string session_record: ase_0aBcDeFgHiJkLmNoPqRsTu team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: thr_0aBcDeFgHiJkLmNoPqRsTu title: Example Title updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu has_more: true properties: after_cursor: description: Opaque cursor to pass as `after` to retrieve the next page of entries. `null` when this is the last page. example: string type: string before_cursor: description: Opaque cursor to pass as `before` to retrieve the previous page of entries. `null` when this is the first page. example: string type: string entries: description: Array of activity feed entry objects for the current page, ordered by time descending. example: - agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu attachments: - {} automation_run: atr_0aBcDeFgHiJkLmNoPqRsTu content: The agent completed the task successfully. correlation_id: 01234567-89ab-cdef-0123-456789abcdef created_at: '2024-01-01T00:00:00Z' id: afe_0aBcDeFgHiJkLmNoPqRsTu kind: agent_step level: info metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu routine_run: arr_0aBcDeFgHiJkLmNoPqRsTu sandbox: string session_record: ase_0aBcDeFgHiJkLmNoPqRsTu team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: thr_0aBcDeFgHiJkLmNoPqRsTu title: Example Title updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu items: description: A single event record in an activity feed, capturing what happened, who caused it, and which resources were involved. example: agent: agi_0aBcDeFgHiJkLmNoPqRsTu app: dap_0aBcDeFgHiJkLmNoPqRsTu attachments: - {} automation_run: atr_0aBcDeFgHiJkLmNoPqRsTu content: The agent completed the task successfully. correlation_id: 01234567-89ab-cdef-0123-456789abcdef created_at: '2024-01-01T00:00:00Z' id: afe_0aBcDeFgHiJkLmNoPqRsTu kind: agent_step level: info metadata: key: value org: org_0aBcDeFgHiJkLmNoPqRsTu routine_run: arr_0aBcDeFgHiJkLmNoPqRsTu sandbox: string session_record: ase_0aBcDeFgHiJkLmNoPqRsTu team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: thr_0aBcDeFgHiJkLmNoPqRsTu title: Example Title updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: agent: description: The agent that produced this event. Returns an agent ID (`agi_...`) by default, or an expanded agent object when the association is loaded. `null` if no agent is associated. example: agi_0aBcDeFgHiJkLmNoPqRsTu oneOf: - description: An AI agent that can be configured with tools, routines, and skills, and invoked to handle conversations or tasks. example: acl: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user app: dap_0aBcDeFgHiJkLmNoPqRsTu created_at: '2024-01-01T00:00:00Z' default_model: claude-3-7-sonnet-latest email: user@example.com id: agi_0aBcDeFgHiJkLmNoPqRsTu identity: You are a helpful assistant that answers questions about ArchAstro products. last_applied_template_config: cfg_0aBcDeFgHiJkLmNoPqRsTu lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name originator: deploy-pipeline phone_number: '+15555550123' sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu source_solution: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu properties: acl: description: Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope. example: add: - actions: - read - write principal: string principal_type: user grants: - actions: - read - write principal: string principal_type: user remove: - principal: string principal_type: user properties: add: description: 'Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array grants: description: 'Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.' example: - actions: - read - write principal: string principal_type: user items: description: A single access-control grant that pairs a principal with the set of actions it is allowed to perform. example: actions: - read - write principal: string principal_type: user properties: actions: description: Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry. example: - read - write items: type: string type: array principal: description: The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - actions - principal_type type: object type: array remove: description: 'Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.' example: - principal: string principal_type: user items: description: Identifies a principal to be removed from an access-control list. example: principal: string principal_type: user properties: principal: description: The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`. example: string type: string principal_type: description: The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`. example: user type: string required: - principal_type type: object type: array type: object app: description: ID of the application that owns this agent (`dap_...`). example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string created_at: description: When the agent was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string default_model: description: Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`). example: claude-3-7-sonnet-latest type: string email: description: Email address provisioned for this agent. `null` if email delivery is not configured. example: user@example.com type: string id: description: Agent ID (`agi_...`). example: agi_0aBcDeFgHiJkLmNoPqRsTu type: string identity: description: System-level identity prompt that shapes the agent's persona and behavior. example: You are a helpful assistant that answers questions about ArchAstro products. type: string last_applied_template_config: description: ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents. example: cfg_0aBcDeFgHiJkLmNoPqRsTu type: string lookup_key: description: Stable, user-defined identifier for this agent within the application. Unique per app. example: string type: string metadata: description: Arbitrary key-value metadata attached to the agent. Not interpreted by the platform. example: key: value type: object name: description: Human-readable display name for the agent. `null` if not set. example: Example Name type: string org: description: ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded. example: Example Name type: string originator: description: Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name). example: deploy-pipeline type: string phone_number: description: Phone number provisioned for this agent. `null` if SMS is not configured. example: '+15555550123' type: string sandbox: description: ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string source_solution: description: Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints. example: solution: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string template: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: solution: description: Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution. example: category_keys: - string created_at: '2024-01-01T00:00:00Z' description: An example description. id: id_0aBcDeFgHiJkLmNoPqRsTu kind: Solution latest_solution: id_0aBcDeFgHiJkLmNoPqRsTu latest_version: 1.0.0 lookup_key: string metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_logo: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 org_name: Example Name org_slug: example-slug owners: - string readme_url: https://example.com solution_id: 01234567-89ab-cdef-0123-456789abcdef solution_version: 1.2.0 tag_keys: - string template_kind: AgentTemplate templates: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string updated_at: '2024-01-01T00:00:00Z' upgrade_available: true virtual_path: string properties: category_keys: description: Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none. example: - string items: type: string type: array created_at: description: When the Solution config was first imported (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one. example: An example description. type: string id: description: Solution config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Resource type. Always `"Solution"`. example: Solution type: string latest_solution: description: When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string latest_version: description: When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise. example: 1.0.0 type: string lookup_key: description: The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set. example: string type: string metadata: description: Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none. example: key: value type: object name: description: Human-facing display name declared in the Solution body. `null` when the Solution body does not set one. example: Example Name type: string org: description: Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_logo: description: Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo. example: file: fil_0aBcDeFgHiJkLmNoPqRsTu height: 600 media: med_0aBcDeFgHiJkLmNoPqRsTu mime_type: application/json refresh_url: https://example.com url: https://example.com width: 800 properties: file: description: ID of the underlying storage file (`fil_...`). `null` when the image is not backed by a platform storage file. example: fil_0aBcDeFgHiJkLmNoPqRsTu type: string height: description: Height of the image in pixels. `null` if not known. example: 600 type: integer media: description: ID of the associated media record (`med_...`). `null` when the image is not linked to a media entity. example: med_0aBcDeFgHiJkLmNoPqRsTu type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. `null` if not known. example: application/json type: string refresh_url: description: Endpoint URL you can call to obtain a fresh signed `url` when the current one has expired. `null` if the URL does not require refreshing. example: https://example.com type: string url: description: Signed or public URL for downloading the image. May be time-limited; use `refresh_url` to obtain a new URL when this one expires. example: https://example.com type: string width: description: Width of the image in pixels. `null` if not known. example: 800 type: integer type: object org_name: description: Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`. example: Example Name type: string org_slug: description: Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve. example: example-slug type: string owners: description: 'Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer''s org scope).' example: - string items: type: string type: array readme_url: description: Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string solution_id: description: Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it. example: 01234567-89ab-cdef-0123-456789abcdef type: string solution_version: description: Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version. example: 1.2.0 type: string tag_keys: description: Freeform tag keys declared in the Solution body. An empty array when the body declares none. example: - string items: type: string type: array template_kind: description: Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles. example: AgentTemplate type: string templates: description: Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references. example: - description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string items: description: Identity and display metadata for a single template bundled by a Solution, used to represent each wrapped or sibling template at template granularity. example: description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: AgentTemplate lookup_key: string name: Example Name readme_url: https://example.com virtual_path: string properties: description: description: Short prose blurb from the template body's `description:` field. `null` when the body doesn't set one. Used as the card subhead in the Library carousel. example: An example description. type: string display_name: description: Human-facing label from the template body's `display_name:` field. `null` when the body doesn't set one. Library carousels use this for the card title, falling back to a humanized `name`. example: Example Name type: string id: description: Template config ID (`cfg_...`). `null` for inline-only templates. example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Template config kind, or `SolutionTemplateRef` / `SolutionTemplatePath` when unresolved. example: AgentTemplate type: string lookup_key: description: Lookup key stamped on the template config at import time. `null` when no lookup key was assigned. example: string type: string name: description: Canonical name from the template body. For `AgentTemplate` this doubles as the human-facing label; for `AgentToolTemplate` it's the LLM-facing tool function identifier (snake_case); for `AgentRoutineTemplate` it's the routine identifier (kebab-case). Clients rendering carousels should prefer `display_name` and fall back to humanizing `name`. example: Example Name type: string readme_url: description: Relative path to the public README endpoint with a signed token already embedded, scoped to this template's bundled markdown asset. `null` when the Solution body's `templates[].readme_path` is unset for this entry. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`. example: https://example.com type: string virtual_path: description: Stable virtual path assigned to the template config. `null` when no virtual path was set. example: string type: string required: - kind type: object type: array updated_at: description: When the Solution config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string upgrade_available: description: '`true` when this Solution is installed at the viewer''s org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.' example: true type: boolean virtual_path: description: The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset. example: string type: string required: - id - kind - owners - templates - upgrade_available type: object template: description: Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from. example: created_at: '2024-01-01T00:00:00Z' description: An example description. display_name: Example Name id: id_0aBcDeFgHiJkLmNoPqRsTu kind: agent_tool_template lookup_key: string name: Example Name updated_at: '2024-01-01T00:00:00Z' virtual_path: string properties: created_at: description: When this template config was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string description: description: Description of the template from the config body. `null` if the current version has no `description` field. example: An example description. type: string display_name: description: Human-readable display name from the config body. `null` if the current version has no `display_name` field. example: Example Name type: string id: description: Template config ID (`cfg_...`). example: id_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: Config kind identifier for this template (e.g. `"agent_tool_template"`). example: agent_tool_template type: string lookup_key: description: Stable lookup key assigned to this template config. `null` if no lookup key is set. example: string type: string name: description: Template name as stored in the config body. `null` if the current version has no `name` field. example: Example Name type: string updated_at: description: When this template config was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string virtual_path: description: Virtual filesystem path for this template config. `null` if not set. example: string type: string required: - id - kind type: object required: - solution - template type: object team: description: ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the agent was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string required: - id type: object - type: string app: description: ID of the application that produced this entry (`dap_...`). `null` if not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string attachments: description: Array of attachment objects associated with this entry. Each attachment has a `type` field (e.g. `"file"`, `"task"`, `"artifact"`) and type-specific additional fields. Empty array when there are no attachments. example: - {} items: type: object type: array automation_run: description: ID of the automation run that produced this entry (`atr_...`). `null` if not produced by an automation run. example: atr_0aBcDeFgHiJkLmNoPqRsTu type: string content: description: A longer explanation of the event rendered as Markdown. `null` if no additional content is available. example: The agent completed the task successfully. type: string correlation_id: description: An opaque string used to group related entries together. Entries sharing the same `correlation_id` belong to a single logical operation. `null` if not correlated. example: 01234567-89ab-cdef-0123-456789abcdef type: string created_at: description: When this activity feed entry was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string id: description: Activity feed entry ID (`afe_...`). example: afe_0aBcDeFgHiJkLmNoPqRsTu type: string kind: description: The type of event this entry represents, e.g. `"agent_step"` or `"tool_call"`. Determines how `title`, `content`, and `attachments` should be interpreted. example: agent_step type: string level: description: Severity level of the event. One of `"info"`, `"warning"`, or `"error"`. `null` if no severity is set. example: info type: string metadata: description: Arbitrary key-value metadata stored on this entry. Returns an empty object when no metadata is set. example: key: value type: object org: description: ID of the organization this entry belongs to (`org_...`). `null` if not org-scoped. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string routine_run: description: ID of the agent routine run that produced this entry (`arr_...`). `null` if not produced by a routine run. example: arr_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox: description: Identifier of the sandbox environment this entry was generated in. `null` in production contexts. example: string type: string session_record: description: ID of the agent session record this entry belongs to (`ase_...`). `null` if not part of an agent session. example: ase_0aBcDeFgHiJkLmNoPqRsTu type: string team: description: ID of the team this entry is associated with (`tem_...`). `null` if not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread this entry is associated with (`thr_...`). `null` if not linked to a thread. example: thr_0aBcDeFgHiJkLmNoPqRsTu type: string title: description: A one-line human-readable summary of the event. `null` if the entry has no title. example: Example Title type: string updated_at: description: When this activity feed entry was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: The user who triggered this event. Returns a user ID (`usr_...`) by default, or an expanded user object when the association is loaded. `null` if no user is associated. example: usr_0aBcDeFgHiJkLmNoPqRsTu oneOf: - description: A platform user account. Represents a human or system actor that can own threads, belong to an organization, and interact with the API. example: alias: jdoe app: dap_0aBcDeFgHiJkLmNoPqRsTu app_name: Example Name email: user@example.com id: usr_0aBcDeFgHiJkLmNoPqRsTu is_system_user: true metadata: key: value name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu org_name: Example Name org_role: member sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu sandbox_name: Example Name properties: alias: description: Short handle or alias for the user. `null` if not set. example: jdoe type: string app: description: ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app. example: dap_0aBcDeFgHiJkLmNoPqRsTu type: string app_name: description: Display name of the user's app. `null` when the app association was not preloaded by the caller. example: Example Name type: string email: description: Email address of the user. example: user@example.com type: string id: description: User ID (`usr_...`). example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string is_system_user: description: '`true` if this account is an internal system user rather than a human. System users are created automatically by the platform.' example: true type: boolean metadata: description: Arbitrary key-value metadata attached to the user. Defaults to an empty object. example: key: value type: object name: description: Full display name of the user. `null` if the user has not set a name. example: Example Name type: string org: description: ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization. example: org_0aBcDeFgHiJkLmNoPqRsTu type: string org_name: description: Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller. example: Example Name type: string org_role: description: Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization. example: member type: string sandbox: description: ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox_name: description: Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller. example: Example Name type: string required: - id type: object - type: string required: - id type: object type: array has_more: description: Whether additional entries exist beyond the current page. When `true`, use `after_cursor` to fetch the next page. example: true type: boolean required: - entries - has_more type: object name: ApiActivityFeedChannel pushes: - description: null event: new_entry payload: example: entry: {} properties: entry: example: {} type: object type: object x-auth: - bearer x-token-flows: login: constructor: with_credentials description: Create a client by logging in with email/password operation_name: login operation_tag: auth requires: - publishable_key refresh: description: Refresh an expired access token operation_name: refresh operation_tag: auth