---
title: "Retrieve Run"
method: GET
path: "/v1/runs/{run_id}"
tags: ["runs"]
---

# Retrieve Run

`GET /v1/runs/{run_id}`

Get the status of a run.

## Path parameters

- `run_id` string, required

## Response `200`

Successful Response

- Run — Representation of a run - a conversation or processing session for an agent. Runs track when agents process messages and maintain the relationship between agents, steps, and messages. Parameters: id (str): The unique identifier of the run (prefixed with 'run-'). status (JobStatus): The current status of the run. created_at (datetime): The timestamp when the run was created. completed_at (datetime): The timestamp when the run was completed. agent_id (str): The unique identifier of the agent associated with the run. stop_reason (StopReasonType): The reason why the run was stopped. background (bool): Whether the run was created in background mode. metadata (dict): Additional metadata for the run. request_config (LettaRequestConfig): The request configuration for the run.
  - `id` string — The human-friendly ID of the Run
  - `status` 'created' | 'running' | 'completed' | 'failed' | 'cancelled' — Status of the run.
  - `created_at` string, date-time — The timestamp when the run was created.
  - `completed_at` string, date-time, nullable — The timestamp when the run was completed.
  - `agent_id` string, required — The unique identifier of the agent associated with the run.
  - `background` boolean, nullable — Whether the run was created in background mode.
  - `metadata` object, nullable — Additional metadata for the run.
  - `request_config` LettaRequestConfig
    - `use_assistant_message` boolean — Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
    - `assistant_message_tool_name` string — The name of the designated message tool.
    - `assistant_message_tool_kwarg` string — The name of the message argument in the designated message tool.
    - `include_return_message_types` MessageType[], nullable — Only return specified message types in the response. If `None` (default) returns all messages.
  - `stop_reason` 'end_turn' | 'error' | 'llm_api_error' | 'invalid_llm_response' | 'invalid_tool_call' | 'max_steps' | 'no_tool_call' | 'tool_rule' | 'cancelled' | 'requires_approval'
  - `callback_url` string, nullable — If set, POST to this URL when the run completes.
  - `callback_sent_at` string, date-time, nullable — Timestamp when the callback was last attempted.
  - `callback_status_code` integer, nullable — HTTP status code returned by the callback endpoint.
  - `callback_error` string, nullable — Optional error message from attempting to POST the callback endpoint.
  - `ttft_ns` integer, nullable — Time to first token for a run in nanoseconds
  - `total_duration_ns` integer, nullable — Total run duration in nanoseconds

## Other responses

- `422` — Validation Error

## Changes

- **2025-09-29** `ac8e1eb68404` — 4 warning, 4 info
  - removed the optional property `created_by_id` from the response with the `200` status
  - removed the optional property `job_type` from the response with the `200` status
  - removed the optional property `last_updated_by_id` from the response with the `200` status
  - removed the optional property `updated_at` from the response with the `200` status
  - …4 more
- **2025-09-18** `3a2d48137c08` — 2 info
  - added the optional property `agent_id` to the response with the `200` status
  - added the optional property `background` to the response with the `200` status

[Change history](https://skmtc.dev/yu-code666/apis/letta-api/changes/v1/runs/:run_id/get.md)

---

[API](https://skmtc.dev/yu-code666/apis/letta-api.md) · [All operations](https://skmtc.dev/yu-code666/apis/letta-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/yu-code666/letta-api/revisions/6cec99480c13/schema)
