What it is
Structured output makes a model return data in a fixed shape, such as JSON matching a schema, instead of free text. This lets downstream code parse the result reliably without fragile string handling.
How it is enforced
- Prompted JSON: you ask for JSON and hope, which often works but can drift.
- JSON mode: the API constrains output so it is always syntactically valid JSON.
- Constrained decoding: the decoder is masked at each step to allow only tokens that keep the output valid against a grammar or schema, so the result conforms by construction.
Schema enforcement covers structure, not meaning. A field can be present and well typed yet still wrong, so you may still validate values.
Why it helps
- It removes brittle parsing of natural language.
- It makes outputs composable with tools, databases, and other services.
- It supports function calling, where the model returns arguments that match a tool signature.
Key idea
Structured output and constrained decoding force a model to emit schema valid data so code can consume it, though correct structure does not guarantee correct content.