Skip to content
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Primary navigation

Steps

Build Assistants that can call models and use tools.

List run steps
Deprecated
GET/threads/{thread_id}/runs/{run_id}/steps
Retrieve run step
Deprecated
GET/threads/{thread_id}/runs/{run_id}/steps/{step_id}
ModelsExpand Collapse
CodeInterpreterLogs object { index, type, logs }

Text output from the Code Interpreter tool call as part of a run step.

index: number

The index of the output in the outputs array.

type: "logs"

Always logs.

logs: optional string

The text output from the Code Interpreter tool call.

CodeInterpreterOutputImage object { index, type, image }
index: number

The index of the output in the outputs array.

type: "image"

Always image.

image: optional object { file_id }
file_id: optional string

The file ID of the image.

CodeInterpreterToolCall object { id, code_interpreter, type }

Details of the Code Interpreter tool call the run step was involved in.

id: string

The ID of the tool call.

code_interpreter: object { input, outputs }

The Code Interpreter tool call definition.

input: string

The input to the Code Interpreter tool call.

outputs: array of object { logs, type } or object { image, type }

The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (logs) or images (image). Each of these are represented by a different object type.

One of the following:
CodeInterpreterLogOutput object { logs, type }

Text output from the Code Interpreter tool call as part of a run step.

logs: string

The text output from the Code Interpreter tool call.

type: "logs"

Always logs.

CodeInterpreterImageOutput object { image, type }
image: object { file_id }
file_id: string

The file ID of the image.

type: "image"

Always image.

type: "code_interpreter"

The type of tool call. This is always going to be code_interpreter for this type of tool call.

CodeInterpreterToolCallDelta object { index, type, id, code_interpreter }

Details of the Code Interpreter tool call the run step was involved in.

index: number

The index of the tool call in the tool calls array.

type: "code_interpreter"

The type of tool call. This is always going to be code_interpreter for this type of tool call.

id: optional string

The ID of the tool call.

code_interpreter: optional object { input, outputs }

The Code Interpreter tool call definition.

input: optional string

The input to the Code Interpreter tool call.

outputs: optional array of CodeInterpreterLogs { index, type, logs } or CodeInterpreterOutputImage { index, type, image }

The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (logs) or images (image). Each of these are represented by a different object type.

One of the following:
CodeInterpreterLogs object { index, type, logs }

Text output from the Code Interpreter tool call as part of a run step.

index: number

The index of the output in the outputs array.

type: "logs"

Always logs.

logs: optional string

The text output from the Code Interpreter tool call.

CodeInterpreterOutputImage object { index, type, image }
index: number

The index of the output in the outputs array.

type: "image"

Always image.

image: optional object { file_id }
file_id: optional string

The file ID of the image.

FileSearchToolCall object { id, file_search, type }
id: string

The ID of the tool call object.

One of the following:
type: "file_search"

The type of tool call. This is always going to be file_search for this type of tool call.

FileSearchToolCallDelta object { file_search, index, type, id }
index: number

The index of the tool call in the tool calls array.

type: "file_search"

The type of tool call. This is always going to be file_search for this type of tool call.

id: optional string

The ID of the tool call object.

FunctionToolCall object { id, function, type }
id: string

The ID of the tool call object.

function: object { arguments, name, output }

The definition of the function that was called.

arguments: string

The arguments passed to the function.

name: string

The name of the function.

output: string or null

The output of the function. This will be null if the outputs have not been submitted yet.

type: "function"

The type of tool call. This is always going to be function for this type of tool call.

FunctionToolCallDelta object { index, type, id, function }
index: number

The index of the tool call in the tool calls array.

type: "function"

The type of tool call. This is always going to be function for this type of tool call.

id: optional string

The ID of the tool call object.

function: optional object { arguments, name, output }

The definition of the function that was called.

arguments: optional string

The arguments passed to the function.

name: optional string

The name of the function.

output: optional string or null

The output of the function. This will be null if the outputs have not been submitted yet.

