Skip to content
Primary navigation

Runs

List runs
Deprecated
beta.threads.runs.list(thread_id, **kwargs) -> CursorPage<Run { id, assistant_id, cancelled_at, 24 more } >
GET/threads/{thread_id}/runs
Create run
Deprecated
beta.threads.runs.create(thread_id, **kwargs) -> Run { id, assistant_id, cancelled_at, 24 more }
POST/threads/{thread_id}/runs
Retrieve run
Deprecated
beta.threads.runs.retrieve(run_id, **kwargs) -> Run { id, assistant_id, cancelled_at, 24 more }
GET/threads/{thread_id}/runs/{run_id}
Modify run
Deprecated
beta.threads.runs.update(run_id, **kwargs) -> Run { id, assistant_id, cancelled_at, 24 more }
POST/threads/{thread_id}/runs/{run_id}
Submit tool outputs to run
Deprecated
beta.threads.runs.submit_tool_outputs(run_id, **kwargs) -> Run { id, assistant_id, cancelled_at, 24 more }
POST/threads/{thread_id}/runs/{run_id}/submit_tool_outputs
Cancel a run
Deprecated
beta.threads.runs.cancel(run_id, **kwargs) -> Run { id, assistant_id, cancelled_at, 24 more }
POST/threads/{thread_id}/runs/{run_id}/cancel
ModelsExpand Collapse
class RequiredActionFunctionToolCall { id, function, type }

Tool call objects

id: String

The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the Submit tool outputs to run endpoint.

function: { arguments, name}

The function definition.

arguments: String

The arguments that the model expects you to pass to the function.

name: String

The name of the function.

type: :function

The type of tool call the output is required for. For now, this is always function.

class Run { id, assistant_id, cancelled_at, 24 more }

Represents an execution run on a thread.

id: String

The identifier, which can be referenced in API endpoints.

assistant_id: String

The ID of the assistant used for execution of this run.

cancelled_at: Integer

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

completed_at: Integer

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

created_at: Integer

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

expires_at: Integer

The Unix timestamp (in seconds) for when the run will expire.

failed_at: Integer

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

incomplete_details: { reason}

Details on why the run is incomplete. Will be null if the run is not incomplete.

reason: :max_completion_tokens | :max_prompt_tokens

The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run.

Accepts one of the following:
:max_completion_tokens
:max_prompt_tokens
instructions: String

The instructions that the assistant used for this run.

last_error: { code, message}

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

code: :server_error | :rate_limit_exceeded | :invalid_prompt

One of server_error, rate_limit_exceeded, or invalid_prompt.

Accepts one of the following:
:server_error
:rate_limit_exceeded
:invalid_prompt
message: String

A human-readable description of the error.

max_completion_tokens: Integer

The maximum number of completion tokens specified to have been used over the course of the run.

minimum256
max_prompt_tokens: Integer

The maximum number of prompt tokens specified to have been used over the course of the run.

minimum256
metadata: Metadata

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.

model: String

The model that the assistant used for this run.

object: :"thread.run"

The object type, which is always thread.run.

parallel_tool_calls: bool

Whether to enable parallel function calling during tool use.

required_action: { submit_tool_outputs, type}

Details on the action required to continue the run. Will be null if no action is required.

submit_tool_outputs: { tool_calls}

Details on the tool outputs needed for this run to continue.

tool_calls: Array[RequiredActionFunctionToolCall { id, function, type } ]

A list of the relevant tool calls.

id: String

The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the Submit tool outputs to run endpoint.

function: { arguments, name}

The function definition.

arguments: String

The arguments that the model expects you to pass to the function.

name: String

The name of the function.

type: :function

The type of tool call the output is required for. For now, this is always function.

type: :submit_tool_outputs

For now, this is always submit_tool_outputs.

Specifies the format that the model must output. Compatible with GPT-4o, GPT-4 Turbo, and all GPT-3.5 Turbo models since gpt-3.5-turbo-1106.

