format: optional object { type } or BetaResponseFormatTextJSONSchemaConfig { name, schema, type, 2 more } or object { type }

An object specifying the format that the model must output.

Configuring { "type": "json_schema" } enables Structured Outputs, which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide.

The default format is { "type": "text" } with no additional options.

Not recommended for gpt-4o and newer models:

Setting to { "type": "json_object" } enables the older JSON mode, which ensures the message the model generates is valid JSON. Using json_schema is preferred for models that support it.

text: object { type }

Default response format. Used to generate text responses.

beta_response_format_text_json_schema_config: object { name, schema, type, 2 more }

JSON Schema response format. Used to generate structured JSON responses. Learn more about Structured Outputs.

name: string

The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.

schema: map[unknown]

The schema for the response format, described as a JSON Schema object. Learn how to build JSON schemas here.

type: "json_schema"

The type of response format being defined. Always json_schema.

description: optional string

A description of what the response format is for, used by the model to determine how to respond in the format.

strict: optional boolean

Whether to enable strict schema adherence when generating the output. If set to true, the model will always follow the exact schema defined in the schema field. Only a subset of JSON Schema is supported when strict is true. To learn more, read the Structured Outputs guide.

json_object: object { type }

JSON object response format. An older method of generating JSON responses. Using json_schema is recommended for models that support it. Note that the model will not generate JSON without a system or user message instructing it to do so.

verbosity: optional "low" or "medium" or "high"

Constrains the verbosity of the model’s response. Lower values will result in more concise responses, while higher values will result in more verbose responses. Currently supported values are low, medium, and high. The default is medium.

"low"
"medium"
"high"