Skip to content

Create an assistant with a model and instructions.

POST
/assistants

Authorizations

Request Body required

object
model
required
Any of:
string
name

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

string
nullable <= 256 characters
description

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

string
nullable <= 512 characters
instructions

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

string
nullable <= 256000 characters
tools

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.

Array
default: <= 128 items
One of:
object
type
required

The type of tool being defined: code_interpreter

string
Allowed values: code_interpreter
tool_resources

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.

object
code_interpreter
object
file_ids

A list of file IDs made available to the code_interpreter tool. There can be a maximum of 20 files associated with the tool.

Array<string>
default: <= 20 items
file_search
One of:
object
vector_store_ids
required

The vector store attached to this assistant. There can be a maximum of 1 vector store attached to the assistant.

Array<string>
<= 1 items
vector_stores

A helper to create a vector store with file_ids and attach it to this assistant. There can be a maximum of 1 vector store attached to the assistant.

Array<object>
<= 1 items
object
file_ids

A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store.

Array<string>
<= 10000 items
chunking_strategy
One of:

The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400.

object
type
required

Always auto.

string
Allowed values: auto
metadata

Set of 16 key-value pairs that can be attached to a vector store. This can be useful for storing additional information about the vector store in a structured format. Keys can be a maximum of 64 characters long and values can be a maxium of 512 characters long.

object
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. Keys can be a maximum of 64 characters long and values can be a maxium of 512 characters long.

object
temperature

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.

number
default: 1 nullable <= 2
1
top_p

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.

number
default: 1 nullable <= 1
1
response_format
One of:

auto is the default value

string
Allowed values: none auto

Responses

200

OK

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

object
id
required

The identifier, which can be referenced in API endpoints.

string
object
required

The object type, which is always assistant.

string
Allowed values: assistant
created_at
required

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

integer
name
required

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

string
nullable <= 256 characters
description
required

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

string
nullable <= 512 characters
model
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.

string
instructions
required

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

string
nullable <= 256000 characters
tools
required

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.

Array
default: <= 128 items
One of:
object
type
required

The type of tool being defined: code_interpreter

string
Allowed values: code_interpreter
tool_resources

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.

object
code_interpreter
object
file_ids

A list of file IDs made available to the `code_interpreter“ tool. There can be a maximum of 20 files associated with the tool.

Array<string>
default: <= 20 items
file_search
object
vector_store_ids

The ID of the vector store attached to this assistant. There can be a maximum of 1 vector store attached to the assistant.

Array<string>
<= 1 items
metadata
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. Keys can be a maximum of 64 characters long and values can be a maxium of 512 characters long.

object
temperature

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.

number
default: 1 nullable <= 2
1
top_p

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.

number
default: 1 nullable <= 1
1
response_format
One of:

auto is the default value

string
Allowed values: none auto