Free LLM for JSON structured output
Free models that return valid structured JSON for extraction pipelines, checked by probe, with failover when one breaks.
Call it with one model id
Point any OpenAI-compatible client at your local Ficelle endpoint and ask for
ficelle/auto-json. Structured extraction and JSON output.
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:8646/v1", api_key="ficelle-local")
reply = client.chat.completions.create(
model="ficelle/auto-json",
messages=[{"role": "user", "content": "..."}],
)
What a model needs to be routed here
- Free pricing: a model with any price is never eligible, and paid fallback is hardcoded off.
- Tool calling support.
- At least 64,000 tokens of context by default.
- Structured output support, checked by Ficelle's JSON probe.
How the probe gate decides:
- A model that failed the probe is excluded.
- A model is eligible when it passed the probe, or when its provider's catalog declares the capability.
- A capability Ficelle only inferred from provider defaults must pass the probe first.
- If the gate would exclude every candidate, Ficelle keeps the pool rather than empty it, and labels the served model in the route log so the fallback is visible.
Good for
- Pulling fields out of invoices, emails and scraped pages
- Turning logs or tickets into typed records
- The judge step of a multi-model pipeline
Measured, not promised
95% quality-safe vs gpt-5 on JSON extraction, in Ficelle's 76-task benchmark. Long-form polished writing is the honest exception, where the paid model still wins. Read the method and raw numbers.
Worth knowing
- Ficelle Pro model fusion uses this profile as its judge.
- Read-inactivity budget for this profile: 45 seconds before Ficelle gives up on a silent provider and fails over.
Where the models come from
The pool is built from the free models of the providers you configure. The open core ships OpenRouter and Nous; Pro maintains the broader provider pack. Whether a given provider has a model eligible for this type changes as catalogs change, so Ficelle decides at routing time, not this page.
Popular free models built for this
Models whose developers build them for this kind of work, and where they are free today. Whether ficelle/auto-json routes to one on your install is still decided per request.
Questions
Is ficelle/auto-json free?
Yes. The profile only routes to models with free pricing, and paid fallback is hardcoded off, so a routed request cannot incur a paid-model charge. You bring your own provider keys; the open core is free, and Pro adds a maintained provider pool.
What happens when the model behind ficelle/auto-json fails?
Ficelle marks it as cooling down or quarantined depending on the failure, tries the next eligible free model in the same pool, and probes the failed one until it recovers. Your client keeps calling the same id.
Which clients can call ficelle/auto-json?
Anything that speaks the OpenAI API: the OpenAI SDKs, Cursor, Codex, Continue, Open WebUI, LangChain, CrewAI or plain curl, pointed at http://127.0.0.1:8646/v1. Claude Code connects through Ficelle's native Anthropic Messages endpoint. Hermes and OpenClaw use packaged connectors.