The id the provider received, when it differs from yours
x-tm-dropped-params
Fields that were dropped, by name
GET /v1/generation?id= shows every attempt behind one request. Routing docs
FAQ
What is an LLM router?
A service between your code and the model providers that decides where each request goes. On RouterPlus you name the model, and the router picks a provider that serves it, fails over when one is down and reports the route it took.
How does RouterPlus choose a provider?
It keeps the providers that serve the exact model id, drops any resting after failures, and tries the rest in order of live listed price. provider.order puts the providers you name first; a routing policy on your key keeps its saved order.
Will the router switch me to a different model?
No. The router only chooses among providers of the model you asked for. An unknown model is a 404 that names the id, and a dedicated endpoint never routes to a different model.
What happens if a provider fails mid-answer?
Before any output reaches you, the router moves to the next provider with zero backoff. After output starts, it stays with that provider: you get the tokens produced plus one terminal error event, and the retry is your call.
How many models have a fallback provider?
24 models in the catalog are served by more than one provider, so the router has somewhere to fail over to. A request limited with only, or with allow_fallbacks set to false, gives that up.
Can I set routing for a whole team?
Yes. A routing policy saved for an organization, workspace or key sets the order and who pays. A request's provider object can narrow a saved policy but never adds routes to it.
Do I pay for failed attempts?
You pay for every settled attempt, including ones that failed over, because the provider billed for them. usage.cost on the response is the full request total and x-tm-attempts shows how many dispatches happened.