---
title: "Get Run by ID"
method: GET
path: "/sessions/{session_id}/runs/{run_id}"
tags: ["Sessions"]
---

# Get Run by ID

`GET /sessions/{session_id}/runs/{run_id}`

Retrieve a specific run by its ID from a session. Response schema varies based on the run type (agent run, team run, or workflow run).

## Path parameters

- `session_id` string, required — Session ID to get run from
- `run_id` string, required — Run ID to retrieve

## Query parameters

- `type` 'agent' | 'team' | 'workflow'
- `user_id` string, nullable — User ID to query run from
- `db_id` string, nullable — Database ID to query run from
- `table` string, nullable — Table to query run from

## Response `200`

Run retrieved successfully

- union
  - RunSchema
    - `run_id` string, required — Unique identifier for the run
    - `parent_run_id` string, nullable — Parent run ID if this is a nested run
    - `agent_id` string, nullable — Agent ID that executed this run
    - `user_id` string, nullable — User ID associated with the run
    - `status` string, nullable — Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)
    - `run_input` string, nullable — Input provided to the run
    - `content` union — Output content from the run
      - string
      - object
    - `run_response_format` string, nullable — Format of the response (text/json)
    - `reasoning_content` string, nullable — Reasoning content if reasoning was enabled
    - `reasoning_steps` object[], nullable — List of reasoning steps
    - `metrics` object, nullable — Performance and usage metrics
    - `messages` object[], nullable — Message history for the run
    - `tools` object[], nullable — Tools used in the run
    - `events` object[], nullable — Events generated during the run
    - `created_at` string, date-time, nullable — Run creation timestamp
    - `references` object[], nullable — References cited in the run
    - `citations` object, nullable — Citations from the model (e.g., from Gemini grounding/search)
    - `reasoning_messages` object[], nullable — Reasoning process messages
    - `session_state` object, nullable — Session state at the end of the run
    - `images` object[], nullable — Images included in the run
    - `videos` object[], nullable — Videos included in the run
    - `audio` object[], nullable — Audio files included in the run
    - `files` object[], nullable — Files included in the run
    - `response_audio` object, nullable — Audio response if generated
    - `input_media` object, nullable — Input media attachments
    - `followups` string[], nullable — Followup suggestions generated after the run
    - `forked_from_run_id` string, nullable — If this run was forked from another run, the source run's ID
    - `forked_from_message_index` integer, nullable — If this run was forked, the message index at which the source was truncated
    - `forked_from_session_id` string, nullable — If this run was created via session branch, the source session's ID
    - `regenerated_from` string, nullable — If this run was produced via regenerate=true, the source run's ID
    - `last_checkpoint_at_message_index` integer, nullable — Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)
  - TeamRunSchema
    - `run_id` string, required — Unique identifier for the team run
    - `parent_run_id` string, nullable — Parent run ID if this is a nested run
    - `team_id` string, nullable — Team ID that executed this run
    - `status` string, nullable — Run status (PENDING, RUNNING, COMPLETED, ERROR, etc.)
    - `content` union — Output content from the team run
      - string
      - object
    - `reasoning_content` string, nullable — Reasoning content if reasoning was enabled
    - `reasoning_steps` object[], nullable — List of reasoning steps
    - `run_input` string, nullable — Input provided to the run
    - `run_response_format` string, nullable — Format of the response (text/json)
    - `metrics` object, nullable — Performance and usage metrics
    - `tools` object[], nullable — Tools used in the run
    - `messages` object[], nullable — Message history for the run
    - `events` object[], nullable — Events generated during the run
    - `created_at` string, date-time, nullable — Run creation timestamp
    - `references` object[], nullable — References cited in the run
    - `citations` object, nullable — Citations from the model (e.g., from Gemini grounding/search)
    - `reasoning_messages` object[], nullable — Reasoning process messages
    - `session_state` object, nullable — Session state at the end of the run
    - `input_media` object, nullable — Input media attachments
    - `images` object[], nullable — Images included in the run
    - `videos` object[], nullable — Videos included in the run
    - `audio` object[], nullable — Audio files included in the run
    - `files` object[], nullable — Files included in the run
    - `response_audio` object, nullable — Audio response if generated
    - `followups` string[], nullable — Followup suggestions generated after the run
    - `forked_from_run_id` string, nullable — If this team run was forked from another run, the source run's ID
    - `forked_from_message_index` integer, nullable — If this team run was forked, the message index at which the source was truncated
    - `forked_from_session_id` string, nullable — If this team run was created via session branch, the source session's ID
    - `regenerated_from` string, nullable — If this team run was produced via regenerate=true, the source run's ID
    - `last_checkpoint_at_message_index` integer, nullable — Message index of the most recent mid-run checkpoint (checkpoint='tool-batch' runs)
  - WorkflowRunSchema
    - `run_id` string, required — Unique identifier for the workflow run
    - `run_input` string, nullable — Input provided to the workflow
    - `events` object[], nullable — Events generated during the workflow
    - `workflow_id` string, nullable — Workflow ID that was executed
    - `user_id` string, nullable — User ID associated with the run
    - `content` union — Output content from the workflow
      - string
      - object
    - `content_type` string, nullable — Type of content returned
    - `status` string, nullable — Status of the workflow run
    - `step_results` object[], nullable — Results from each workflow step
    - `step_executor_runs` object[], nullable — Executor runs for each step
    - `step_requirements` object[], nullable — HITL step requirements (resolved state for historical display)
    - `pause_kind` string, nullable — Kind of HITL pause: 'step' or 'executor'
    - `paused_step_name` string, nullable — Name of the step that caused the pause
    - `paused_step_index` integer, nullable — Index of the step that caused the pause
    - `metrics` object, nullable — Performance and usage metrics
    - `created_at` string, date-time, nullable — Run creation timestamp
    - `reasoning_content` string, nullable — Reasoning content if reasoning was enabled
    - `reasoning_steps` object[], nullable — List of reasoning steps
    - `references` object[], nullable — References cited in the workflow
    - `citations` object, nullable — Citations from the model (e.g., from Gemini grounding/search)
    - `reasoning_messages` object[], nullable — Reasoning process messages
    - `images` object[], nullable — Images included in the workflow
    - `videos` object[], nullable — Videos included in the workflow
    - `audio` object[], nullable — Audio files included in the workflow
    - `files` object[], nullable — Files included in the workflow
    - `response_audio` object, nullable — Audio response if generated

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Session or run not found
- `422` — Invalid session type
- `500` — Internal Server Error

---

[API](https://skmtc.net/agno/apis/agno-api-reference.md) · [All operations](https://skmtc.net/agno/apis/agno-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agno/agno-api-reference/revisions/5f6149d395d0/schema)
