AGNTCY Thread Runs API

Thread Runs are runs created on a thread. A Thread Run can be created on a thread **only** if there is no run in the `pending` status on the same thread, i.e. if the thread is in the state `idle` Note that runs over the same thread can be executed on different agents, as long as the agents support the same thread state format. See `Thread` and `RunCreateStateful` for more info.

Operations 10

GET /threads/{thread_id}/runs List Runs for a thread #
POST /threads/{thread_id}/runs Create a Background Run on a thread #
POST /threads/{thread_id}/runs/stream Create a run on a thread and stream its output #
POST /threads/{thread_id}/runs/wait Create a run on a thread and block waiting for the result of the run #
GET /threads/{thread_id}/runs/{run_id}/wait Blocks waiting for the result of the run. #
GET /threads/{thread_id}/runs/{run_id} Get Run #
POST /threads/{thread_id}/runs/{run_id} Resume an interrupted Run #
DELETE /threads/{thread_id}/runs/{run_id} Delete Run #
GET /threads/{thread_id}/runs/{run_id}/stream Stream output from Run #
POST /threads/{thread_id}/runs/{run_id}/cancel Cancel Run #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/agntcy-thread-runs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

agntcy-thread-runs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Agent Connect Protocol Thread Runs API
  version: 0.2.3
  x-provenance:
    method: harvested
    authored_by: AGNTCY (Outshift by Cisco)
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    provider_published: true
    source_host: agntcy.org / outshift.com
    note: 'Four first-party machine-readable contracts: the Agent Connect Protocol OpenAPI 3.1.1, the OASF Schema API, and two AGNTCY Identity OpenAPI 3.0.3 documents. schema.oasf.outshift.com is the one genuinely callable AGNTCY-hosted API (unauthenticated, 200).'
  x-evidence:
  - type: source
    url: https://spec.acp.agntcy.org/
  - type: source
    url: https://schema.oasf.outshift.com/doc
  - type: source
    url: https://identity-docs.outshift.com/api/openapi/service/v1alpha1/openapi.yaml
  description: "Thread Runs are runs created on a thread. \nA Thread Run can be created on a thread **only** if there is no run in the `pending` status on the same thread, i.e. if the thread is in the state `idle`\nNote that runs over the same thread can be executed on different agents, as long as the agents support the same thread state format.\nSee `Thread` and `RunCreateStateful` for more info."
tags:
- name: Thread Runs
  description: "Thread Runs are runs created on a thread. \nA Thread Run can be created on a thread **only** if there is no run in the `pending` status on the same thread, i.e. if the thread is in the state `idle`\nNote that runs over the same thread can be executed on different agents, as long as the agents support the same thread state format.\nSee `Thread` and `RunCreateStateful` for more info."
