Build

Structured output verification

See which models passed JSON Schema and JSON mode checks.

Test coverage

JSON Schema153 / 213 models
JSON mode129 / 213 models
Streaming sample18 / 20 provider families

Recorded results. See the catalog for current support. Streaming samples cover provider families, not every model.

Find a model

213 models tested Passed No pass recorded
alibaba/qwen-3-14bJSON Schema: no passing resultJSON mode: no passing result
JSON Schema providers
No passing provider recorded.
JSON mode providers
No passing provider recorded.
Other provider results
deepinfra (ignored (prose))
alibaba/qwen-3-30bJSON Schema: no passing resultJSON mode: no passing result
JSON Schema providers
No passing provider recorded.
JSON mode providers
No passing provider recorded.
Other provider results
deepinfra (ignored (prose))
alibaba/qwen-3-32bJSON Schema: passed on 2 providersJSON mode: passed on 1 providers
JSON Schema providers
bedrock, deepinfra
JSON mode providers
deepinfra
Provider-family streaming sample
bedrock ok, deepinfra failed
Other provider results
alibaba (http 400)
alibaba/qwen-3.6-max-previewJSON Schema: no passing resultJSON mode: no passing result
JSON Schema providers
No passing provider recorded.
JSON mode providers
No passing provider recorded.
Other provider results
alibaba (http 400)
alibaba/qwen3-235b-a22b-thinkingJSON Schema: passed on 2 providersJSON mode: passed on 2 providers
JSON Schema providers
alibaba, deepinfra
JSON mode providers
alibaba, deepinfra
Provider-family streaming sample
alibaba ok, deepinfra failed
Other provider results
novita (http 400)
alibaba/qwen3-coderJSON Schema: no passing resultJSON mode: no passing result
JSON Schema providers
No passing provider recorded.
JSON mode providers
No passing provider recorded.
Other provider results
alibaba (http 400), deepinfra (http 400), novita (http 0), vertex (ignored (wrong_keys))
alibaba/qwen3-coder-30b-a3bJSON Schema: passed on 1 providersJSON mode: no passing result
JSON Schema providers
bedrock
JSON mode providers
No passing provider recorded.
Provider-family streaming sample
bedrock ok
Other provider results
novita (ignored (no_content))
alibaba/qwen3-coder-nextJSON Schema: passed on 1 providersJSON mode: passed on 1 providers
JSON Schema providers
bedrock
JSON mode providers
bedrock
Provider-family streaming sample
bedrock ok
alibaba/qwen3-coder-plusJSON Schema: no passing resultJSON mode: no passing result
JSON Schema providers
No passing provider recorded.
JSON mode providers
No passing provider recorded.
Other provider results
alibaba (http 400)
alibaba/qwen3-maxJSON Schema: passed on 1 providersJSON mode: passed on 1 providers
JSON Schema providers
alibaba
JSON mode providers
alibaba
Provider-family streaming sample
alibaba ok
Other provider results
novita (http 400)
alibaba/qwen3-max-previewJSON Schema: passed on 1 providersJSON mode: passed on 1 providers
JSON Schema providers
alibaba
JSON mode providers
alibaba
Provider-family streaming sample
alibaba ok
alibaba/qwen3-max-thinkingJSON Schema: passed on 1 providersJSON mode: passed on 1 providers
JSON Schema providers
alibaba
JSON mode providers
alibaba
Provider-family streaming sample
alibaba ok
Showing 12 of 213
How we test
  1. 1. Match a schema

    Three successful runs

    A strict schema required a nested country object, a climate enum and at least two landmarks, with no extra properties. The prompt did not mention JSON. All three responses had to parse and match.

  2. 2. Return plain JSON

    No prose or code fences

    Pairs that passed the schema checks were tested with json_object. Only bare, parseable JSON passed.

  3. 3. Join streamed output

    One sample per provider family

    Streamed deltas were joined and checked as JSON. This sampled each provider family, not every model. Failed samples did not remove non-streaming qualification.

Each request selected one provider with a 2000-token limit. Transient failures and inconsistent results were retried once. 252 model/provider pairs passed Schema; 198 also passed JSON mode; 206 were unqualified.

The failed streaming samples were DeepInfra with alibaba/qwen-3-32b and Baseten with deepseek/deepseek-v4-pro-0813. DO Gradient was not tested; Darkbloom was not qualified.

http records an unsuccessful request; http 0 means no response. ignored means the output did not meet the check. These results do not establish permanent lack of support.

Esc