> ## Documentation Index
> Fetch the complete documentation index at: https://agentcommunicationprotocol.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Get run status

> Returns the current status and details of a run.



## OpenAPI

````yaml GET /runs/{run_id}
openapi: 3.1.1
info:
  title: ACP - Agent Communication Protocol
  description: >-
    The Agent Communication Protocol (ACP) provides a standardized RESTful API
    for managing, orchestrating, and executing AI agents. It supports
    synchronous, asynchronous, and streamed agent interactions, with both
    stateless and stateful execution modes.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 0.2.0
servers:
  - url: http://localhost:8000
security: []
tags:
  - name: agent
    description: >-
      Operations for listing, describing, and managing agent definitions and
      metadata.
  - name: run
    description: >-
      Operations for creating, managing, controlling, and monitoring agent runs
      and their lifecycles.
externalDocs:
  description: Comprehensive documentation for ACP
  url: https://agentcommunicationprotocol.dev
paths:
  /runs/{run_id}:
    get:
      tags:
        - run
      summary: Get run status
      description: Returns the current status and details of a run.
      operationId: getRun
      parameters:
        - name: run_id
          in: path
          required: true
          description: UUID of the run.
          schema:
            $ref: '#/components/schemas/RunId'
      responses:
        '200':
          description: Run status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Run'
        default:
          $ref: '#/components/responses/Error'
components:
  schemas:
    RunId:
      type: string
      format: uuid
      description: Identifier of a run
    Run:
      type: object
      properties:
        agent_name:
          $ref: '#/components/schemas/AgentName'
        session_id:
          $ref: '#/components/schemas/SessionId'
        run_id:
          $ref: '#/components/schemas/RunId'
        status:
          $ref: '#/components/schemas/RunStatus'
        await_request:
          $ref: '#/components/schemas/AwaitRequest'
          nullable: true
        output:
          type: array
          items:
            $ref: '#/components/schemas/Message'
        error:
          $ref: '#/components/schemas/Error'
          nullable: true
        created_at:
          type: string
          format: date-time
        finished_at:
          type: string
          format: date-time
      required:
        - agent_name
        - run_id
        - status
        - output
        - created_at
    AgentName:
      type: string
      pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
      minLength: 1
      maxLength: 63
      description: >-
        A unique identifier for the agent following the RFC 1123 DNS label
        naming convention.
      example: chat
    SessionId:
      type: string
      format: uuid
      description: Identifier of a session
    RunStatus:
      type: string
      enum:
        - created
        - in-progress
        - awaiting
        - cancelling
        - cancelled
        - completed
        - failed
      description: Status of the run
    AwaitRequest:
      type: object
      description: Payload describing what is awaited from the client to continue the run.
    Message:
      type: object
      required:
        - parts
        - role
      properties:
        role:
          type: string
          description: >
            Specifies the sender of the message. Allowed values:

            - `"user"` for messages sent by an end-user.

            - `"agent` for anonymous agent.

            - `"agent/{agent_name}"` for messages sent by an agent, where
            `{agent_name}` is the identifier of the agent.
          examples:
            - user
            - agent
            - agent/summarizer
            - agent/data_processor
          pattern: ^(user|agent(\/[a-zA-Z0-9_\-]+)?)$
        parts:
          type: array
          items:
            $ref: '#/components/schemas/MessagePart'
          minItems: 1
          description: Ordered sequence of message parts
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        code:
          type: string
          enum:
            - server_error
            - invalid_input
            - not_found
        message:
          type: string
        data:
          type: object
          nullable: true
      required:
        - code
        - message
    MessagePart:
      type: object
      properties:
        name:
          type: string
        content_type:
          type: string
          default: text/plain
        content:
          type: string
        content_encoding:
          type: string
          enum:
            - plain
            - base64
          default: plain
        content_url:
          type: string
          format: uri
        metadata:
          oneOf:
            - $ref: '#/components/schemas/CitationMetadata'
            - $ref: '#/components/schemas/TrajectoryMetadata'
          nullable: true
      required:
        - content_type
      not:
        allOf:
          - required:
              - content
          - required:
              - content_url
      description: >-
        A part of a message, containing a specific `content_type` and either
        inline `content` or `content_url`, or neither. Only one of `content` or
        `content_url` can be provided.
    CitationMetadata:
      type: object
      description: >
        Represents an inline citation, providing info about information source.
        This is supposed to be rendered as an inline icon, optionally marking a
        text range it belongs to.

        If CitationMetadata is included together with content in the message
        part, the citation belongs to that content and renders at the
        MessagePart position. This way may be used for non-text content, like
        images and files.

        Alternatively, `start_index` and `end_index` may define a text range,
        counting characters in the current Message across all MessageParts with
        content type `text/*`, where the citation will be rendered. If one of
        `start_index` and `end_index` is missing or their values are equal, the
        citation renders only as an inline icon at that position.

        If both `start_index` and `end_index` are not present and MessagePart
        has no content, the citation renders as inline icon only at the
        MessagePart position.
      properties:
        kind:
          type: string
          const: citation
          default: citation
        start_index:
          type: integer
          nullable: true
        end_index:
          type: integer
          nullable: true
        url:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
          description: >
            Accompanying text, which may be a general description of the source
            document, or a specific snippet.
      required:
        - kind
    TrajectoryMetadata:
      type: object
      description: >
        Represents trajectory information for an agent's reasoning or tool
        execution steps. This metadata helps track the agent's decision-making
        process and provides transparency into how the agent arrived at its
        response.

        TrajectoryMetadata can capture either: 1. A reasoning step with a
        message 2. A tool execution with tool name, input, and output

        This information can be used for debugging, audit trails, and providing
        users with insight into the agent's thought process.
      properties:
        kind:
          type: string
          const: trajectory
          default: trajectory
        message:
          type: string
          nullable: true
          description: A reasoning step or thought in the agent's decision process.
        tool_name:
          type: string
          nullable: true
          description: Name of the tool that was executed.
        tool_input:
          type: object
          nullable: true
          description: Input parameters passed to the tool.
        tool_output:
          type: object
          nullable: true
          description: Output or result returned by the tool.
      required:
        - kind
  responses:
    Error:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

````