paths:
  /threads/{thread_id}/runs:
    parameters:
    - description: The ID of the thread.
      required: true
      schema:
        type: string
        format: uuid
        title: Thread ID
        description: The ID of the thread.
      name: thread_id
      in: path
    get:
      tags:
      - Thread Runs
      summary: List Runs for a thread
      description: List runs for a thread.
      operationId: list_thread_runs
      parameters:
      - required: false
        schema:
          type: integer
          title: Limit
          default: 10
        name: limit
        in: query
      - required: false
        schema:
          type: integer
          title: Offset
          default: 0
        name: offset
        in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/RunStateful'
                type: array
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Thread Runs
      summary: Create a Background Run on a thread
      description: Create a run on a thread, return the run ID immediately. Don't wait for the final run output.
      operationId: create_thread_run
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunCreateStateful'
        required: true
      callbacks:
        runstatuschange:
          '{$request.body#/webhook}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/RunStateful'
              responses:
                '200':
                  description: Your server returns this code if it accepts the callback
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunStateful'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /threads/{thread_id}/runs/stream:
    post:
      tags:
      - Thread Runs
      summary: Create a run on a thread and stream its output
      description: Create a run on a thread and join its output stream. See 'GET /runs/{run_id}/stream' for details on the return values.
      operationId: create_and_stream_thread_run_output
      parameters:
      - description: The ID of the thread.
        required: true
        schema:
          type: string
          format: uuid
          title: Thread Id
          description: The ID of the thread.
        name: thread_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunCreateStateful'
        required: true
      responses:
        '200':
          description: Stream of agent results either as `ValueRunResultUpdate` objects or `CustomRunResultUpdate` objects, according to the specific streaming mode requested. Note that the stream of events is carried using the format specified in SSE spec `text/event-stream`
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/RunOutputStream'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /threads/{thread_id}/runs/wait:
    post:
      tags:
      - Thread Runs
      summary: Create a run on a thread and block waiting for the result of the run
      description: Create a run on a thread and block waiting for its output. See 'GET /runs/{run_id}/wait' for details on the return values.
      operationId: create_and_wait_for_thread_run_output
      parameters:
      - description: The ID of the thread.
        required: true
        schema:
          type: string
          format: uuid
          title: Thread Id
          description: The ID of the thread.
        name: thread_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunCreateStateful'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunWaitResponseStateful'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /threads/{thread_id}/runs/{run_id}/wait:
    get:
      tags:
      - Thread Runs
      summary: Blocks waiting for the result of the run.
      description: Blocks waiting for the result of the run. See 'GET /runs/{run_id}/wait' for details on the return values.
      operationId: wait_for_thread_run_output
      parameters:
      - description: The ID of the thread.
        required: true
        schema:
          type: string
          format: uuid
          title: Thread Id
          description: The ID of the thread.
        name: thread_id
        in: path
      - description: The ID of the run.
        required: true
        schema:
          type: string
          format: uuid
          title: Run Id
          description: The ID of the run.
        name: run_id
        in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunWaitResponseStateful'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /threads/{thread_id}/runs/{run_id}:
    parameters:
    - description: The ID of the thread.
      required: true
      schema:
        type: string
        format: uuid
        title: Thread Id
        description: The ID of the thread.
      name: thread_id
      in: path
    - description: The ID of the run.
      required: true
      schema:
        type: string
        format: uuid
        title: Run Id
        description: The ID of the run.
      name: run_id
      in: path
    get:
      tags:
      - Thread Runs
      summary: Get Run
      description: Get a run by ID.
      operationId: get_thread_run
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunStateful'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Thread Runs
      summary: Resume an interrupted Run
      description: Provide the needed input to a run to resume its execution. Can only be called for runs that are in the interrupted state Schema of the provided input must match with the schema specified in the agent specs under interrupts for the interrupt type the agent generated for this specific interruption.
      operationId: resume_thread_run
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResumePayloadSchema'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunStateful'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Thread Runs
      summary: Delete Run
      description: Delete a run by ID.
      operationId: delete_thread_run
      responses:
        '204':
          description: Success
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /threads/{thread_id}/runs/{run_id}/stream:
    get:
      tags:
      - Thread Runs
      summary: Stream output from Run
      description: Join the output stream of an existing run. See 'GET /runs/{run_id}/stream' for details on the return values.
      operationId: stream_thread_run_output
      parameters:
      - description: The ID of the thread.
        required: true
        schema:
          type: string
          format: uuid
          title: Thread Id
          description: The ID of the thread.
        name: thread_id
        in: path
      - description: The ID of the run.
        required: true
        schema:
          type: string
          format: uuid
          title: Run Id
          description: The ID of the run.
        name: run_id
        in: path
      responses:
        '200':
          description: Stream of agent results either as `ValueRunResultUpdate` objects or `CustomRunResultUpdate` objects, according to the specific streaming mode requested. Note that the stream of events is carried using the format specified in SSE spec `text/event-stream`
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/RunOutputStream'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /threads/{thread_id}/runs/{run_id}/cancel:
    post:
      tags:
      - Thread Runs
      summary: Cancel Run
      operationId: cancel_thread_run
      parameters:
      - description: The ID of the thread.
        required: true
        schema:
          type: string
          format: uuid
          title: Thread Id
          description: The ID of the thread.
        name: thread_id
        in: path
      - description: The ID of the run.
        required: true
        schema:
          type: string
          format: uuid
          title: Run Id
          description: The ID of the run.
        name: run_id
        in: path
      - required: false
        schema:
          type: boolean
          title: Wait
          default: false
        name: wait
        in: query
      - description: Action to take when cancelling the run. Possible values are `interrupt` or `rollback`. `interrupt` will simply cancel the run. `rollback` will cancel the run and delete the run and associated checkpoints afterwards.
        required: false
        schema:
          type: string
          enum:
          - interrupt
          - rollback
          title: Action
          default: interrupt
        name: action
        in: query
      responses:
        '204':
          description: Success
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ValueRunInterruptUpdate:
      title: Value Run Interrupt Update
      description: Partial result provided as value through streaming.
      type: object
      allOf:
      - $ref: '#/components/schemas/RunInterrupt'
      - type: object
        properties:
          run_id:
            type: string
            format: uuid
            title: Run Id
            description: The ID of the run.
          status:
            title: Run Status
            description: Status of the Run when this result was generated. This is particularly useful when this data structure is used for streaming results. As the server can indicate an interrupt or an error condition while streaming the result.
            $ref: '#/components/schemas/RunStatus'
        required:
        - run_id
        - status
    ErrorResponse:
      type: string
      title: ErrorResponse
      description: Error message returned from the server
    StreamingMode:
      type: string
      enum:
      - values
      - custom
    InputSchema:
      title: Input Schema
      description: The input of the agent. The schema is described in agent ACP descriptor under 'spec.input'.
      oneOf:
      - type: object
        description: 'This object contains an instance of an OpenAPI schema object, formatted as per the OpenAPI specs: https://spec.openapis.org/oas/v3.1.1.html#schema-object'
      - type: string
        description: String input to the agent.
      - type: integer
        description: Integer input to the agent.
      - type: number
        description: Number input to the agent.
      - type: boolean
        description: Boolean input to the agent.
      - type: array
        description: Array input to the agent.
        items: {}
    RunOutput:
      title: Run Output
      description: Output of a Run. Can be the final result or an interrupt.
      oneOf:
      - $ref: '#/components/schemas/RunResult'
      - $ref: '#/components/schemas/RunInterrupt'
      - $ref: '#/components/schemas/RunError'
      discriminator:
        propertyName: type
        mapping:
          result: '#/components/schemas/RunResult'
          interrupt: '#/components/schemas/RunInterrupt'
          error: '#/components/schemas/RunError'
    ResumePayloadSchema:
      title: Resume Payload Schema
      description: "This schema describes the resume payload after an interrupt. Actual schema describes a polimorphic object, which means a schema structured with `oneOf` and `discriminator`. The discriminator is the `interrupt_type`, while the schemas will be those defined in the agent spec under `interrupts`/`resume_payload` For example:          oneOf:\n  - $ref: '#/components/schemas/ApprovalResumePayload'\n  - $ref: '#/components/schemas/QuestionResumePayload'\ndiscriminator:\n  propertyName: interrupt_type\n  mapping:\n    approval: '#/components/schemas/ApprovalResumePayload'\n    question: '#/components/schemas/QuestionResumePayload'"
      oneOf:
      - type: object
        description: 'This object contains an instance of an OpenAPI schema object, formatted as per the OpenAPI specs: https://spec.openapis.org/oas/v3.1.1.html#schema-object'
      - type: string
        description: String resume to the agent.
      - type: integer
        description: Integer resume to the agent.
      - type: number
        description: Number resume to the agent.
      - type: boolean
        description: Boolean resume to the agent.
      - type: array
        description: Array input to the agent.
        items: {}
    RunInterrupt:
      title: Run Interrupt
      description: Interrupt occurred during a Run
      type: object
      properties:
        type:
          title: Output Type
          type: string
          enum:
          - interrupt
        interrupt:
          $ref: '#/components/schemas/InterruptPayloadSchema'
      required:
      - type
      - interrupt
    StreamUpdateSchema:
      type: object
      title: Stream Update Schema
      description: An update in the SSE event streaming where streaming mode is set to custom. The schema is described in agent ACP descriptor under 'spec.custom_streaming_update'.
    ValueRunResultUpdate:
      title: Value Run Result Update
      description: Partial result provided as value through streaming.
      type: object
      properties:
        type:
          title: Streaming Output Type
          type: string
          enum:
          - values
        run_id:
          type: string
          format: uuid
          title: Run Id
          description: The ID of the run.
        status:
          title: Run Status
          description: Status of the Run when this result was generated. This is particularly useful when this data structure is used for streaming results. As the server can indicate an interrupt or an error condition while streaming the result.
          $ref: '#/components/schemas/RunStatus'
        values:
          $ref: '#/components/schemas/OutputSchema'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          title: Messages
          description: Stream of messages returned by the run.
      required:
      - type
      - run_id
      - status
      - values
    RunError:
      title: Run Error
      description: Run terminated with an error
      type: object
      properties:
        type:
          title: Output Type
          type: string
          enum:
          - error
        run_id:
          type: string
          format: uuid
          title: Run Id
          description: The ID of the run.
        errcode:
          type: integer
          title: Error Code
          description: code of the error
        description:
          type: string
          title: Error Description
          description: description of the error
      required:
      - type
      - run_id
      - errcode
      - description
    ConfigSchema:
      title: Config
      description: The configuration for this agent. The schema is described in agent ACP descriptor under 'spec.config'. If missing, default values are used.
      oneOf:
      - type: object
        description: 'This object contains an instance of an OpenAPI schema object, formatted as per the OpenAPI specs: https://spec.openapis.org/oas/v3.1.1.html#schema-object'
      - type: string
        description: String config to the agent.
      - type: integer
        description: Integer config to the agent.
      - type: number
        description: Number config to the agent.
      - type: boolean
        description: Boolean config to the agent.
      - type: array
        description: Array input to the agent.
        items: {}
    RunWaitResponseStateful:
      type: object
      properties:
        run:
          $ref: '#/components/schemas/RunStateful'
          title: Run
          description: The run information.
        output:
          $ref: '#/components/schemas/RunOutput'
    InterruptPayloadSchema:
      title: Interrupt Payload
      description: "This schema describes the interrupt payload. Actual schema describes a polimorphic object, which means a schema structured with `oneOf` and `discriminator`. The discriminator is the `interrupt_type`, while the schemas will be the ones defined in the agent spec under `interrupts`/`interrupt_payload` For example:          oneOf:\n  - $ref: '#/components/schemas/ApprovalInterruptPayload'\n  - $ref: '#/components/schemas/QuestionInterruptPayload'\ndiscriminator:\n  propertyName: interruput_type\n  mapping:\n    approval: '#/components/schemas/ApprovalInterruptPayload'\n    question: '#/components/schemas/QuestionInterruptPayload'"
      oneOf:
      - type: object
        description: 'This object contains an instance of an OpenAPI schema object, formatted as per the OpenAPI specs: https://spec.openapis.org/oas/v3.1.1.html#schema-object'
      - type: string
        description: String interrupt to the agent.
      - type: integer
        description: Integer interrupt to the agent.
      - type: number
        description: Number interrupt to the agent.
      - type: boolean
        description: Boolean interrupt to the agent.
      - type: array
        description: Array input to the agent.
        items: {}
    RunCreateStateful:
      allOf:
      - $ref: '#/components/schemas/RunCreate'
      - type: object
        properties:
          stream_subgraphs:
            type: boolean
            title: Stream Subgraphs
            description: Whether to stream output from subgraphs.
            default: false
          if_not_exists:
            type: string
            enum:
            - create
            - reject
            title: If Not Exists
            description: How to handle missing thread. Must be either 'reject' (raise error if missing), or 'create' (create new thread).
            default: reject
      title: RunCreateStateful
      description: Payload for creating a stateful run.
    RunOutputStream:
      type: object
      title: Run Output Stream Event
      description: Server-sent event containing one agent output event. Actual event type is carried inside the data.
      properties:
        id:
          type: string
          description: Unique identifier of the event
          title: Event ID
        event:
          type: string
          enum:
          - agent_event
          description: Event type. This is the constant string `agent_event` to be compatible with SSE spec. The actual type differentiation is done in the event itself.
        data:
          title: Stream Event Payload
          description: A serialized JSON data structure carried in the SSE event data field. The event can carry either a full `ValueRunResultUpdate`, if streaming mode is `values` or an `CustomRunResultUpdate` if streaming mode is `custom`
          oneOf:
          - $ref: '#/components/schemas/ValueRunResultUpdate'
          - $ref: '#/components/schemas/CustomRunResultUpdate'
          - $ref: '#/components/schemas/ValueRunInterruptUpdate'
          - $ref: '#/components/schemas/ValueRunErrorUpdate'
          discriminator:
            propertyName: type
            mapping:
              values: '#/components/schemas/ValueRunResultUpdate'
              custom: '#/components/schemas/CustomRunResultUpdate'
              interrupt: '#/components/schemas/ValueRunInterruptUpdate'
              error: '#/components/schemas/ValueRunErrorUpdate'
      required:
      - id
      - event
      - data
    RunStateful:
      title: Agent Run Stateful
      description: Holds all the information of a stateful run
      allOf:
      - $ref: '#/components/schemas/Run'
      - type: object
        properties:
          creation:
            $ref: '#/components/schemas/RunCreateStateful'
            title: Creation
            description: ''
        required:
        - creation
    RunCreate:
      properties:
        agent_id:
          type: string
          title: Agent Id
          description: The agent ID to run. If not provided will use the default agent for this service.
        input:
          $ref: '#/components/schemas/InputSchema'
        metadata:
          type: object
          title: Metadata
          description: Metadata to assign to the run.
        config:
          properties:
            tags:
              items:
                type: string
              type: array
              title: Tags
            recursion_limit:
              type: integer
              title: Recursion Limit
            configurable:
              $ref: '#/components/schemas/ConfigSchema'
          type: object
          title: Config
          description: The configuration for the agent.
        webhook:
          type: string
          format: uri
          maxLength: 65536
          minLength: 1
          title: Status change webhook
          description: Webhook to call upon change of run status. This is a url that accepts a POST containing the `Run` object as body. See Callbacks definition.
        stream_mode:
          anyOf:
          - items:
              $ref: '#/components/schemas/StreamingMode'
            type: array
          - $ref: '#/components/schemas/StreamingMode'
          - type: 'null'
          title: Stream Mode
          description: If populated, indicates that the client requests to stream results with the specified streaming mode(s). The requested streaming mode(s) must be one or more of those supported by the agent as declared in agent ACP descriptor  under `specs.capabilities`
          default: null
        on_disconnect:
          type: string
          enum:
          - cancel
          - continue
          title: On Disconnect
          description: The disconnect mode to use. Must be one of 'cancel' or 'continue'.
          default: cancel
        multitask_strategy:
          type: string
          enum:
          - reject
          - rollback
          - interrupt
          - enqueue
          title: Multitask Strategy
          description: Multitask strategy to use. Must be one of 'reject', 'interrupt', 'rollback', or 'enqueue'.
          default: reject
        after_seconds:
          type: integer
          title: After Seconds
          description: The number of seconds to wait before starting the run. Use to schedule future runs.
      type: object
      required: []
      title: RunCreateStateful
      description: Payload for creating a run.
    OutputSchema:
      title: Output Schema
      description: The output of the agent. The schema is described in agent ACP descriptor under 'spec.output'.
      oneOf:
      - type: object
        description: 'This object contains an instance of an OpenAPI schema object, formatted as per the OpenAPI specs: https://spec.openapis.org/oas/v3.1.1.html#schema-object'
      - type: string
        description: String output to the agent.
      - type: integer
        description: Integer output to the agent.
      - type: number
        description: Number output to the agent.
      - type: boolean
        description: Boolean output to the agent.
      - type: array
        description: Array input to the agent.
        items: {}
    RunResult:
      title: Run Result
      description: Final result of a Run.
      type: object
      properties:
        type:
          title: Output Type
          type: string
          enum:
          - result
        values:
          $ref: '#/components/schemas/OutputSchema'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          title: Messages
          description: The messages returned by the run.
      required:
      - type
    Message:
      type: object
      properties:
        role:
          type: string
          title: Role
          description: The role of the message.
        content:
          title: Content
          description: The content of the message.
          oneOf:
          - type: string
          - type: array
            items:
              anyOf:
              - type: object
                properties:
                  text:
                    type: string
                  type:
                    const: text
                  metadata:
                    type: object
                required:
                - text
                - type
                title: MessageTextBlock
              - type: object
                properties:
                  type:
                    type: string
                  metadata:
                    type: object
                required:
                - type
                title: MessageAnyBlock
        id:
          type: string
          title: Id
          description: The ID of the message.
        metadata:
          type: object
          title: Metadata
          description: The metadata of the message.
      required:
      - role
      - content
    Run:
      title: Agent Run
      description: Holds common information of a run
      properties:
        run_id:
          type: string
          format: uuid
          title: Run Id
          description: The ID of the run.
        thread_id:
          type: string
          format: uuid
          title: Agent ID
          description: Optional Thread ID wher the Run belongs to. This is populated only for runs on agents agents supporting Threads.
        agent_id:
          type: string
          format: uuid
          title: Agent Id
          description: The agent that was used for this run.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The time the run was created.
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: The last time the run was updated.
        status:
          $ref: '#/components/schemas/RunStatus'
          title: Status
          description: The status of the run. One of 'pending', 'error', 'success', 'timeout', 'interrupted'.
      required:
      - run_id
      - agent_id
      - created_at
      - updated_at
      - status
    CustomRunResultUpdate:
      title: Custom Run Result Upda

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/agntcy/refs/heads/main/openapi/agntcy-thread-runs-api-openapi.yml