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 Threads API version: v1 tags: - name: Threads paths: /api/v1/threads/{thread}: delete: description: 'Permanently deletes a thread and all of its messages and artifacts. This action cannot be undone. The authenticated user must own the thread or be an owner of the team the thread belongs to. Attempting to delete a thread owned by another user or team returns 403.' operationId: delete_api_v1_threads__thread parameters: - description: Thread ID (`thr_...`). The authenticated user must own this thread. example: string in: path name: thread required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: Delete a thread x-auth: - bearer - publishable_key tags: - Threads get: description: 'Returns the full thread record for the given thread ID. The authenticated user must own the thread or be a member of the workspace it belongs to. Use this endpoint to fetch the current state of a single thread, including its title, description, and metadata. To list many threads, use the list endpoint with cursor-based pagination.' operationId: get_api_v1_threads__thread parameters: - description: Thread ID (`thr_...`). The authenticated user must have access to this thread. example: string in: path name: thread required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Thread' description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: Retrieve a thread x-auth: - bearer - publishable_key tags: - Threads put: description: 'Updates one or more mutable properties of the specified thread and returns the full thread object with the applied changes. Only the fields you provide are modified; omitted fields retain their current values. If `profile_picture` is supplied, the image is uploaded before the other fields are saved. Supplying invalid base64 picture data returns 422 and no other fields are updated. The authenticated user must own the thread or be a team owner of the workspace the thread belongs to.' operationId: put_api_v1_threads__thread parameters: - description: Thread ID (`thr_...`). The authenticated user must have permission to update this thread. example: string in: path name: thread required: true schema: type: string requestBody: content: application/json: schema: example: description: An example description. metadata: key: value muted: true profile_picture: data: string filename: string mime_type: application/json title: Example Title properties: description: description: Optional longer text describing the thread's purpose. Replaces the existing description when provided. example: An example description. type: string metadata: description: Arbitrary key-value metadata to store on the thread. Merged with or replaces existing metadata. example: key: value type: object muted: description: When `true`, suppresses notifications for new messages in this thread for the authenticated user. example: true type: boolean profile_picture: description: New profile picture for the thread. Provide all three inner fields to replace the existing image. example: data: string filename: string mime_type: application/json properties: data: description: Base64-encoded image payload. Must be a valid base64 string. example: string type: string filename: description: Original filename of the image, e.g. `"avatar.png"`. Used for storage metadata. example: string type: string mime_type: description: MIME type of the image, e.g. `"image/jpeg"` or `"image/png"`. example: application/json type: string type: object title: description: Human-readable display name for the thread. Replaces the existing title when provided. example: Example Title type: string type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Thread' description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found '422': description: Validation failed summary: Update a thread x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/agents: get: description: 'Returns the agents participating in the specified thread. Only personal user threads (threads owned by a single user, not a team) expose agents through this endpoint; requests for team threads return 404. The authenticated user must have visibility into the thread. Each agent entry includes display information such as name and profile picture. Thread-level overrides (e.g. a custom name or profile picture set for this thread) take precedence over the agent''s default values. When the caller is the thread owner, each entry also includes an `agent_config` object describing the agent''s message policy and context configuration.' operationId: get_api_v1_threads__thread_agents parameters: - description: Thread ID (`thr_...`). Must be a personal user thread visible to the authenticated user. example: string in: path name: thread required: true schema: type: string responses: '200': content: application/json: schema: description: The list of agents participating in the thread. example: data: - {} properties: data: description: Array of agent objects for the thread. Each object includes `id`, `name`, `alias`, `profile_picture`, and `metadata`. Thread owners also receive an `agent_config` object with the agent's policy type and context configuration. example: - {} items: type: object type: array required: - data type: object description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: List agents in a thread x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/artifacts: get: description: 'Returns all artifacts produced during a thread''s AI conversation. Artifacts are structured outputs such as code files, documents, or generated assets created by the AI agent in response to messages in the thread. The authenticated user must have access to the specified thread. Results are returned in a single page; there is no cursor-based pagination for this endpoint.' operationId: get_api_v1_threads__thread_artifacts parameters: - description: Thread ID (`thr_...`). Must be accessible to the authenticated user. example: string in: path name: thread required: true schema: type: string responses: '200': content: application/json: schema: description: Artifact listing for the thread. 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 produced during the thread's conversation. 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 '403': description: Forbidden '404': description: Thread not found summary: List artifacts for a thread x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/mark_read: post: description: 'Records that a user has read up to a specific message in the thread. Unread indicators and badge counts are cleared up to the specified message. You must supply exactly one of `last_read_message` or `use_latest_message`. Omitting both returns 400. If `use_latest_message` is `true` and the thread has no messages, the request succeeds silently with no state change. For server-to-server (S2S) requests where no user identity is present in the token, the `user` param is required to identify whose read state to update.' operationId: post_api_v1_threads__thread_mark_read parameters: - description: Thread ID (`thr_...`). The thread to mark as read. example: string in: path name: thread required: true schema: type: string requestBody: content: application/json: schema: example: last_read_message: string use_latest_message: true user: string properties: last_read_message: description: Message ID (`msg_...`) to record as the last read message. Mutually exclusive with `use_latest_message`. example: string type: string use_latest_message: description: When `true`, marks the thread as read up to the latest message. Mutually exclusive with `last_read_message`. example: true type: boolean user: description: User ID (`usr_...`) whose read state to update. Required for S2S requests; ignored when an authenticated user is present in the token. example: string type: string type: object required: true responses: '204': description: No content '401': description: Unauthorized '404': description: Thread not found '422': description: Validation error summary: Mark a thread as read x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/members: delete: description: 'Removes a user or agent membership from the specified thread. The authenticated user must have access to the thread. A successful removal returns HTTP 204 with no response body. Supply either `user` or `agent` depending on the value of `type`. Returns 404 if the thread or the membership record does not exist.' operationId: delete_api_v1_threads__thread_members parameters: - description: Thread ID (`thr_...`) identifying the thread to remove the member from. example: string in: path name: thread required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '404': description: Thread or member not found '422': description: Failed to remove member summary: Remove a member from a thread x-auth: - bearer - publishable_key tags: - Threads get: description: 'Returns all current members of the specified thread, including both user and agent members. The authenticated user must have visibility into the thread; requests from users without access return 403. Results are returned as a flat array in the `data` field. The list is not paginated — all members are returned in a single response.' operationId: get_api_v1_threads__thread_members parameters: - description: Thread ID (`thr_...`) whose members should be returned. example: string in: path name: thread required: true schema: type: string responses: '200': content: application/json: schema: description: Object containing the thread's membership list. example: data: - membership_type: member thread: thr_0aBcDeFgHiJkLmNoPqRsTu 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 thread member objects representing all current members of the thread. example: - membership_type: member thread: thr_0aBcDeFgHiJkLmNoPqRsTu 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 user's membership record in a thread, capturing their role and full user profile. example: membership_type: member thread: thr_0aBcDeFgHiJkLmNoPqRsTu 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: membership_type: description: Role of the member within the thread. One of `"owner"` (the user who created or was granted ownership) or `"member"` (a regular participant). example: member type: string thread: description: ID of the thread this membership belongs to (`thr_...`). example: thr_0aBcDeFgHiJkLmNoPqRsTu type: string user: description: Full user object for the member (`usr_...`). Present when the association is preloaded; `null` otherwise. 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: object type: array required: - data type: object description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: List members of a thread x-auth: - bearer - publishable_key tags: - Threads post: description: 'Adds a user or agent as a member of the specified thread. The authenticated user must have access to the thread. On success the new membership record is returned with HTTP 201. Supply either `user` or `agent` depending on the value of `type`. Attempting to add a principal that is already a member of the thread returns a 422 error.' operationId: post_api_v1_threads__thread_members parameters: - description: Thread ID (`thr_...`) identifying the thread to add the member to. example: string in: path name: thread required: true schema: type: string requestBody: content: application/json: schema: example: agent: string membership_type: string type: string user: string properties: agent: description: Agent ID of the principal to add. Required when `type` is `"agent"`. example: string type: string membership_type: description: Role granted to the new member. One of `"owner"` or `"member"`. Defaults to `"member"`. example: string type: string type: description: Kind of principal being added. Must be `"user"` or `"agent"`. example: string type: string user: description: User ID of the principal to add. Required when `type` is `"user"`. example: string type: string required: - type type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ThreadMember' description: Successful response '401': description: Unauthorized '404': description: Thread not found '422': description: Failed to add member summary: Add a member to a thread x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/messages: get: description: 'Returns a cursor-paginated list of messages belonging to the specified thread, ordered from oldest to newest. Supply `before_cursor` or `after_cursor` (not both) to page through the result set; omit both to receive the most recent page. The authenticated user must have access to the thread''s owner (workspace or user). A 403 is returned if the thread exists but is not accessible to the caller; a 404 is returned if the thread does not exist or is not visible to the authenticated user. Pass `include_reply_counts: true` to annotate each message with the number of threaded replies it has received. This adds a small amount of latency and should be omitted when reply counts are not needed.' operationId: get_api_v1_threads__thread_messages parameters: - description: Maximum number of messages to return per page. Defaults to 20. example: 1 in: query name: limit required: false schema: type: integer - description: Opaque cursor returned in a previous response's `after_cursor` field. When provided, returns the page of messages immediately after that position. Cannot be combined with `before_cursor`. example: string in: query name: after_cursor required: false schema: type: string - description: Opaque cursor returned in a previous response's `before_cursor` field. When provided, returns the page of messages immediately before that position. Cannot be combined with `after_cursor`. example: string in: query name: before_cursor required: false schema: type: string - description: Thread ID (`thr_...`). The authenticated user must have access to this thread. example: string in: path name: thread required: true schema: type: string - description: When `true`, each message in the response is annotated with its threaded reply count. Defaults to `false`. Adds latency; omit when reply counts are not needed. example: true in: query name: include_reply_counts required: false schema: type: boolean responses: '200': content: application/json: schema: description: Paginated list of messages for the requested thread. example: data: after_cursor: string before_cursor: string 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: data: description: Pagination envelope containing the messages for this page along with cursors for adjacent pages. example: after_cursor: string before_cursor: string 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: after_cursor: description: Opaque cursor to pass as `after` to retrieve the page of messages newer than this result set. `null` when there are no later messages. example: string type: string before_cursor: description: Opaque cursor to pass as `before` to retrieve the page of messages older than this result set. `null` when there are no earlier messages. example: string type: string messages: description: Ordered array of message objects for this page of results. 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 required: - data type: object description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: List messages in a thread x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/picture: put: description: 'Uploads a new profile picture for the specified thread and returns the updated thread object. The image must be supplied as a base64-encoded string with its MIME type. The authenticated user must own the thread or be a team owner of the workspace the thread belongs to. Supplying invalid base64 data returns 422.' operationId: put_api_v1_threads__thread_picture parameters: - description: Thread ID (`thr_...`). The authenticated user must have permission to update this thread. example: string in: path name: thread required: true schema: type: string requestBody: content: application/json: schema: example: picture: data: string filename: avatar.png mime_type: application/json properties: picture: description: Profile picture payload. Must include the base64-encoded image data and its MIME type. example: data: string filename: avatar.png mime_type: application/json properties: data: description: Base64-encoded binary content of the image file. example: string type: string filename: description: Original filename of the image, e.g. `"avatar.png"`. Used for storage and display. example: avatar.png type: string mime_type: description: MIME type of the image, e.g. `"image/jpeg"` or `"image/png"`. example: application/json type: string required: - data - filename - mime_type type: object required: - picture type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Thread' description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found '422': description: Invalid base64 data summary: Update a thread's profile picture x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/read_status: get: description: 'Returns the read status of a thread for the specified user, including the ID of the last message they have read and the number of unread messages remaining. For user-authenticated requests, the status is always returned for the authenticated user and the `user` parameter is ignored. For server-to-server (S2S) requests, the `user` parameter is required and must be a valid user ID. Returns 404 if the thread does not exist or the caller does not have access to it.' operationId: get_api_v1_threads__thread_read_status parameters: - description: Thread ID (`thr_...`). Must be accessible to the authenticated user or, for S2S requests, to the specified user. example: string in: path name: thread required: true schema: type: string - description: User ID (`usr_...`) whose read status to retrieve. Required for S2S requests; ignored for user-authenticated requests, which always return the status for the authenticated user. example: string in: query name: user required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ThreadReadStatus' description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: Retrieve a thread's read status x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/search: get: description: 'Performs a full-text search over context items (messages, files, and other indexed sources) attached to the specified thread. Returns tagged objects whose content matches the query string. Use the `type` param to restrict results to a particular context source. All accessible context source types are searched when `type` is omitted. The authenticated user must have access to the thread.' operationId: get_api_v1_threads__thread_search parameters: - description: Context source type to restrict the search to, e.g. `"thread/messages"`. Omit to search across all context sources for the thread. example: string in: query name: type required: false schema: type: string - description: Full-text search query. Results are ranked by relevance to this string. example: string in: query name: q required: true schema: type: string - description: Thread ID (`thr_...`). Must be accessible to the authenticated user. example: string in: path name: thread required: true schema: type: string responses: '200': content: application/json: schema: description: Search results for the query. example: data: - {} properties: data: description: Array of matching context items. Each item is a tagged object whose shape depends on the source type. example: - {} items: type: object type: array required: - data type: object description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: Search context items within a thread x-auth: - bearer - publishable_key tags: - Threads /api/v1/threads/{thread}/settings: get: description: 'Returns the current settings for the specified thread. Settings control per-thread behavior such as whether the AI agent is enabled. The authenticated user must own the thread or be a member of its workspace. If settings have never been explicitly configured, defaults are returned (for example, `agent_enabled` defaults to `true`).' operationId: get_api_v1_threads__thread_settings parameters: - description: Thread ID (`thr_...`). Must belong to the authenticated user's workspace. example: string in: path name: thread required: true schema: type: string responses: '200': content: application/json: schema: description: The settings for the requested thread. example: agent_enabled: true properties: agent_enabled: description: Whether the AI agent is active for this thread. Defaults to `true` when no settings have been explicitly set. example: true type: boolean type: object description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found summary: Retrieve thread settings x-auth: - bearer - publishable_key tags: - Threads put: description: 'Updates the settings for the specified thread. Only fields included in the `settings` map are modified; omitted fields retain their current values. The authenticated user must own the thread or be a member of its workspace. Returns the full settings object reflecting the state after the update. Validation errors are returned as `422 Unprocessable Entity`.' operationId: put_api_v1_threads__thread_settings parameters: - description: Thread ID (`thr_...`). Must belong to the authenticated user's workspace. example: string in: path name: thread required: true schema: type: string requestBody: content: application/json: schema: example: settings: {} properties: settings: description: Map of settings fields to update. Include only the keys you want to change. example: {} type: object required: - settings type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ThreadSettings' description: Successful response '401': description: Unauthorized '403': description: Forbidden '404': description: Thread not found '422': description: Validation error summary: Update thread settings x-auth: - bearer - publishable_key tags: - Threads components: schemas: 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 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 ThreadMember: description: A user's membership record in a thread, capturing their role and full user profile. example: membership_type: member thread: thr_0aBcDeFgHiJkLmNoPqRsTu 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: membership_type: description: Role of the member within the thread. One of `"owner"` (the user who created or was granted ownership) or `"member"` (a regular participant). example: member type: string thread: description: ID of the thread this membership belongs to (`thr_...`). example: thr_0aBcDeFgHiJkLmNoPqRsTu type: string user: $ref: '#/components/schemas/User' description: Full user object for the member (`usr_...`). Present when the association is preloaded; `null` otherwise. 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 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 ThreadReadStatus: description: The read status of a thread for a specific user, indicating how far they have read and how many messages remain unread. example: last_read_message: string thread: string unread_count: 1 properties: last_read_message: description: Message ID (`msg_...`) of the last message the user has read in this thread. `null` if the user has never read any message in the thread. example: string type: string thread: description: Thread ID (`thr_...`) that this read status belongs to. example: string type: string unread_count: description: Number of messages in the thread that the user has not yet read. example: 1 type: integer required: - thread - unread_count 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 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