MessageCreationStepDetails object { message_creation, type }

Details of the message creation by the run step.

message_creation: object { message_id }
message_id: string

The ID of the message that was created by this run step.

type: "message_creation"

Always message_creation.

RunStep object { id, assistant_id, cancelled_at, 13 more }

Represents a step in execution of a run.

id: string

The identifier of the run step, which can be referenced in API endpoints.

assistant_id: string

The ID of the assistant associated with the run step.

cancelled_at: number or null

The Unix timestamp (in seconds) for when the run step was cancelled.

formatunixtime
completed_at: number or null

The Unix timestamp (in seconds) for when the run step completed.

formatunixtime
created_at: number

The Unix timestamp (in seconds) for when the run step was created.

formatunixtime
expired_at: number or null

The Unix timestamp (in seconds) for when the run step expired. A step is considered expired if the parent run is expired.

formatunixtime
failed_at: number or null

The Unix timestamp (in seconds) for when the run step failed.

formatunixtime
last_error: object { code, message } or null

The last error associated with this run step. Will be null if there are no errors.

code: "server_error" or "rate_limit_exceeded"

One of server_error or rate_limit_exceeded.

One of the following:
"server_error"
"rate_limit_exceeded"
message: string

A human-readable description of the error.

metadata: Metadata or null

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.

object: "thread.run.step"

The object type, which is always thread.run.step.

run_id: string

The ID of the run that this run step is a part of.

status: "in_progress" or "cancelled" or "failed" or 2 more

The status of the run step, which can be either in_progress, cancelled, failed, completed, or expired.

One of the following:
"in_progress"
"cancelled"
"failed"
"completed"
"expired"
step_details: MessageCreationStepDetails { message_creation, type } or ToolCallsStepDetails { tool_calls, type }

The details of the run step.

One of the following:
MessageCreationStepDetails object { message_creation, type }

Details of the message creation by the run step.

message_creation: object { message_id }
message_id: string

The ID of the message that was created by this run step.

type: "message_creation"

Always message_creation.

ToolCallsStepDetails object { tool_calls, type }

Details of the tool call.

tool_calls: array of CodeInterpreterToolCall { id, code_interpreter, type } or FileSearchToolCall { id, file_search, type } or FunctionToolCall { id, function, type }

An array of tool calls the run step was involved in. These can be associated with one of three types of tools: code_interpreter, file_search, or function.

One of the following:
CodeInterpreterToolCall object { id, code_interpreter, type }

Details of the Code Interpreter tool call the run step was involved in.

id: string

The ID of the tool call.

code_interpreter: object { input, outputs }

The Code Interpreter tool call definition.

input: string

The input to the Code Interpreter tool call.

outputs: array of object { logs, type } or object { image, type }

The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (logs) or images (image). Each of these are represented by a different object type.

One of the following:
CodeInterpreterLogOutput object { logs, type }

Text output from the Code Interpreter tool call as part of a run step.

logs: string

The text output from the Code Interpreter tool call.

type: "logs"

Always logs.

CodeInterpreterImageOutput object { image, type }
image: object { file_id }
file_id: string

The file ID of the image.

type: "image"

Always image.

type: "code_interpreter"

The type of tool call. This is always going to be code_interpreter for this type of tool call.

FileSearchToolCall object { id, file_search, type }
id: string

The ID of the tool call object.

One of the following:
type: "file_search"

The type of tool call. This is always going to be file_search for this type of tool call.

FunctionToolCall object { id, function, type }
id: string

The ID of the tool call object.

function: object { arguments, name, output }

The definition of the function that was called.

arguments: string

The arguments passed to the function.

name: string

The name of the function.

output: string or null

The output of the function. This will be null if the outputs have not been submitted yet.

type: "function"

The type of tool call. This is always going to be function for this type of tool call.

type: "tool_calls"

Always tool_calls.

thread_id: string

The ID of the thread that was run.

type: "message_creation" or "tool_calls"

