{"results": [...]}. Structured output is what makes AI usable as a component in software rather than just a text generator.
There are three levels of structured output support. Prompt-based: you ask the model to "respond in JSON" and hope it complies (unreliable for complex schemas). Constrained decoding: the provider modifies the sampling process to only allow tokens that keep the output valid according to your schema (reliable, but can affect quality). Schema-validated: the provider guarantees conformance by retrying or repairing invalid outputs before returning them.
Most providers (Anthropic, OpenAI, Google) converge on JSON Schema as the way to define structured outputs. You specify the expected fields, their types, which are required, and any enums or constraints. The model then generates JSON that matches. This works well for flat structures and moderately nested ones. Very deeply nested or recursive schemas can confuse models, and extremely large schemas eat into your context window.
Structured output isn't always the right choice. For creative writing, summarization, or explanations, free-form text is better. For data extraction, classification, or API integrations, structured output is essential. The middle ground — extracting structured data from unstructured input — is where it shines brightest. "Read this resume and extract: name, email, years of experience, top 3 skills" with a JSON schema is a solved problem.