Moon watches live p95 latency and error rate for every model in your chain. When the leader slows down, traffic shifts in under one second.
Three moving parts, one clean API call.
Pass a primary model and up to four fallbacks. Moon records both live latency and error rate per model.
Every request checks the current p95 against your budget. If the leader is slow, Moon picks the next healthy option instantly.
Every trace records which model actually served the request under a served_by field. The fallback rate shows up in your overview.
Reasons users tell us they turn on routing on day one.
One config line. Every SDK.
await moon.chat.stream({ model: "claude-sonnet-5", fallback: ["claude-haiku-4-5", "gpt-4.2-mini"], budget_ms: 800, }); // Every trace records which model actually served