The type of run step, which can be either message_creation or tool_calls.

One of the following:
"message_creation"
"tool_calls"
usage: object { completion_tokens, prompt_tokens, total_tokens } or null

Usage statistics related to the run step. This value will be null while the run step’s status is in_progress.

completion_tokens: number

Number of completion tokens used over the course of the run step.

prompt_tokens: number

Number of prompt tokens used over the course of the run step.

total_tokens: number

Total number of tokens used (prompt + completion).

RunStepDeltaEvent object { id, delta, object }

Represents a run step delta i.e. any changed fields on a run step during streaming.

id: string

The identifier of the run step, which can be referenced in API endpoints.

delta: object { step_details }

The delta containing the fields that have changed on the run step.

step_details: optional RunStepDeltaMessageDelta { type, message_creation } or ToolCallDeltaObject { type, tool_calls }

The details of the run step.

One of the following:
RunStepDeltaMessageDelta object { type, message_creation }

Details of the message creation by the run step.

type: "message_creation"

Always message_creation.

message_creation: optional object { message_id }
message_id: optional string

The ID of the message that was created by this run step.

ToolCallDeltaObject object { type, tool_calls }

Details of the tool call.

type: "tool_calls"

Always tool_calls.

tool_calls: optional array of CodeInterpreterToolCallDelta { index, type, id, code_interpreter } or FileSearchToolCallDelta { file_search, index, type, id } or FunctionToolCallDelta { index, type, id, function }

An array of tool calls the run step was involved in. These can be associated with one of three types of tools: code_interpreter, file_search, or function.

One of the following:
CodeInterpreterToolCallDelta object { index, type, id, code_interpreter }

Details of the Code Interpreter tool call the run step was involved in.

index: number

The index of the tool call in the tool calls array.

type: "code_interpreter"

The type of tool call. This is always going to be code_interpreter for this type of tool call.

id: optional string

The ID of the tool call.

code_interpreter: optional object { input, outputs }

The Code Interpreter tool call definition.

input: optional string

The input to the Code Interpreter tool call.

outputs: optional array of CodeInterpreterLogs { index, type, logs } or CodeInterpreterOutputImage { index, type, image }

The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (logs) or images (image). Each of these are represented by a different object type.

One of the following:
CodeInterpreterLogs object { index, type, logs }

Text output from the Code Interpreter tool call as part of a run step.

index: number

The index of the output in the outputs array.

type: "logs"

Always logs.

logs: optional string

The text output from the Code Interpreter tool call.

CodeInterpreterOutputImage object { index, type, image }
index: number

The index of the output in the outputs array.

type: "image"

Always image.

image: optional object { file_id }
file_id: optional string

The file ID of the image.

FileSearchToolCallDelta object { file_search, index, type, id }
index: number

The index of the tool call in the tool calls array.

type: "file_search"

The type of tool call. This is always going to be file_search for this type of tool call.

id: optional string

The ID of the tool call object.

FunctionToolCallDelta object { index, type, id, function }
index: number

The index of the tool call in the tool calls array.

type: "function"

The type of tool call. This is always going to be function for this type of tool call.

id: optional string

The ID of the tool call object.

function: optional object { arguments, name, output }

The definition of the function that was called.

arguments: optional string

The arguments passed to the function.

name: optional string

The name of the function.

output: optional string or null

The output of the function. This will be null if the outputs have not been submitted yet.

object: "thread.run.step.delta"

The object type, which is always thread.run.step.delta.

RunStepDeltaMessageDelta object { type, message_creation }

Details of the message creation by the run step.

type: "message_creation"

Always message_creation.

message_creation: optional object { message_id }
message_id: optional string

The ID of the message that was created by this run step.

RunStepInclude = "step_details.tool_calls[*].file_search.results[*].content"
ToolCallDeltaObject object { type, tool_calls }

Details of the tool call.

type: "tool_calls"

Always tool_calls.

