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

Modify run

beta.threads.runs.update(run_id, **kwargs) -> Run { id, assistant_id, cancelled_at, 24 more }
POST/threads/{thread_id}/runs/{run_id}

Modifies a run.

ParametersExpand Collapse
thread_id: String
run_id: String
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.

ReturnsExpand Collapse
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.

formatunixtime
completed_at: Integer

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

formatunixtime
created_at: Integer

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

formatunixtime
expires_at: Integer

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

formatunixtime
failed_at: Integer

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

formatunixtime
incomplete_details: IncompleteDetails{ reason}

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

instructions: String

The instructions that the assistant used for this run.

last_error: LastError{ code, message}

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

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: RequiredAction{ submit_tool_outputs, type}

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

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.

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

truncation_strategy: TruncationStrategy{ 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.

usage: 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.).

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.

Modify run

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

run = openai.beta.threads.runs.update("run_id", thread_id: "thread_id")

puts(run)
{
  "id": "run_abc123",
  "object": "thread.run",
  "created_at": 1699075072,
  "assistant_id": "asst_abc123",
  "thread_id": "thread_abc123",
  "status": "completed",
  "started_at": 1699075072,
  "expires_at": null,
  "cancelled_at": null,
  "failed_at": null,
  "completed_at": 1699075073,
  "last_error": null,
  "model": "gpt-4o",
  "instructions": null,
  "incomplete_details": null,
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "tool_resources": {
    "code_interpreter": {
      "file_ids": [
        "file-abc123",
        "file-abc456"
      ]
    }
  },
  "metadata": {
    "user_id": "user_abc123"
  },
  "usage": {
    "prompt_tokens": 123,
    "completion_tokens": 456,
    "total_tokens": 579
  },
  "temperature": 1.0,
  "top_p": 1.0,
  "max_prompt_tokens": 1000,
  "max_completion_tokens": 1000,
  "truncation_strategy": {
    "type": "auto",
    "last_messages": null
  },
  "response_format": "auto",
  "tool_choice": "auto",
  "parallel_tool_calls": true
}
Returns Examples
{
  "id": "run_abc123",
  "object": "thread.run",
  "created_at": 1699075072,
  "assistant_id": "asst_abc123",
  "thread_id": "thread_abc123",
  "status": "completed",
  "started_at": 1699075072,
  "expires_at": null,
  "cancelled_at": null,
  "failed_at": null,
  "completed_at": 1699075073,
  "last_error": null,
  "model": "gpt-4o",
  "instructions": null,
  "incomplete_details": null,
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "tool_resources": {
    "code_interpreter": {
      "file_ids": [
        "file-abc123",
        "file-abc456"
      ]
    }
  },
  "metadata": {
    "user_id": "user_abc123"
  },
  "usage": {
    "prompt_tokens": 123,
    "completion_tokens": 456,
    "total_tokens": 579
  },
  "temperature": 1.0,
  "top_p": 1.0,
  "max_prompt_tokens": 1000,
  "max_completion_tokens": 1000,
  "truncation_strategy": {
    "type": "auto",
    "last_messages": null
  },
  "response_format": "auto",
  "tool_choice": "auto",
  "parallel_tool_calls": true
}