GET
/threads/{thread_id}/runs/{run_id}/steps/{step_id}Retrieve a run step
Retrieves a specific step from a run. Use include[] when you need file search result content embedded in the step details.
- RetriesRetries up to 2×, 500ms backoff, 30s timeout.
thread_idstringrequired
The identifier of the thread containing the run and step.
run_idstringrequired
The identifier of the run containing the step.
step_idstringrequired
The identifier of the run step to retrieve.
include[]array<string>optional
Additional response fields to include. The supported value is `step_details.tool_calls[*].file_search.results[*].content`.
200Returns the run-step object with its identifiers, type, status, timestamps, step details, metadata, and any recorded error.
idstringrequired
The identifier of the run step, which can be referenced in API endpoints.
objectstringrequired
The object type, which is always `thread.run.step`.
created_atintegerrequired
The Unix timestamp (in seconds) for when the run step was created.
assistant_idstringrequired
The ID of the [assistant](https://developers.openai.com/api/docs/assistants/migration) associated with the run step.
thread_idstringrequired
The ID of the [thread](https://developers.openai.com/api/docs/assistants/migration) that was run.
run_idstringrequired
The ID of the [run](https://developers.openai.com/api/docs/assistants/migration) that this run step is a part of.
typestringrequired
The type of run step, which can be either `message_creation` or `tool_calls`.
statusstringrequired
The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`.
step_detailsobjectrequired
The details of the run step.
last_errorobjectrequired
The last error associated with this run step. Will be `null` if there are no errors.
expired_atintegerrequired
The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired.
cancelled_atintegerrequired
The Unix timestamp (in seconds) for when the run step was cancelled.
failed_atintegerrequired
The Unix timestamp (in seconds) for when the run step failed.
completed_atintegerrequired
The Unix timestamp (in seconds) for when the run step completed.
metadataobjectrequired
Set of 16 key-value pairs that can be attached to an object. This can be
useful for storing additional information about the object in a structured
format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings
with a maximum length of 512 characters.
usageobjectrequired
Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`.
429Returned when the request was rejected because a rate limit was exceeded.
errorobjectrequired
Error handling
A 429 is returned when the request exceeds the rate limit. thread_id, run_id, and step_id must identify the requested step, and include[] accepts only step_details.tool_calls[*].file_search.results[*].content.