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 Teams API version: v1 tags: - name: Teams paths: /api/v1/teams: get: description: 'Returns a paginated list of teams visible to the authenticated user, ordered by creation time descending. Use `membership` to narrow results to teams the caller has joined or teams they are eligible to join based on their ACL visibility. Supports full-text search across team name and description via `search`, and structured metadata filtering via `metadata`. When `app` is present, results are scoped to that app and the caller must hold the corresponding app scope.' operationId: get_api_v1_teams parameters: - description: Filter teams by membership status. `"joined"` returns only teams the caller is a member of. `"joinable"` returns ACL-visible teams the caller has not yet joined. Omit to return all visible teams. example: string in: query name: membership required: false schema: type: string - description: Full-text search string matched against team name and description. example: string in: query name: search required: false schema: type: string - description: Number of teams 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: Structured metadata filter expression. Only teams whose metadata satisfies the expression are returned. in: query name: metadata required: false schema: description: "A recursive boolean expression tree for filtering records by their JSON metadata field.\n\nEach node is either a group (`and`, `or`, `not`) with nested `clauses`, or a leaf\npredicate (`eq`, `contains`, `exists`) that targets a specific path inside the\nmetadata object. Leaf predicates use `path` (an array of key segments) to address\nnested values.\n\nOperator notes:\n- `eq` performs deep JSONB equality on the value at `path`.\n- `contains` checks whether the stored metadata structurally contains the given value;\n this is the only operator backed by the GIN index and is preferred for performance.\n- `exists` checks whether `path` is present in the metadata object; a key whose value\n is explicitly `null` still satisfies this predicate.\n- `and` and `or` accept two or more `clauses`; `not` accepts exactly one.\n\nThe legacy flat shape (`type: \"metadata\"`, `key`, `value`) is still accepted and is\ntreated as an `eq` predicate. Prefer the structured form for new integrations." examples: - clauses: - clauses: - operator: eq path: - customer_tier value: enterprise - operator: exists path: - collaborations - org_123 operator: or - operator: eq path: - type value: agent_network operator: and properties: clause: description: Single child expression node. Alternative to `clauses` when `operator` is `not`. type: object clauses: description: Array of child expression nodes. Required for `and` and `or` (two or more items) and `not` (exactly one item). items: type: object type: array key: deprecated: true description: Deprecated. Top-level metadata key; equivalent to a single-element `path`. Use `path` instead. type: string operator: description: The boolean group operator (`and`, `or`, `not`) or leaf predicate operator (`eq`, `contains`, `exists`) for this node. enum: - and - contains - eq - exists - not - or type: string path: description: Ordered key segments addressing a nested location inside the metadata object, e.g. `["collaborations", "org_123"]`. items: type: string type: array type: deprecated: true description: 'Deprecated. Legacy discriminator; `type: "metadata"` combined with `key`/`value` is treated as an `eq` predicate. Use `operator` instead.' type: string value: description: The JSON value to compare against the node at `path`. Required for `eq` and `contains` predicates; omitted for `exists`. type: object responses: '200': content: application/json: schema: description: Paginated list of teams matching the query. 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 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' has_next: true has_prev: true page: 1 page_size: 1 total_entries: 1 total_pages: 1 properties: data: description: Array of team objects for the current page. 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' items: description: A team within an organization, used to group users and agents and scope resources like configs, agents, and 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 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 type: array has_next: description: '`true` if there is a subsequent page of results.' example: true type: boolean has_prev: description: '`true` if there is a preceding page of results.' example: true type: boolean page: description: The current page number. example: 1 type: integer page_size: description: The number of results per page. example: 1 type: integer total_entries: description: Total number of teams 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 - has_next - has_prev - page - page_size - total_entries - total_pages type: object description: Successful response '400': description: Bad request - invalid metadata filter '401': description: Unauthorized '403': description: Forbidden - app scope required summary: List teams x-auth: - bearer - publishable_key tags: - Teams post: description: 'Creates a new team and returns the created team object. The authenticated user becomes the team''s owner. When `app` is supplied, the request is scoped to that app and the caller must hold the corresponding app scope. Omit `org` unless you want the team pinned to a specific organization. A default chat thread is provisioned for the team automatically after creation.' operationId: post_api_v1_teams 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 description: An example description. metadata: key: value name: Example Name org: string properties: acl: description: Access control configuration for the team. Controls who can discover and join the team. 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 description: description: Optional human-readable description of the team's purpose. example: An example description. type: string metadata: description: Arbitrary key-value pairs you can attach to the team for your own use. Values must be strings. example: key: value type: object name: description: Display name for the team. example: Example Name type: string org: description: Organization ID (`org_...`) to associate the team with. Omit to create the team without an org affiliation. example: string type: string required: - name type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '422': description: Validation failed summary: Create a team x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/join_by_code: post: description: 'Adds a principal to a team using a 12-character invite code. The invite code can be supplied as either `join_code` or `invite_code`; both are accepted for backwards compatibility. For user-authenticated requests, the currently authenticated user is added to the team. For server-to-server requests, you must supply either `agent` (to add an agent) or `user` (to add a specific user by ID). If the user is already a member of the team, the request succeeds without creating a duplicate membership. This endpoint is rate-limited to 10 requests per minute per IP address to prevent invite-code enumeration.' operationId: post_api_v1_teams_join_by_code parameters: [] requestBody: content: application/json: schema: example: agent: string invite_code: string join_code: string user: string properties: agent: description: Agent ID (`agent_...`) to add to the team. When provided, the agent is joined instead of the authenticated user. Requires a server-to-server session. example: string type: string invite_code: description: 12-character invite code — alias for `join_code` accepted for backwards compatibility. example: string type: string join_code: description: 12-character invite code that identifies the team. Mutually usable with `invite_code`. example: string type: string user: description: User ID (`user_...`) to add to the team. Required for server-to-server requests when `agent` is not supplied. example: string type: string type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: Successful response '400': description: Invalid join code format '401': description: Unauthorized '404': description: Invalid or expired join code '429': description: Too many requests summary: Join a team with an invite code x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}: delete: description: 'Permanently deletes the team identified by `team`. This action is irreversible — all team memberships, settings, and associated data are removed. The caller must be the team owner or an org admin. When `app` is present, the caller must also hold the corresponding app scope.' operationId: delete_api_v1_teams__team parameters: - description: Team ID (`team_...`) of the team to delete. example: string in: path name: team required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Team not found summary: Delete a team x-auth: - bearer - publishable_key tags: - Teams get: description: 'Returns the full team object for the given `team` ID, including its current member list and all associated threads. The authenticated user must be a member of the team or hold a role that grants visibility (org admin, app scope). When `app` is supplied, the caller must hold the corresponding app scope.' operationId: get_api_v1_teams__team parameters: - description: Team ID (`team_...`) of the team to retrieve. example: string in: path name: team required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Team not found summary: Retrieve a team x-auth: - bearer - publishable_key tags: - Teams patch: description: 'Updates one or more attributes of the team identified by `team`. Only the fields you provide are changed; omitted fields are left as-is. To replace the team''s profile picture, supply the `profile_picture` object with base64-encoded image data. The previous picture is deleted after the new one is successfully uploaded. When `app` is present, the caller must hold the corresponding app scope. The caller must be a team owner or org admin.' operationId: patch_api_v1_teams__team parameters: - description: Team ID (`team_...`) of the team to update. example: string in: path name: team 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 description: An example description. metadata: key: value name: Example Name profile_picture: data: string filename: string mime_type: application/json properties: acl: description: New access control configuration for the team. 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 description: description: New human-readable description of the team's purpose. example: An example description. type: string metadata: description: Arbitrary key-value pairs to set on the team. Replaces the existing metadata map entirely. example: key: value type: object name: description: New display name for the team. example: Example Name type: string profile_picture: description: New profile picture for the team. Provide this object to upload and replace the current picture. example: data: string filename: string mime_type: application/json properties: data: description: Base64-encoded binary image data. example: string type: string filename: description: Original filename of the image, used for storage metadata. example: string type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. example: application/json type: string type: object type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Team' description: Successful response '401': description: Unauthorized '403': description: Forbidden - app scope required '404': description: Team not found '422': description: Validation failed summary: Update a team x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/artifacts: get: description: 'Returns all artifacts owned by the specified team. Artifacts represent AI-generated or user-uploaded files associated with agent sessions, threads, or sandboxes — such as images, documents, and code outputs. The authenticated user must be a member of the team. Attempting to list artifacts for a team the caller does not have access to returns 404 rather than 403 to avoid leaking team existence. Results are returned in a single page without cursor pagination. Each artifact in the response reflects the state of its current version, including a short-lived signed `file_url` for direct download.' operationId: get_api_v1_teams__team_artifacts parameters: - description: Team ID (`tea_...`). The authenticated user must be a member of this team. example: string in: path name: team required: true schema: type: string responses: '200': content: application/json: schema: description: All artifacts owned by the team. example: data: - agent: agt_0aBcDeFgHiJkLmNoPqRsTu content_type: application/json created_at: '2024-01-01T00:00:00Z' current_version: afv_0aBcDeFgHiJkLmNoPqRsTu description: An example description. file: string file_name: Example Name file_url: https://example.com id: art_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 name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: thr_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 properties: data: description: Array of artifact objects belonging to the team. example: - agent: agt_0aBcDeFgHiJkLmNoPqRsTu content_type: application/json created_at: '2024-01-01T00:00:00Z' current_version: afv_0aBcDeFgHiJkLmNoPqRsTu description: An example description. file: string file_name: Example Name file_url: https://example.com id: art_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 name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: thr_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 items: description: A versioned artifact produced or managed by an agent, such as a generated file, report, or code output. example: agent: agt_0aBcDeFgHiJkLmNoPqRsTu content_type: application/json created_at: '2024-01-01T00:00:00Z' current_version: afv_0aBcDeFgHiJkLmNoPqRsTu description: An example description. file: string file_name: Example Name file_url: https://example.com id: art_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 name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: thr_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 properties: agent: description: ID of the agent that produced this artifact (`agt_...`). `null` if not agent-produced. example: agt_0aBcDeFgHiJkLmNoPqRsTu type: string content_type: description: MIME type of the current version's file, e.g. `"text/csv"` or `"image/png"`. `null` if no file is attached. example: application/json type: string created_at: description: When the artifact was first created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string current_version: description: ID of the current (latest published) artifact version (`artv_...`). `null` if no version has been published. example: afv_0aBcDeFgHiJkLmNoPqRsTu type: string description: description: Optional longer description of the artifact's contents or purpose. `null` if not set. example: An example description. type: string file: description: Storage file ID for the current version (`fil_...`). `null` if no file is attached. example: string type: string file_name: description: Original filename of the current version's file, e.g. `"output.csv"`. `null` if no file is attached. example: Example Name type: string file_url: description: Short-lived signed URL for downloading the current version's file. `null` if no file is attached. example: https://example.com type: string id: description: Artifact ID (`art_...`). example: art_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: description: Image source metadata for rendering the current version's file inline. Present only when `content_type` starts with `"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 name: description: Human-readable name for the artifact, e.g. `"Q2 Report"`. `null` if not set. example: Example Name type: string org: description: ID of the organization this artifact belongs to (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox: description: Identifier of the sandbox environment associated with this artifact. `null` if not sandbox-scoped. example: string type: string team: description: ID of the team that owns this artifact (`tea_...`). `null` if not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread in which this artifact was created (`thr_...`). `null` if not thread-scoped. example: thr_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the artifact record was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user who created this artifact (`usr_...`). `null` if not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string version: description: Current version number of the artifact. Increments each time a new version is published. example: 1 type: integer required: - id type: object type: array required: - data type: object description: Successful response '401': description: Unauthorized '404': description: Team not found summary: List a team's artifacts x-auth: - bearer - publishable_key tags: - Teams post: description: 'Creates a new artifact and stores its file content. A file payload is required; supply it via the `artifact.file_content` (Base64-encoded), `artifact.file_name`, and `artifact.file_content_type` fields. The artifact is scoped to the owner resolved from the request context — either a team or a user. Optionally associate the artifact with an existing thread or agent by passing `artifact.thread_id` or `artifact.agent_id`. Returns 201 with the created artifact on success.' operationId: post_api_v1_teams__team_artifacts parameters: [] requestBody: content: application/json: schema: example: artifact: {} properties: artifact: description: Object containing the attributes for the new artifact. example: {} type: object required: - artifact type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Artifact' description: Successful response '401': description: Unauthorized '403': description: Forbidden '422': description: Validation error summary: Create an artifact x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/custom_objects: get: description: 'Returns a paginated list of custom objects owned by the specified team, filtered to a single schema type. Results are ordered by creation time descending unless `query` is provided, in which case they are ordered by full-text relevance score descending. Use `limit` and `offset` for page-based pagination. Use `row_key` or `sort_key` to narrow results to objects matching those index values. Full-text search via `query` operates only against the fields configured as `search_fields` on the schema. The authenticated user must be a member of the team with sufficient access. Returns 404 if the team is not found, the caller lacks access, or `type` does not match a registered schema for the team''s organization.' operationId: get_api_v1_teams__team_custom_objects parameters: - description: Filter results to objects whose `row_key` exactly matches this value. example: string in: query name: row_key required: false schema: type: string - description: Filter results to objects whose `sort_key` exactly matches this value. example: string in: query name: sort_key required: false schema: type: string - description: Full-text search string matched against the schema's configured `search_fields`. When provided, results are ordered by relevance score descending instead of creation time descending. example: string in: query name: query required: false schema: type: string - description: Maximum number of objects to return per page. example: 1 in: query name: limit required: false schema: type: integer - description: Number of objects to skip before returning results. Use with `limit` for page-based pagination. example: 1 in: query name: offset required: false schema: type: integer - description: Schema type identifier (`lookup_key`) that filters results to objects of this schema. example: string in: query name: type required: true schema: type: string - description: Team ID (`team_...`). Scopes results to objects owned by this team. example: string in: path name: team required: true schema: type: string responses: '200': content: application/json: schema: description: Paginated list of custom objects owned by the team. example: data: - created_at: '2024-01-01T00:00:00Z' fields: key: value id: cobj_0aBcDeFgHiJkLmNoPqRsTu org: org_0aBcDeFgHiJkLmNoPqRsTu row_key: string sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu schema_type: contact team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 meta: {} properties: data: description: Array of custom object records for the current page. example: - created_at: '2024-01-01T00:00:00Z' fields: key: value id: cobj_0aBcDeFgHiJkLmNoPqRsTu org: org_0aBcDeFgHiJkLmNoPqRsTu row_key: string sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu schema_type: contact team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 items: description: A custom object belonging to an organization. Custom objects store arbitrary structured data defined by a schema type and are scoped to an org, team, or user. example: created_at: '2024-01-01T00:00:00Z' fields: key: value id: cobj_0aBcDeFgHiJkLmNoPqRsTu org: org_0aBcDeFgHiJkLmNoPqRsTu row_key: string sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu schema_type: contact team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 properties: created_at: description: When the custom object was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string fields: description: Map of field names to their current values as defined by the object's schema type. example: key: value type: object id: description: Unique identifier for the custom object (`cobj_...`). example: cobj_0aBcDeFgHiJkLmNoPqRsTu type: string org: description: ID of the organization this object belongs to (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string row_key: description: An optional stable key used to identify this object by a caller-controlled string rather than its generated ID. `null` if not set. example: string type: string sandbox: description: ID of the sandbox environment this object is scoped to (`dsb_...`). `null` for production objects. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string schema_type: description: The lookup key of the schema type that defines this object's field structure. `null` if the schema type has not been set. example: contact type: string team: description: ID of the team that owns this object (`tem_...`). `null` if the object is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the custom object was last modified (ISO 8601). `null` if the object has never been updated after creation. example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this object (`usr_...`). `null` if the object is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string version: description: Optimistic concurrency version of the object. Increments with each successful update; pass this value in write operations to detect conflicting changes. example: 1 type: integer required: - id type: object type: array meta: description: Pagination metadata for the response. example: {} type: object required: - data type: object description: Successful response '401': description: Unauthorized '404': description: Team not found or schema type not found summary: List a team's custom objects x-auth: - bearer - publishable_key tags: - Teams post: description: 'Creates a new custom object owned by the specified team. The object is instantiated against the schema identified by `type` (the schema''s `lookup_key`). All field values are validated against that schema''s field definitions before the object is persisted. The authenticated user must be a member of the team with sufficient access. If the team is not found or the caller lacks access, the endpoint returns 404. If `type` does not match a registered schema for the team''s organization, the endpoint also returns 404.' operationId: post_api_v1_teams__team_custom_objects parameters: - description: Team ID (`team_...`). The team that will own the created object. example: string in: path name: team required: true schema: type: string requestBody: content: application/json: schema: example: fields: {} type: string properties: fields: description: Map of field values to set on the new object. Keys and value types must conform to the schema identified by `type`. example: {} type: object type: description: Schema type identifier (`lookup_key`) that defines the object's fields and validation rules. example: string type: string required: - fields - type type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomObject' description: Successful response '401': description: Unauthorized '404': description: Team not found or schema type not found '422': description: Validation error summary: Create a team custom object x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/invite: post: description: 'Generates a new invite code for the specified team. The authenticated user must be a member of the team with the `owner` or `admin` role. The returned code is a short alphanumeric string that other users can present to join the team. Each call produces a new code; previously issued codes are not invalidated by this request.' operationId: post_api_v1_teams__team_invite parameters: - description: Team ID (`tm_...`) identifying the team for which to generate the invite code. example: string in: path name: team required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/TeamInvite' description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Team not found summary: Create a team invite x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/join: post: description: 'Adds a principal to a team that is visible to the authenticated user. By default, the currently authenticated user joins the team. Provide `agent` to add an agent to the team instead — the caller must already be a member of the team to do so. Provide `user` (by ID) or `email` to add another user from your organization — the caller must be a team owner, team admin, or org admin. Only one of `agent`, `user`, or `email` may be supplied per request. If the target principal is already a member of the team, the request succeeds without creating a duplicate membership. Server-to-server callers are not permitted to use this endpoint; use the invite-code endpoint instead.' operationId: post_api_v1_teams__team_join parameters: - description: Team ID (`team_...`) to join. example: string in: path name: team required: true schema: type: string requestBody: content: application/json: schema: example: agent: string email: user@example.com user: string properties: agent: description: Agent ID (`agent_...`) to add to the team. The caller must already be a member of the team. example: string type: string email: description: Email address of a member of the caller's organization to add to the team. Requires team-owner, team-admin, or org-admin role. example: user@example.com type: string user: description: User ID (`user_...`) of a member of the caller's organization to add to the team. Requires team-owner, team-admin, or org-admin role. example: string type: string type: object required: true responses: '204': description: No content '400': description: Bad request '401': description: Unauthorized '403': description: Forbidden '404': description: Not found summary: Join a team x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/leave: delete: description: 'Removes a principal from a team. By default, the authenticated user removes themselves from the team. Provide `agent` to remove an agent instead — the caller must be a member of the team to do so. Team owners cannot leave their own team. To transfer ownership first, use the update-membership endpoint, then call this endpoint. For server-to-server requests, `user` is required to identify which user should be removed.' operationId: delete_api_v1_teams__team_leave parameters: - description: Team ID (`team_...`) to leave. example: string in: path name: team required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '403': description: Forbidden '404': description: Not a member of this team '422': description: Failed to leave team summary: Leave a team x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/members: delete: description: 'Removes a user, agent, or all members of an organization from the specified team. Provide exactly one of `user`, `agent`, or `org` — supplying more than one or none returns a 400 error. On success, returns 204 No Content. When `org` is provided, every user and agent membership belonging to that org is removed in a single call. The caller must be a member of the team''s owning org to perform an org-scoped removal. You cannot target the team''s owning org itself with this parameter. The caller must have permission to manage the team. When `app` is present, the request is scoped to that app and requires a valid app-scoped token.' operationId: delete_api_v1_teams__team_members parameters: - description: Team ID (`team_...`). The team to remove the member from. example: string in: path name: team required: true schema: type: string responses: '204': description: No content '400': description: Provide exactly one of user, agent, or org '401': description: Unauthorized '403': description: Forbidden '404': description: Team or member not found summary: Remove a member or org from a team x-auth: - bearer - publishable_key tags: - Teams get: description: 'Returns all members of the specified team, including both users and agents. Members are returned in a single non-paginated array ordered by join time. Bearer-authenticated users must be a member of the team to retrieve its member list. Developer and server-to-server callers can retrieve members for any team visible to their app scope. When `app` is provided, the request is scoped to that app and requires a valid app-scoped token.' operationId: get_api_v1_teams__team_members parameters: - description: Team ID (`team_...`). The team whose members you want to list. example: string in: path name: team required: true schema: type: string responses: '200': content: application/json: schema: description: Array of team memberships for the specified team. example: data: - 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 created_at: '2024-01-01T00:00:00Z' id: tmb_0aBcDeFgHiJkLmNoPqRsTu joined_at: '2024-01-01T00:00:00Z' metadata: key: value 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 role: member team: {} type: user updated_at: '2024-01-01T00:00:00Z' 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: data: description: Array of team membership objects, including both user and agent members. 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 created_at: '2024-01-01T00:00:00Z' id: tmb_0aBcDeFgHiJkLmNoPqRsTu joined_at: '2024-01-01T00:00:00Z' metadata: key: value 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 role: member team: {} type: user updated_at: '2024-01-01T00:00:00Z' 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 record representing a user's or agent's membership in a team, including their resolved identity details and role. 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 created_at: '2024-01-01T00:00:00Z' id: tmb_0aBcDeFgHiJkLmNoPqRsTu joined_at: '2024-01-01T00:00:00Z' metadata: key: value 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 role: member team: {} type: user updated_at: '2024-01-01T00:00:00Z' 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: The agent associated with this membership, as an expanded agent object. `null` when the member is a user, the type is unknown, or the association is not preloaded. 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 created_at: description: When this membership record was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string id: description: Team membership ID (`tmb_...`). example: tmb_0aBcDeFgHiJkLmNoPqRsTu type: string joined_at: description: When the principal joined the team (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string metadata: description: Arbitrary key-value metadata attached to this membership record. `null` if no metadata has been set. example: key: value type: object name: description: Display name of the member, derived from the associated user or agent. `null` if the principal is unknown. example: Example Name type: string profile_picture: description: Profile picture of the member, derived from the associated user or agent. `null` if not set or principal is unknown. 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 role: description: The member's role within the team. One of `"owner"`, `"admin"`, or `"member"`. example: member type: string team: description: The team this membership belongs to, as an expanded team object. `null` when the team association is not preloaded. example: {} type: object type: description: Resolved principal type. One of `"user"`, `"agent"`, or `"unknown"` when the principal cannot be determined. example: user type: string updated_at: description: When this membership record was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: The user associated with this membership, as an expanded user object. `null` when the member is an agent, the type is unknown, or the association is not preloaded. 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: - id type: object type: array required: - data type: object description: Successful response '401': description: Unauthorized '404': description: Team not found summary: List members of a team x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/members/{user}: patch: description: 'Changes the role of an existing user member on the specified team. Returns the updated membership on success. Only user memberships are supported by this endpoint. Attempting to update an agent membership returns 404. To change an agent''s role, remove the existing membership and re-add the agent with the desired role. The caller must have permission to modify the team. You cannot change a member''s role across organization boundaries. Demoting the last owner of a team returns 409. An invalid `role` value returns 422. When `app` is provided, the request is scoped to that app and requires a valid app-scoped token.' operationId: patch_api_v1_teams__team_members__user parameters: - description: Team ID (`team_...`). The team whose member role you want to update. example: string in: path name: team required: true schema: type: string - description: User ID (`usr_...`) of the existing member whose role should be changed. example: string in: path name: user required: true schema: type: string requestBody: content: application/json: schema: example: role: string properties: role: description: New role to assign. One of `"owner"`, `"admin"`, or `"member"`. example: string type: string required: - role type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TeamMembership' description: Successful response '401': description: Unauthorized '403': description: Forbidden — caller lacks permission to modify this team '404': description: Team or member not found '409': description: Conflict — cannot demote the last owner '422': description: Validation failed (e.g. invalid role) summary: Update a team member's role x-auth: - bearer - publishable_key tags: - Teams /api/v1/teams/{team}/threads: get: description: 'Returns all threads owned by the specified team that the authenticated caller has permission to view. The caller must have access to the team; requests without team access are rejected with 404. Threads are returned in a single `data` array. Use the team-scoped thread endpoints to create, update, or delete individual threads.' operationId: get_api_v1_teams__team_threads parameters: - description: Team ID (`tem_...`) whose threads should be listed. example: string in: path name: team required: true schema: type: string responses: '200': content: application/json: schema: description: Response envelope containing the team's threads. example: data: - 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: Array of thread objects belonging to the team. 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 items: 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: 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 type: array required: - data type: object description: Successful response '401': description: Unauthorized '404': description: Team not found summary: List threads for a team x-auth: - bearer - publishable_key tags: - Teams post: description: 'Creates a new thread owned by the specified team. The authenticated caller must have access to the team; requests from callers without team access are rejected with 404. If a `profile_picture` is provided in the thread params, it must be base64-encoded image data. The image is uploaded and associated with the thread before creation completes. Omit `profile_picture` to skip this step. By default the platform sends an automatic welcome message into the new thread. Pass `skip_welcome_message: true` to suppress this behavior, for example when creating threads programmatically in bulk or seeding test data.' operationId: post_api_v1_teams__team_threads parameters: - description: Team ID (`tem_...`) that will own the created thread. example: string in: path name: team required: true schema: type: string requestBody: content: application/json: schema: example: skip_welcome_message: true thread: create_legacy_agent: true description: An example description. is_unlisted: true key: string metadata: key: value muted: true org_id: string profile_picture: data: string filename: string mime_type: application/json settings: agent_enabled: true title: Example Title properties: skip_welcome_message: description: When `true`, suppresses the automatic welcome message that is otherwise sent into the thread on creation. Defaults to `false`. example: true type: boolean thread: description: Attributes for the new thread. See ThreadCreateParams for available fields. example: create_legacy_agent: true description: An example description. is_unlisted: true key: string metadata: key: value muted: true org_id: string profile_picture: data: string filename: string mime_type: application/json settings: agent_enabled: true title: Example Title properties: create_legacy_agent: description: When `true`, provisions a legacy chat agent alongside the thread. Only needed for integrations that depend on the pre-v2 agent model. example: true type: boolean description: description: Optional longer description of the thread's purpose. `null` if not provided. example: An example description. type: string is_unlisted: description: When `true`, the thread is hidden from the default thread list and accessible only by direct link or ID. example: true type: boolean key: description: Client-assigned unique key for idempotent creation or later lookup. Must be unique within the owning organization. example: string type: string metadata: description: Arbitrary key-value pairs stored alongside the thread. Values must be strings or numbers. example: key: value type: object muted: description: When `true`, push and in-app notifications for this thread are suppressed for the creating user. example: true type: boolean org_id: description: ID of the organization to create the thread under. Defaults to the authenticated user's primary organization when omitted. example: string type: string profile_picture: description: Optional profile image for the thread, provided as a base64-encoded payload. example: data: string filename: string mime_type: application/json properties: data: description: Base64-encoded image bytes. example: string type: string filename: description: Original filename of the uploaded image, used for display and content-type inference. example: string type: string mime_type: description: MIME type of the image, e.g. `"image/png"` or `"image/jpeg"`. example: application/json type: string type: object settings: description: Configuration overrides for the thread, such as AI model selection and context window settings. 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 title: description: Display name for the thread. `null` if omitted, which causes the thread to be untitled. 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 '404': description: Team not found '422': description: Validation failed summary: Create a thread for a team x-auth: - bearer - publishable_key tags: - Teams components: schemas: Artifact: description: A versioned artifact produced or managed by an agent, such as a generated file, report, or code output. example: agent: agt_0aBcDeFgHiJkLmNoPqRsTu content_type: application/json created_at: '2024-01-01T00:00:00Z' current_version: afv_0aBcDeFgHiJkLmNoPqRsTu description: An example description. file: string file_name: Example Name file_url: https://example.com id: art_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 name: Example Name org: org_0aBcDeFgHiJkLmNoPqRsTu sandbox: string team: tem_0aBcDeFgHiJkLmNoPqRsTu thread: thr_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 properties: agent: description: ID of the agent that produced this artifact (`agt_...`). `null` if not agent-produced. example: agt_0aBcDeFgHiJkLmNoPqRsTu type: string content_type: description: MIME type of the current version's file, e.g. `"text/csv"` or `"image/png"`. `null` if no file is attached. example: application/json type: string created_at: description: When the artifact was first created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string current_version: description: ID of the current (latest published) artifact version (`artv_...`). `null` if no version has been published. example: afv_0aBcDeFgHiJkLmNoPqRsTu type: string description: description: Optional longer description of the artifact's contents or purpose. `null` if not set. example: An example description. type: string file: description: Storage file ID for the current version (`fil_...`). `null` if no file is attached. example: string type: string file_name: description: Original filename of the current version's file, e.g. `"output.csv"`. `null` if no file is attached. example: Example Name type: string file_url: description: Short-lived signed URL for downloading the current version's file. `null` if no file is attached. example: https://example.com type: string id: description: Artifact ID (`art_...`). example: art_0aBcDeFgHiJkLmNoPqRsTu type: string image_source: $ref: '#/components/schemas/ImageSource' description: Image source metadata for rendering the current version's file inline. Present only when `content_type` starts with `"image/"`. `null` otherwise. name: description: Human-readable name for the artifact, e.g. `"Q2 Report"`. `null` if not set. example: Example Name type: string org: description: ID of the organization this artifact belongs to (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string sandbox: description: Identifier of the sandbox environment associated with this artifact. `null` if not sandbox-scoped. example: string type: string team: description: ID of the team that owns this artifact (`tea_...`). `null` if not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string thread: description: ID of the thread in which this artifact was created (`thr_...`). `null` if not thread-scoped. example: thr_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the artifact record was last modified (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user who created this artifact (`usr_...`). `null` if not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string version: description: Current version number of the artifact. Increments each time a new version is published. example: 1 type: integer required: - id 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 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 TeamInvite: description: A team invite containing a short alphanumeric code that other users can present to join the team. example: code: XKCD42 properties: code: description: Short alphanumeric join code. Pass this value as `join_code` to the join-with-code endpoint to add a user to the team. example: XKCD42 type: string required: - code 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 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 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 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 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 TeamMembership: description: A record representing a user's or agent's membership in a team, including their resolved identity details and role. 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 created_at: '2024-01-01T00:00:00Z' id: tmb_0aBcDeFgHiJkLmNoPqRsTu joined_at: '2024-01-01T00:00:00Z' metadata: key: value 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 role: member team: {} type: user updated_at: '2024-01-01T00:00:00Z' 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: $ref: '#/components/schemas/Agent' description: The agent associated with this membership, as an expanded agent object. `null` when the member is a user, the type is unknown, or the association is not preloaded. created_at: description: When this membership record was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string id: description: Team membership ID (`tmb_...`). example: tmb_0aBcDeFgHiJkLmNoPqRsTu type: string joined_at: description: When the principal joined the team (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string metadata: description: Arbitrary key-value metadata attached to this membership record. `null` if no metadata has been set. example: key: value type: object name: description: Display name of the member, derived from the associated user or agent. `null` if the principal is unknown. example: Example Name type: string profile_picture: $ref: '#/components/schemas/ImageSource' description: Profile picture of the member, derived from the associated user or agent. `null` if not set or principal is unknown. role: description: The member's role within the team. One of `"owner"`, `"admin"`, or `"member"`. example: member type: string team: description: The team this membership belongs to, as an expanded team object. `null` when the team association is not preloaded. example: {} type: object type: description: Resolved principal type. One of `"user"`, `"agent"`, or `"unknown"` when the principal cannot be determined. example: user type: string updated_at: description: When this membership record was last updated (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string user: $ref: '#/components/schemas/User' description: The user associated with this membership, as an expanded user object. `null` when the member is an agent, the type is unknown, or the association is not preloaded. 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 Team: description: A team within an organization, used to group users and agents and scope resources like configs, agents, and 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 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: $ref: '#/components/schemas/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. 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 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 CustomObject: description: A custom object belonging to an organization. Custom objects store arbitrary structured data defined by a schema type and are scoped to an org, team, or user. example: created_at: '2024-01-01T00:00:00Z' fields: key: value id: cobj_0aBcDeFgHiJkLmNoPqRsTu org: org_0aBcDeFgHiJkLmNoPqRsTu row_key: string sandbox: dsb_0aBcDeFgHiJkLmNoPqRsTu schema_type: contact team: tem_0aBcDeFgHiJkLmNoPqRsTu updated_at: '2024-01-01T00:00:00Z' user: usr_0aBcDeFgHiJkLmNoPqRsTu version: 1 properties: created_at: description: When the custom object was created (ISO 8601). example: '2024-01-01T00:00:00Z' format: date-time type: string fields: description: Map of field names to their current values as defined by the object's schema type. example: key: value type: object id: description: Unique identifier for the custom object (`cobj_...`). example: cobj_0aBcDeFgHiJkLmNoPqRsTu type: string org: description: ID of the organization this object belongs to (`org_...`). example: org_0aBcDeFgHiJkLmNoPqRsTu type: string row_key: description: An optional stable key used to identify this object by a caller-controlled string rather than its generated ID. `null` if not set. example: string type: string sandbox: description: ID of the sandbox environment this object is scoped to (`dsb_...`). `null` for production objects. example: dsb_0aBcDeFgHiJkLmNoPqRsTu type: string schema_type: description: The lookup key of the schema type that defines this object's field structure. `null` if the schema type has not been set. example: contact type: string team: description: ID of the team that owns this object (`tem_...`). `null` if the object is not team-scoped. example: tem_0aBcDeFgHiJkLmNoPqRsTu type: string updated_at: description: When the custom object was last modified (ISO 8601). `null` if the object has never been updated after creation. example: '2024-01-01T00:00:00Z' format: date-time type: string user: description: ID of the user that owns this object (`usr_...`). `null` if the object is not user-scoped. example: usr_0aBcDeFgHiJkLmNoPqRsTu type: string version: description: Optimistic concurrency version of the object. Increments with each successful update; pass this value in write operations to detect conflicting changes. example: 1 type: integer required: - id 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