OpenAI API

Create an assistant with a model and instructions.

post
https://api.openai.com/v1/assistants

Body

application/json

CreateAssistantRequest

* Additional properties are NOT allowed.
modelAny Of
required

ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.

Example:gpt-4o

Variant 1string
namestring | null

The name of the assistant. The maximum length is 256 characters.

<= 256 characters

descriptionstring | null

The description of the assistant. The maximum length is 512 characters.

<= 512 characters

instructionsstring | null

The system instructions that the assistant uses. The maximum length is 256,000 characters.

<= 256000 characters

reasoning_effortstring | null

o1 and o3-mini models only

Constrains effort on reasoning for
reasoning models.
Currently supported values are low, medium, and high. Reducing
reasoning effort can result in faster responses and fewer tokens used
on reasoning in a response.

Allowed values:lowmediumhigh

Default:medium

toolsOne Of
array

A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types code_interpreter, file_search, or function.

Default:[]

<= 128 items

Code interpreter toolobject
Show Child Parameters
tool_resourcesobject | null

A set of resources that are used by the assistant’s tools. The resources are specific to the type of tool. For example, the code_interpreter tool requires a list of file IDs, while the file_search tool requires a list of vector store IDs.

Show Child Parameters
metadataobject | 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.

temperaturenumber | null

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.

Default:1

>= 0<= 2

Example:1

top_pnumber | null

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.

Default:1

>= 0<= 1

Example:1

response_formatOne Of
AssistantsApiResponseFormatOptionstring

auto is the default value

Allowed values:auto

Response

200 application/json

OK

Assistant

Represents an assistant that can call the model and use tools.

idstringrequired

The identifier, which can be referenced in API endpoints.

objectstringrequired

The object type, which is always assistant.

Allowed values:assistant

created_atintegerrequired

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

namestring | nullrequired

The name of the assistant. The maximum length is 256 characters.

<= 256 characters

descriptionstring | nullrequired

The description of the assistant. The maximum length is 512 characters.

<= 512 characters

modelstringrequired

ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.

instructionsstring | nullrequired

The system instructions that the assistant uses. The maximum length is 256,000 characters.

<= 256000 characters

toolsOne Of
arrayrequired

A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types code_interpreter, file_search, or function.

Default:[]

<= 128 items

Code interpreter toolobject
Show Child Parameters
tool_resourcesobject | null

A set of resources that are used by the assistant’s tools. The resources are specific to the type of tool. For example, the code_interpreter tool requires a list of file IDs, while the file_search tool requires a list of vector store IDs.

Show Child Parameters
metadataobject | nullrequired

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 | null

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.

Default:1

>= 0<= 2

Example:1

top_pnumber | null

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.

Default:1

>= 0<= 1

Example:1

response_formatOne Of
AssistantsApiResponseFormatOptionstring

auto is the default value

Allowed values:auto

post/assistants

Body

{ "model": {} }
 
200 application/json

Retrieves an assistant.

get
https://api.openai.com/v1/assistants/{assistant_id}

Path Parameters

assistant_idstringrequired

The ID of the assistant to retrieve.

Response

200 application/json

OK

Assistant

Represents an assistant that can call the model and use tools.

idstringrequired

The identifier, which can be referenced in API endpoints.

objectstringrequired

The object type, which is always assistant.

Allowed values:assistant

created_atintegerrequired

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

namestring | nullrequired

The name of the assistant. The maximum length is 256 characters.

<= 256 characters

descriptionstring | nullrequired

The description of the assistant. The maximum length is 512 characters.

<= 512 characters

modelstringrequired

ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.

instructionsstring | nullrequired

The system instructions that the assistant uses. The maximum length is 256,000 characters.

<= 256000 characters

toolsOne Of
arrayrequired

A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types code_interpreter, file_search, or function.

Default:[]

<= 128 items

Code interpreter toolobject
Show Child Parameters
tool_resourcesobject | null

A set of resources that are used by the assistant’s tools. The resources are specific to the type of tool. For example, the code_interpreter tool requires a list of file IDs, while the file_search tool requires a list of vector store IDs.

Show Child Parameters
metadataobject | nullrequired

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 | null

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.

Default:1

>= 0<= 2

Example:1

top_pnumber | null

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.

Default:1

>= 0<= 1

Example:1

response_formatOne Of
AssistantsApiResponseFormatOptionstring

auto is the default value

Allowed values:auto

get/assistants/{assistant_id}
 
200 application/json

Modifies an assistant.

post
https://api.openai.com/v1/assistants/{assistant_id}

