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

# Stream run events

> Returns server-sent events. Each data field contains a RunEvent object; event matches its type, and id identifies the event. Progress and tool events include a summary. Vulnerability events identify the vulnerability; status events identify the run’s state.

The connection replays retained events and then streams new ones. It closes after the run reaches stopped, completed, or failed. To reconnect, send the last received event ID in Last-Event-ID. Only later events are replayed. Reopen the stream after resuming or steering a completed run. An unknown event ID returns 400.

Every JSON payload has id, runId, type, summary, and createdAt. Additional fields depend on type:

| Type | Additional fields |
| --- | --- |
| progress | None |
| tool | None |
| vulnerability | vulnerabilityId |
| status | status: creating, running, stopped, completed, or failed |
| error | code |

The SDK exposes this stream through the Run object’s async iterator.



## OpenAPI

````yaml /reference/openapi.yaml get /runs/{id}/events
openapi: 3.1.0
info:
  title: Antigen API
  version: v1
  description: >-
    Work with the same agents, runs, and resources your team uses in Antigen.
    Requests and responses use camelCase fields. List endpoints return arrays.
    See the [overview](/reference) for authentication, updates, and errors.
servers:
  - url: https://api.antigen.sh/v1
security:
  - ApiKeyAuth: []
tags:
  - name: Agents
    description: Retrieve, compose, and register agent configurations.
  - name: Models
    description: Models available to agents in your organization.
  - name: Targets
    description: Submit testing scope for human approval.
  - name: Runs
    description: Execute agents and control their work.
  - name: Vulnerabilities
    description: Track weaknesses, remediation, status, and assignment.
  - name: Evidence
    description: Read supporting file metadata and retrieve file contents.
  - name: Reports
    description: Read and export captured engagement results.
  - name: Human tasks
    description: Ask people for help and follow their responses.
  - name: Hooks
    description: Connect status and assignment changes to your own service.
  - name: Asset Map
    description: Read your organization’s infrastructure graph.
  - name: Integrations
    description: Inspect and disconnect provider connections.
  - name: API keys
    description: Create and revoke credentials for automation.
paths:
  /runs/{id}/events:
    get:
      tags:
        - Runs
      summary: Stream run events
      description: >-
        Returns server-sent events. Each data field contains a RunEvent object;
        event matches its type, and id identifies the event. Progress and tool
        events include a summary. Vulnerability events identify the
        vulnerability; status events identify the run’s state.


        The connection replays retained events and then streams new ones. It
        closes after the run reaches stopped, completed, or failed. To
        reconnect, send the last received event ID in Last-Event-ID. Only later
        events are replayed. Reopen the stream after resuming or steering a
        completed run. An unknown event ID returns 400.


        Every JSON payload has id, runId, type, summary, and createdAt.
        Additional fields depend on type:


        | Type | Additional fields |

        | --- | --- |

        | progress | None |

        | tool | None |

        | vulnerability | vulnerabilityId |

        | status | status: creating, running, stopped, completed, or failed |

        | error | code |


        The SDK exposes this stream through the Run object’s async iterator.
      operationId: streamRunEvents
      parameters:
        - name: id
          in: path
          required: true
          description: Opaque resource identifier.
          schema:
            type: string
            minLength: 1
        - name: Last-Event-ID
          in: header
          required: false
          description: Resume after this event from the same run.
          schema:
            type: string
      responses:
        '200':
          description: Successful response.
          content:
            text/event-stream:
              schema:
                type: string
                description: Server-sent events. JSON data conforms to the RunEvent schema.
              example: >+
                id: event_123

                event: progress

                data:
                {"id":"event_123","runId":"run_123","type":"progress","summary":"Investigating
                invoice ownership checks.","createdAt":"2026-09-13T10:00:00Z"}

        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '429':
          $ref: '#/components/responses/Error429'
components:
  responses:
    Error400:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: invalid_request
              message: Check the request fields and values.
    Error401:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: unauthorized
              message: Supply a valid API key.
    Error403:
      description: Permission denied
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: forbidden
              message: The API key does not permit this operation or requested scope.
    Error404:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: not_found
              message: The resource does not exist in this organization.
    Error429:
      description: Too many requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: rate_limited
              message: Retry after the interval in Retry-After.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 1
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Stable error code.
            message:
              type: string
              description: Description of the problem.
          required:
            - code
            - message
          additionalProperties: false
      required:
        - error
      additionalProperties: false
      example:
        error:
          code: invalid_request
          message: The target value is required.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key from your organization. Supply the value directly, without a
        Bearer prefix.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.