By default the router tries our listings in routing order and fails over before the first byte — never mid-answer. Uptime is our own 24h measurement; a dash means too few requests to measure yet. Open the row for the provider's specs and policies.
Parallel: Parallel answers each call from the web: it searches for evidence on your state and questions, and the answer lists up to 10 of its sources as citations. The list price is $0.001 a call for 1 to 100 questions, Parallel's own with no markup, and a call whose answers are all refusals counts as a call; the price card above shows what a call is charged now.
Parallel keeps what it is sent. Under its standard customer terms it may use the state, the questions and the answers, not linked to any individual, to train and improve its models; zero data retention is on its Enterprise plan only, and our account is not on it. So the listing says it retains prompts. See the data policy.
curl https://api.routerplus.com/v1/decisions \
-H "Authorization: Bearer $TM_API_KEY" -H "content-type: application/json" \
-d '{"model":"parallel/decisions",
"state":"Help! My payouts have been failing for 3 days.",
"questions":{
"team":{"type":"choice","instructions":"Which team should handle this?",
"criteria":{"billing":"Payments and refunds","technical":"Bugs and outages"}},
"urgent":{"type":"noul","instructions":"Is this urgent?"}}}'
# answers.team.choice, answers.team.probabilities, answers.urgent.noulimport os, httpx r = httpx.post("https://api.routerplus.com/v1/decisions", headers={"Authorization": f"Bearer {os.environ['TM_API_KEY']}"}, json={"model": "parallel/decisions", "state": "Help! My payouts have been failing for 3 days.", "questions": {"urgent": {"type": "noul", "instructions": "Is this urgent?"}}}) r.json()["answers"]["urgent"]["noul"] # probability of yes
const r = await fetch("https://api.routerplus.com/v1/decisions", { method: "POST", headers: { authorization: `Bearer ${process.env.TM_API_KEY}`, "content-type": "application/json" }, body: JSON.stringify({ model: "parallel/decisions", state: "Help! My payouts have been failing for 3 days.", questions: { urgent: { type: "noul", instructions: "Is this urgent?" } } }), }); const { answers } = await r.json(); // answers.urgent.noul: probability of yes
| request |
Every billed response carries usage.cost — recompute your bill from the wire.