Setting to { "type": "json_schema", "json_schema": {...} } enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide.

Setting to { "type": "json_object" } enables JSON mode, which ensures the message the model generates is valid JSON.

Important: when using JSON mode, you must also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if finish_reason="length", which indicates the generation exceeded max_tokens or the conversation exceeded the max context length.

started_at: Integer

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

status: RunStatus

The status of the run, which can be either queued, in_progress, requires_action, cancelling, cancelled, failed, completed, incomplete, or expired.

thread_id: String

The ID of the thread that was executed on as a part of this run.

Controls which (if any) tool is called by the model. none means the model will not call any tools and instead generates a message. auto is the default value and means the model can pick between generating a message or calling one or more tools. required means the model must call one or more tools before responding to the user. Specifying a particular tool like {"type": "file_search"} or {"type": "function", "function": {"name": "my_function"}} forces the model to call that tool.

tools: Array[AssistantTool]

The list of tools that the assistant used for this run.

Accepts one of the following:
class CodeInterpreterTool { type }
type: :code_interpreter

The type of tool being defined: code_interpreter

class FileSearchTool { type, file_search }
type: :file_search

The type of tool being defined: file_search

Accepts one of the following:
class FunctionTool { function, type }
function: FunctionDefinition { name, description, parameters, strict }
type: :function

The type of tool being defined: function

truncation_strategy: { type, last_messages}

Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run.

type: :auto | :last_messages

The truncation strategy to use for the thread. The default is auto. If set to last_messages, the thread will be truncated to the n most recent messages in the thread. When set to auto, messages in the middle of the thread will be dropped to fit the context length of the model, max_prompt_tokens.

Accepts one of the following:
:auto
:last_messages
last_messages: Integer

The number of most recent messages from the thread when constructing the context for the run.

minimum1
usage: { completion_tokens, prompt_tokens, total_tokens}

Usage statistics related to the run. This value will be null if the run is not in a terminal state (i.e. in_progress, queued, etc.).

completion_tokens: Integer

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

prompt_tokens: Integer

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

total_tokens: Integer

Total number of tokens used (prompt + completion).

temperature: Float

The sampling temperature used for this run. If not set, defaults to 1.

top_p: Float

The nucleus sampling value used for this run. If not set, defaults to 1.

RunStatus = :queued | :in_progress | :requires_action | 6 more

The status of the run, which can be either queued, in_progress, requires_action, cancelling, cancelled, failed, completed, incomplete, or expired.

Accepts one of the following:
:queued
:in_progress
:requires_action
:cancelling
:cancelled
:failed
:completed
:incomplete
:expired

RunsSteps

List run steps
Deprecated
beta.threads.runs.steps.list(run_id, **kwargs) -> CursorPage<RunStep { id, assistant_id, cancelled_at, 13 more } >
GET/threads/{thread_id}/runs/{run_id}/steps
Retrieve run step
Deprecated
beta.threads.runs.steps.retrieve(step_id, **kwargs) -> RunStep { id, assistant_id, cancelled_at, 13 more }
GET/threads/{thread_id}/runs/{run_id}/steps/{step_id}
ModelsExpand Collapse
class CodeInterpreterLogs { index, type, logs }

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

index: Integer

The index of the output in the outputs array.

type: :logs

Always logs.

logs: String

The text output from the Code Interpreter tool call.

class CodeInterpreterOutputImage { index, type, image }
index: Integer

The index of the output in the outputs array.

type: :image

Always image.

image: { file_id}
file_id: String

The file ID of the image.

