Sample - OpenAI API
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.

4 parameters
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`.

2 status codes
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`.
Allowed: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`.
Allowed:message_creationtool_calls
statusstringrequired
The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`.
Allowed:in_progresscancelledfailedcompletedexpired
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.