Assistants

Create a run.

post/threads/{thread_id}/runs

Request

  • Base URL
    https://api.openai.com/v1
  • URL
    https://api.openai.com/v1/threads/{thread_id}/runs
  • Auth
    HTTP bearer

Path parameters

thread_idstring required

The ID of the thread to run.

Query parameters

include[]string[]

A list of additional fields to include in the response. Currently the only supported value is step_details.tool_calls[*].file_search.results[*].content to fetch the file search result content.

See the file search tool documentation for more information.

Request body

assistant_idstring required

The ID of the assistant to use to execute this run.

reasoning_effort'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' nullable

Constrains effort on reasoning for reasoning models. Currently supported values are none, minimal, low, medium, high, xhigh, and max. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. Not all reasoning models support every value. See the reasoning guide for model-specific support.

instructionsstring nullable

Overrides the instructions of the assistant. This is useful for modifying the behavior on a per-run basis.

additional_instructionsstring nullable

Appends additional instructions at the end of the instructions for the run. This is useful for modifying the behavior on a per-run basis without overriding other instructions.

metadataMetadata nullable

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.

temperaturenumber nullable

What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.

top_pnumber nullable

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.

We generally recommend altering this or temperature but not both.

streamboolean nullable

If true, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a data: [DONE] message.

max_prompt_tokensinteger nullable

The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status incomplete. See incomplete_details for more info.

max_completion_tokensinteger nullable

The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status incomplete. See incomplete_details for more info.

parallel_tool_callsboolean

Whether to enable parallel function calling during tool use.

Example request

{
  "temperature": 1,
  "top_p": 1
}

Response

OK

idstring required

The identifier, which can be referenced in API endpoints.

object'thread.run' required

The object type, which is always thread.run.

created_atinteger required

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

thread_idstring required

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

assistant_idstring required

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

status'queued' | 'in_progress' | 'requires_action' | 'cancelling' | 'cancelled' | 'failed' | 'completed' | 'incomplete' | 'expired' required

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

expires_atinteger nullable required

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

started_atinteger nullable required

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

cancelled_atinteger nullable required

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

failed_atinteger nullable required

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

completed_atinteger nullable required

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

modelstring required

The model that the assistant used for this run.

instructionsstring required

The instructions that the assistant used for this run.

metadataMetadata nullable required

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.

temperaturenumber nullable

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

top_pnumber nullable

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

max_prompt_tokensinteger nullable required

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

max_completion_tokensinteger nullable required

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

parallel_tool_callsboolean required

Whether to enable parallel function calling during tool use.

Changes

    • info

      added the optional property // to the response with the status

    • info

      added the optional property ////// to the response with the status

    • breaking

      added subschema #2 to the request property allOf list

    • breaking

      added subschema #2 to the request property allOf list

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property // became not nullable

    • breaking

      the request property // became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property ////// became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property //// became not nullable

    • breaking

      the request property became not nullable

    • breaking

      the request property became not nullable

    • breaking

      removed the enum value gpt-3.5-turbo of the request property /

    • breaking

      removed the enum value gpt-3.5-turbo-0125 of the request property /

    • breaking

      removed the enum value gpt-3.5-turbo-0613 of the request property /

    • breaking

      removed the enum value gpt-3.5-turbo-1106 of the request property /

    • breaking

      removed the enum value gpt-3.5-turbo-16k of the request property /

    • breaking

      removed the enum value gpt-3.5-turbo-16k-0613 of the request property /

    • breaking

      removed the enum value gpt-4 of the request property /

    • breaking

      removed the enum value gpt-4-0125-preview of the request property /

    • breaking

      removed the enum value gpt-4-0314 of the request property /

    • breaking

      removed the enum value gpt-4-0613 of the request property /

    • breaking

      removed the enum value gpt-4-1106-preview of the request property /

    • breaking

      removed the enum value gpt-4-32k of the request property /

    • breaking

      removed the enum value gpt-4-32k-0314 of the request property /

    • breaking

      removed the enum value gpt-4-32k-0613 of the request property /

    • breaking

      removed the enum value gpt-4-turbo of the request property /

    • breaking

      removed the enum value gpt-4-turbo-2024-04-09 of the request property /

    • breaking

      removed the enum value gpt-4-turbo-preview of the request property /

    • breaking

      removed the enum value gpt-4-vision-preview of the request property /

    • breaking

      removed the enum value gpt-4o of the request property /

    • breaking

      removed the enum value gpt-4o-2024-05-13 of the request property /

    • breaking

      removed the enum value gpt-4o-2024-08-06 of the request property /

    • breaking

      removed the enum value gpt-4o-2024-08-06 of the request property /

    • breaking

      removed the enum value gpt-4o-mini of the request property /

    • breaking

      removed the enum value gpt-4o-mini-2024-07-18 of the request property /

    • breaking

      removed subschema #1 from the request property oneOf list

    • breaking

      the / request property type changed from string to null

    • breaking

      the request property type changed from object to no type

    • breaking

      response property metadata list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property tools/items/oneOf[subschema #3: Function tool]/function/strict list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      the response's property type changed from integer to integer null, and format from no format to unixtime for status

    • breaking

      the response's property type changed from integer to integer null, and format from no format to unixtime for status

    • breaking

      the response's property type changed from integer to integer null, and format from no format to unixtime for status

    • breaking

      the response's property type changed from integer to integer null, and format from no format to unixtime for status

    • breaking

      the response's property type changed from integer to integer null, and format from no format to unixtime for status

    • breaking

      the response's property type changed from object to no type for status

    • breaking

      the response's property type changed from object to no type for status

    • breaking

      removed the required property / from the response with the status

    • breaking

      removed the required property / from the response with the status

    • breaking

      removed the required property / from the response with the status

    • breaking

      removed the required property / from the response with the status

    • warning

      removed the request property /

    • warning

      removed the request property /

    • warning

      removed the optional property / from the response with the status

    • info

      added the new optional request property

    • info

      added to the request property anyOf list

    • info

      the request property / became nullable

    • info

      the request property default value false was removed

    • info

      the request property default value false was removed

    • info

      request property // list-of-types was widened by adding types null to media type application/json

    • info

      request property // list-of-types was widened by adding types null to media type application/json

    • info

      request property list-of-types was widened by adding types null to media type application/json

    • info

      request property ////// list-of-types was widened by adding types null to media type application/json

    • info

      request property //// list-of-types was widened by adding types null to media type application/json

    • info

      added the media type text/event-stream for the response with the status

    • info

      added the non-success response with the status

    • info

      added subschema #2 to the response property anyOf list for the response status

    • info

      added subschema #2 to the response property anyOf list for the response status

    • info

      added subschema #2 to the response property anyOf list for the response status

    • info

      added subschema #1 subschema #2 to the response property anyOf list for the response status

    • info

      the response's property default value false was removed for the status

    • info

      removed subschema #1 from the response property oneOf list for the response status

    • info

      removed subschema #1 from the response property oneOf list for the response status