ModelObject schema

FieldType and description
id
Required
string

Model identifier (its slug or its full ID).

object
Required
string

Allowed values: ["model"]

namestring

The model's display name.

created
Required
integer

Unix timestamp of model creation.

owned_by
Required
string

Model creator or organization.

typestring

Primary model modality/type (e.g. text-generation, embedding, text-to-image).

context_windowinteger | null

The maximum context size (input + output tokens) as DEVUP serves the model. An integer, or null when not set.

context_lengthstring

A short display label for the context size.

max_output_tokensinteger

The model's own output limit, which differs from model to model: the largest value the model accepts for max_tokens and max_completion_tokens on POST /v1/chat/completions, for max_output_tokens on POST /v1/responses, and for max_tokens on POST /anthropic/v1/messages. A larger value returns HTTP 400 invalid_max_tokens (on POST /anthropic/v1/messages, the same message in an invalid_request_error). A request that sends none of these parameters is limited to the model's default output length, which is at most this value. Listed for models that generate text (type text-generation).

8192
is_replacedboolean

Whether the model has been superseded by a newer version.

pricingModelPricing

ModelPricing

capabilitiesarray of string

Supported modality or capability flags (e.g. multimodal, OCR).

Array itemsstring
supportsobject

Feature support flags, present on every model. supports.reasoning: true with no reasoning object means the model's reasoning mode is not known yet.

FieldType and description
tools
Required
boolean

The model takes tools and can return tool calls.

vision
Required
boolean

The model accepts images in messages.

reasoning
Required
boolean

The model reasons, always or when asked.

structured_output
Required
boolean

A response_format of type json_schema returns JSON that matches the schema.

audio_input
Required
boolean

The model accepts audio in messages.

video_input
Required
boolean

The model accepts video in messages.

reasoning_can_be_disabled
Required
boolean

The model can answer without reasoning.

tool_callsobject

Tool calling details for the model. Each key is present only when known; the object is omitted when no key is known.

FieldType and description
chat_completionsboolean

false: tool calls for this model are served on /v1/responses, and a POST /v1/chat/completions request with tools returns HTTP 400 use_responses_api. true: tool calls are served on /v1/chat/completions.

parallelboolean

true: the model can return several tool calls in one reply. false: it returns at most one tool call per reply.

{
  "chat_completions": false
}
tool_choiceobject

For each tool_choice value whose handling is known: true when the model enforces it, false when the model selects tools on its own (a request with that value is answered with the notice tool_choice_not_enforced). function is a named function. auto is not listed: the model always decides. A value that is not listed is not known yet. Omitted when no value is known.

FieldType and description
noneboolean
requiredboolean
functionboolean
{
  "required": false,
  "function": false
}
reasoningobject

The model's reasoning mode and, when known, the request parameter that controls it with the reasoning levels you can send to the model. Omitted while the mode is not known: supports.reasoning: true with no reasoning object means the mode is not known yet.

FieldType and description
mode
Required
string

always: the model reasons without being asked. on_request: it reasons when asked. none: no configurable reasoning mode; a request with reasoning_effort or reasoning is answered with the notice reasoning_not_available.

Allowed values: ["always","on_request","none"]

parameterstring

The request parameter that turns reasoning on or sets its level, when known (for example reasoning_effort). It can appear with mode always, where it sets the level, and with mode on_request.

valuesarray of string | number | boolean

The reasoning levels you can send to this model with parameter, from least to most reasoning. none, when listed, turns reasoning off. How much each level changes the reasoning depends on the model. Some models list a single value, which turns reasoning on. For reasoning_effort, the values come from none, minimal, low, medium, high, xhigh and max, in that order.

Array itemsstring | number | boolean
{
  "mode": "on_request",
  "parameter": "reasoning_effort",
  "values": [
    "low",
    "medium",
    "high"
  ]
}