.TXT Build pipelines?↓Serve models?↓Release models?↓
Updated October 31, 2026 · How we measure

Structured-output index

The same model breaks your pipeline's structured outputs 15× more often on some inference providers than on others. Find the best one for your pipelines.

Give this to your agent ↓

Models

How often structured outputs break on the best and the worst provider.
New models

Get updates when a new model drops

And which provider to use.

Inference providers

How often structured outputs break on the best and the worst model.
Methodology

How we measure

What counts as an error
Of the requests that asked for a structured output (response_format), the share OpenRouter counts as failed; it doesn't document what fails one. The rate is OpenRouter's own, published per provider.
Time period
The last 7 days, updated daily.
Who's included
A provider is listed for a model when it handles 1,000 structured outputs a day or more. Each quantization or tier (fp8, fast, zdr) counts as a provider of its own, and a provider's regions count together.
Best, worst and the bars
The lowest and the highest error rate among a model's providers (in the providers' list, among a provider's models), and the bars between them, on a log scale.
Why didn't I know?
Pipelines retry an output that doesn't parse or doesn't match its schema, so the failure rarely shows. You still pay for every retry, in tokens and in time.
For inference providers

Structured outputs don't have to break

The same model breaks structured outputs a fraction as often on other providers. The difference is in how the output is generated and parsed, not in the model.

Implementations diverge on strings, optionals, composition and conditionals (the April announcement): the schema one provider enforces, another ignores.

Worst provider76.41%

of GLM 5's structured outputs fail on its worst provider.

Over 3%40 of 50

providers break 3% of structured outputs or more on at least one model.

Same provider10×

between a typical provider's error rate on its best model and on its worst.

dotjson plugs into your inference stack, so every model you serve gets perfect structured outputs from day 0.

Make every structured output valid↵
For model makers

Broken structured outputs carry your model's name

Your users don't see the provider. They see your model failing.

MoonshotAI8.64%

of Kimi K2.5's structured outputs fail on Venice.

OpenAI23.51%

of gpt-oss-20b's structured outputs fail on Darkbloom (fp8).

Tencent6.05%

of Hy3's structured outputs fail on NovitaAI.

Z.ai76.41%

of GLM 5's structured outputs fail on GMICloud (fp8).

Releasing a model? Make your own API the one every provider is measured against.

Set the bar for your model↵
New models

Get updates when a new model drops

And which provider to use.