Model ids
| Model id | What it does | Input / cached / output per 1M |
|---|---|---|
| Flashfailure-tempest-1-flash | Routes every prompt to the single best-fit model. Never fuses. | $3 / $0.30 / $15 |
| Tempest 1failure-tempest-1 | Routed. Easy prompts stream straight from the best-fit model; harder ones run the fusion pipeline. | $5 / $0.50 / $30 |
| Maxfailure-tempest-1-max | Full pipeline on every prompt: brief, lensed drafts, fusion, audit. | $10 / $1 / $60 |
Launch draft prices; they may change. The pricing page and GET /v1/pricing are authoritative.
The panel
Every id draws on the same lanes: Claude Fable 5.5, Claude Opus 5.5, GPT-6 Astra 6.2 and Gemini 4 Argon. The live state of each lane is on status and in GET /v1/status.
What the pipeline does
- Route. Easy prompts stream straight from the best-fit model.
- Brief. A fast lane writes TASK, DIFFICULTY, GOAL, TRAPS, PLAN and CHECK. It can raise the difficulty. Briefs are cached for 24 hours.
- Draft. Models draft under different lenses: direct, verify by an independent method, adversary (traps first), and first principles. Deep prompts get at least three drafts, reusing a model under a different lens if needed. After two drafts land, it waits only max(8 s, half the elapsed time) for stragglers.
- Fuse. If every draft states the same final answer, it ships immediately. Otherwise the merger settles each disagreement by checking, never by majority, and hunts for errors the drafts share.
- Audit. A different model audits the result. Concrete issues trigger a revision.
Refusals from any lane are swapped out before you see them. The tempest object in the response tells you the task, difficulty and stage the request reached.
Which one to use
- Flash for chat, classification, extraction and anything latency-sensitive.
- Tempest 1 as the default. It only pays for fusion when the prompt needs it.
- Max for the questions where a wrong answer costs more than the wait: maths, hard code, analysis you will act on.
Tool calls
A request that includes tools is sent to a single tool-capable model rather than fused, so tool-call semantics stay exactly as the OpenAI protocol defines them.
Listing models
curl https://api.failure.fail/v1/models \
-H "Authorization: Bearer $FAILURE_API_KEY"
for m in client.models.list():
print(m.id)