class CodeInterpreterToolCall { 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: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[{ logs, type} | { 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.

Accepts one of the following:
class Logs { 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.

class Image { image, type }
image: { 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.

class CodeInterpreterToolCallDelta { index, type, id, code_interpreter }

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

index: Integer

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: String

The ID of the tool call.

code_interpreter: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[CodeInterpreterLogs { index, type, logs } | 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.

Accepts one of the following:
class CodeInterpreterLogs { index, type, logs }

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

index: Integer

The index of the output in the outputs array.

type: :logs

Always logs.

logs: String

The text output from the Code Interpreter tool call.

class CodeInterpreterOutputImage { index, type, image }
index: Integer

The index of the output in the outputs array.

type: :image

Always image.

image: { file_id}
file_id: String

The file ID of the image.

class FileSearchToolCall { id, file_search, type }
id: String

The ID of the tool call object.

Accepts 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.

class FileSearchToolCallDelta { file_search, index, type, id }
index: Integer

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: String

The ID of the tool call object.

class FunctionToolCall { id, function, type }
id: String

The ID of the tool call object.

function: { 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

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.

class FunctionToolCallDelta { index, type, id, function }
index: Integer

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: String

The ID of the tool call object.

function: { 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

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

class MessageCreationStepDetails { message_creation, type }

Details of the message creation by the run step.

message_creation: { message_id}
message_id: String

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

type: :message_creation

Always message_creation.

class RunStep { 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: Integer

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

completed_at: Integer

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

created_at: Integer

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

expired_at: Integer

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

failed_at: Integer

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

last_error: { code, message}

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

code: :server_error | :rate_limit_exceeded

One of server_error or rate_limit_exceeded.

Accepts one of the following:
:server_error
:rate_limit_exceeded
message: String

A human-readable description of the error.

metadata: Metadata

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 | :cancelled | :failed | 2 more

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

Accepts one of the following:
:in_progress
:cancelled
:failed
:completed
:expired
step_details: MessageCreationStepDetails { message_creation, type } | ToolCallsStepDetails { tool_calls, type }

The details of the run step.

Accepts one of the following:
class MessageCreationStepDetails { message_creation, type }

Details of the message creation by the run step.

message_creation: { message_id}
message_id: String

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

type: :message_creation

Always message_creation.

class ToolCallsStepDetails { tool_calls, type }

Details of the tool call.

tool_calls: Array[ToolCall]

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.

Accepts one of the following:
class CodeInterpreterToolCall { 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: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[{ logs, type} | { 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.

Accepts one of the following:
class Logs { 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.

class Image { image, type }
image: { 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.

class FileSearchToolCall { id, file_search, type }
id: String

The ID of the tool call object.

Accepts 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.

class FunctionToolCall { id, function, type }
id: String

The ID of the tool call object.

function: { 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

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 | :tool_calls

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

Accepts one of the following:
:message_creation
:tool_calls
usage: { completion_tokens, prompt_tokens, total_tokens}

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

completion_tokens: Integer

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

prompt_tokens: Integer

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

total_tokens: Integer

Total number of tokens used (prompt + completion).

class RunStepDelta { step_details }

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

step_details: RunStepDeltaMessageDelta { type, message_creation } | ToolCallDeltaObject { type, tool_calls }

The details of the run step.

Accepts one of the following:
class RunStepDeltaMessageDelta { type, message_creation }

Details of the message creation by the run step.

type: :message_creation

Always message_creation.

message_creation: { message_id}
message_id: String

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

class ToolCallDeltaObject { type, tool_calls }

Details of the tool call.

type: :tool_calls

Always tool_calls.

tool_calls: Array[ToolCallDelta]

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.

Accepts one of the following:
class CodeInterpreterToolCallDelta { index, type, id, code_interpreter }

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

index: Integer

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: String

The ID of the tool call.

code_interpreter: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[CodeInterpreterLogs { index, type, logs } | 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.

Accepts one of the following:
class CodeInterpreterLogs { index, type, logs }

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

index: Integer

The index of the output in the outputs array.

type: :logs

Always logs.

logs: String

The text output from the Code Interpreter tool call.

class CodeInterpreterOutputImage { index, type, image }
index: Integer

The index of the output in the outputs array.

type: :image

Always image.

image: { file_id}
file_id: String

The file ID of the image.

class FileSearchToolCallDelta { file_search, index, type, id }
index: Integer

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: String

The ID of the tool call object.

class FunctionToolCallDelta { index, type, id, function }
index: Integer

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: String

The ID of the tool call object.

function: { 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

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

class RunStepDeltaEvent { 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: RunStepDelta { step_details }

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

object: :"thread.run.step.delta"

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

class RunStepDeltaMessageDelta { type, message_creation }

Details of the message creation by the run step.

type: :message_creation

Always message_creation.

message_creation: { message_id}
message_id: String

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

RunStepInclude = :"step_details.tool_calls[*].file_search.results[*].content"
ToolCall = CodeInterpreterToolCall { id, code_interpreter, type } | FileSearchToolCall { id, file_search, type } | FunctionToolCall { id, function, type }

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

Accepts one of the following:
class CodeInterpreterToolCall { 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: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[{ logs, type} | { 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.

Accepts one of the following:
class Logs { 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.

class Image { image, type }
image: { 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.

class FileSearchToolCall { id, file_search, type }
id: String

The ID of the tool call object.

Accepts 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.

class FunctionToolCall { id, function, type }
id: String

The ID of the tool call object.

function: { 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

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.

ToolCallDelta = CodeInterpreterToolCallDelta { index, type, id, code_interpreter } | FileSearchToolCallDelta { file_search, index, type, id } | FunctionToolCallDelta { index, type, id, function }

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

Accepts one of the following:
class CodeInterpreterToolCallDelta { index, type, id, code_interpreter }

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

index: Integer

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: String

The ID of the tool call.

code_interpreter: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[CodeInterpreterLogs { index, type, logs } | 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.

Accepts one of the following:
class CodeInterpreterLogs { index, type, logs }

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

index: Integer

The index of the output in the outputs array.

type: :logs

Always logs.

logs: String

The text output from the Code Interpreter tool call.

class CodeInterpreterOutputImage { index, type, image }
index: Integer

The index of the output in the outputs array.

type: :image

Always image.

image: { file_id}
file_id: String

The file ID of the image.

class FileSearchToolCallDelta { file_search, index, type, id }
index: Integer

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: String

The ID of the tool call object.

class FunctionToolCallDelta { index, type, id, function }
index: Integer

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: String

The ID of the tool call object.

function: { 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

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

class ToolCallDeltaObject { type, tool_calls }

Details of the tool call.

type: :tool_calls

Always tool_calls.

tool_calls: Array[ToolCallDelta]

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.

Accepts one of the following:
class CodeInterpreterToolCallDelta { index, type, id, code_interpreter }

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

index: Integer

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: String

The ID of the tool call.

code_interpreter: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[CodeInterpreterLogs { index, type, logs } | 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.

Accepts one of the following:
class CodeInterpreterLogs { index, type, logs }

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

index: Integer

The index of the output in the outputs array.

type: :logs

Always logs.

logs: String

The text output from the Code Interpreter tool call.

class CodeInterpreterOutputImage { index, type, image }
index: Integer

The index of the output in the outputs array.

type: :image

Always image.

image: { file_id}
file_id: String

The file ID of the image.

class FileSearchToolCallDelta { file_search, index, type, id }
index: Integer

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: String

The ID of the tool call object.

class FunctionToolCallDelta { index, type, id, function }
index: Integer

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: String

The ID of the tool call object.

function: { 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

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

class ToolCallsStepDetails { tool_calls, type }

Details of the tool call.

tool_calls: Array[ToolCall]

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.

Accepts one of the following:
class CodeInterpreterToolCall { 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: { input, outputs}

The Code Interpreter tool call definition.

input: String

The input to the Code Interpreter tool call.

outputs: Array[{ logs, type} | { 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.

Accepts one of the following:
class Logs { 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.

class Image { image, type }
image: { 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.

class FileSearchToolCall { id, file_search, type }
id: String

The ID of the tool call object.

Accepts 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.

class FunctionToolCall { id, function, type }
id: String

The ID of the tool call object.

function: { 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

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.