tool_calls: optional array of CodeInterpreterToolCallDelta { index, type, id, code_interpreter } or FileSearchToolCallDelta { file_search, index, type, id } or FunctionToolCallDelta { index, type, id, function }

An array of tool calls the run step was involved in. These can be associated with one of three types of tools: code_interpreter, file_search, or function.

One of the following:
CodeInterpreterToolCallDelta object { index, type, id, code_interpreter }

Details of the Code Interpreter tool call the run step was involved in.

index: number

The index of the tool call in the tool calls array.

type: "code_interpreter"

The type of tool call. This is always going to be code_interpreter for this type of tool call.

id: optional string

The ID of the tool call.

code_interpreter: optional object { input, outputs }

The Code Interpreter tool call definition.

input: optional string

The input to the Code Interpreter tool call.

outputs: optional array of CodeInterpreterLogs { index, type, logs } or CodeInterpreterOutputImage { index, type, image }

The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (logs) or images (image). Each of these are represented by a different object type.

One of the following:
CodeInterpreterLogs object { index, type, logs }

Text output from the Code Interpreter tool call as part of a run step.

index: number

The index of the output in the outputs array.

type: "logs"

Always logs.

logs: optional string

The text output from the Code Interpreter tool call.

CodeInterpreterOutputImage object { index, type, image }
index: number

The index of the output in the outputs array.

type: "image"

Always image.

image: optional object { file_id }
file_id: optional string

The file ID of the image.

FileSearchToolCallDelta object { file_search, index, type, id }
index: number

The index of the tool call in the tool calls array.

type: "file_search"

The type of tool call. This is always going to be file_search for this type of tool call.

id: optional string

The ID of the tool call object.

FunctionToolCallDelta object { index, type, id, function }
index: number

The index of the tool call in the tool calls array.

type: "function"

The type of tool call. This is always going to be function for this type of tool call.

id: optional string

The ID of the tool call object.

function: optional object { arguments, name, output }

The definition of the function that was called.

arguments: optional string

The arguments passed to the function.

name: optional string

The name of the function.

output: optional string or null

The output of the function. This will be null if the outputs have not been submitted yet.

ToolCallsStepDetails object { tool_calls, type }

Details of the tool call.

tool_calls: array of CodeInterpreterToolCall { id, code_interpreter, type } or FileSearchToolCall { id, file_search, type } or FunctionToolCall { id, function, type }

An array of tool calls the run step was involved in. These can be associated with one of three types of tools: code_interpreter, file_search, or function.

One of the following:
CodeInterpreterToolCall object { id, code_interpreter, type }

Details of the Code Interpreter tool call the run step was involved in.

id: string

The ID of the tool call.

code_interpreter: object { input, outputs }

The Code Interpreter tool call definition.

input: string

The input to the Code Interpreter tool call.

outputs: array of object { logs, type } or object { image, type }

The outputs from the Code Interpreter tool call. Code Interpreter can output one or more items, including text (logs) or images (image). Each of these are represented by a different object type.

One of the following:
CodeInterpreterLogOutput object { logs, type }

Text output from the Code Interpreter tool call as part of a run step.

logs: string

The text output from the Code Interpreter tool call.

type: "logs"

Always logs.

CodeInterpreterImageOutput object { image, type }
image: object { file_id }
file_id: string

The file ID of the image.

type: "image"

Always image.

type: "code_interpreter"

The type of tool call. This is always going to be code_interpreter for this type of tool call.

FileSearchToolCall object { id, file_search, type }
id: string

The ID of the tool call object.

One of the following:
type: "file_search"

The type of tool call. This is always going to be file_search for this type of tool call.

FunctionToolCall object { id, function, type }
id: string

The ID of the tool call object.

function: object { arguments, name, output }

The definition of the function that was called.

arguments: string

The arguments passed to the function.

name: string

The name of the function.

output: string or null

The output of the function. This will be null if the outputs have not been submitted yet.

type: "function"

The type of tool call. This is always going to be function for this type of tool call.

type: "tool_calls"

Always tool_calls.