JSON mode forces a model to emit syntactically valid JSON. It’s a feature of the OpenAI Chat Completions API, enabled by settingDocumentation Index
Fetch the complete documentation index at: https://docs.baseten.co/llms.txt
Use this file to discover all available pages before exploring further.
response_format to {"type": "json_object"}. Use JSON mode when you need parseable JSON but don’t need to enforce a specific schema.
For most production use cases, prefer structured outputs. Structured outputs guarantee that the response matches a JSON schema you provide, which is stricter, type-safe, and removes the need to retry or validate after the fact.
How it works
JSON mode tells the server to constrain the output to valid JSON. You still describe the fields you want in the prompt; the server only enforces well-formedness, not shape.JSON mode versus structured outputs
| Feature | JSON mode | Structured outputs |
|---|---|---|
| Output guarantee | Valid JSON | Valid JSON that matches your schema |
| Schema enforcement | None | Strict (server rejects non-conforming generations) |
| Setup | Set response_format to json_object | Provide a JSON schema or Pydantic model |
| Best for | Lightweight extraction, ad hoc responses | Production data extraction, typed pipelines |
Model support
JSON mode and structured outputs are supported on a per-model basis. See the feature support table on the Model APIs overview for which models support each.Related
- Structured outputs: Schema-enforced JSON output.
- Model APIs overview: Supported models and feature matrix.
- Chat Completions reference: Full request and response schema.