Path Parameters

assistant_idstringrequired

The ID of the assistant to modify.

Body

application/json

ModifyAssistantRequest

* Additional properties are NOT allowed.
modelAny Of

ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.

Variant 1string
reasoning_effortstring | null

o1 and o3-mini models only

Constrains effort on reasoning for
reasoning models.
Currently supported values are low, medium, and high. Reducing
reasoning effort can result in faster responses and fewer tokens used
on reasoning in a response.

Allowed values:lowmediumhigh

Default:medium

namestring | null

The name of the assistant. The maximum length is 256 characters.

<= 256 characters

descriptionstring | null

The description of the assistant. The maximum length is 512 characters.

<= 512 characters

instructionsstring | null

The system instructions that the assistant uses. The maximum length is 256,000 characters.

<= 256000 characters

toolsOne Of
array

A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types code_interpreter, file_search, or function.

Default:[]

<= 128 items

Code interpreter toolobject
Show Child Parameters
tool_resourcesobject | null

A set of resources that are used by the assistant’s tools. The resources are specific to the type of tool. For example, the code_interpreter tool requires a list of file IDs, while the file_search tool requires a list of vector store IDs.

Show Child Parameters
metadataobject | 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.

temperaturenumber | null

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.

Default:1

>= 0<= 2

Example:1

top_pnumber | null

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.

Default:1

>= 0<= 1

Example:1

response_formatOne Of
AssistantsApiResponseFormatOptionstring

auto is the default value

Allowed values:auto

Response

200 application/json

OK

Assistant

Represents an assistant that can call the model and use tools.

idstringrequired

The identifier, which can be referenced in API endpoints.

objectstringrequired

The object type, which is always assistant.

Allowed values:assistant

created_atintegerrequired

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

namestring | nullrequired

The name of the assistant. The maximum length is 256 characters.

<= 256 characters

descriptionstring | nullrequired

The description of the assistant. The maximum length is 512 characters.

<= 512 characters

modelstringrequired

ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.

instructionsstring | nullrequired

The system instructions that the assistant uses. The maximum length is 256,000 characters.

<= 256000 characters

toolsOne Of
arrayrequired

A list of tool enabled on the assistant. There can be a maximum of 128 tools per assistant. Tools can be of types code_interpreter, file_search, or function.

Default:[]

<= 128 items

Code interpreter toolobject
Show Child Parameters
tool_resourcesobject | null

A set of resources that are used by the assistant’s tools. The resources are specific to the type of tool. For example, the code_interpreter tool requires a list of file IDs, while the file_search tool requires a list of vector store IDs.

Show Child Parameters
metadataobject | nullrequired

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 | null

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.

Default:1

>= 0<= 2

Example:1

top_pnumber | null

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.

Default:1

>= 0<= 1

Example:1

response_formatOne Of
AssistantsApiResponseFormatOptionstring

auto is the default value

Allowed values:auto

post/assistants/{assistant_id}

Body

{}
 
200 application/json

Delete an assistant.

delete
https://api.openai.com/v1/assistants/{assistant_id}

Path Parameters

assistant_idstringrequired

The ID of the assistant to delete.

Response

200 application/json

OK

DeleteAssistantResponse

idstringrequired
deletedbooleanrequired
objectstringrequired

Allowed values:assistant.deleted

delete/assistants/{assistant_id}
 
200 application/json

Create a thread.

post
https://api.openai.com/v1/threads

Body

application/json

CreateThreadRequest

Options to create a new thread. If no thread is provided when running a
request, an empty thread will be created.

* Additional properties are NOT allowed.
messagesarray[object]

A list of messages to start the thread with.

* Additional properties are NOT allowed.
Show Child Parameters
tool_resourcesobject | null

A set of resources that are made available to the assistant’s tools in this thread. The resources are specific to the type of tool. For example, the code_interpreter tool requires a list of file IDs, while the file_search tool requires a list of vector store IDs.

Show Child Parameters
metadataobject | 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.

Response

200 application/json

OK

Thread

Represents a thread that contains messages.

idstringrequired

The identifier, which can be referenced in API endpoints.

objectstringrequired

The object type, which is always thread.

Allowed values:thread

created_atintegerrequired

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

tool_resourcesobject | nullrequired

A set of resources that are made available to the assistant’s tools in this thread. The resources are specific to the type of tool. For example, the code_interpreter tool requires a list of file IDs, while the file_search tool requires a list of vector store IDs.

Show Child Parameters
metadataobject | nullrequired

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.

post/threads

Body

{}
 
200 application/json