include_reasoninglogprobsmax_tokenspresence_penaltyreasoningreasoning_effortresponse_formatseedstructured_outputstool_choicetoolstop_logprobsfrequency_penaltyinclude_reasoningmax_tokenspresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatseedstopstructured_outputstemperaturetop_ktop_pfrequency_penaltyinclude_reasoninglogit_biasmax_tokensmin_ppresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_pinclude_reasoninglogprobsmax_tokensreasoningreasoning_effortresponse_formatstructured_outputstemperaturetool_choicetoolstop_logprobstop_pfrequency_penaltyinclude_reasoninglogit_biaslogprobsmax_tokenspresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatstopstructured_outputstemperaturetool_choicetoolstop_ktop_logprobstop_pfrequency_penaltyinclude_reasoninglogit_biasmax_tokensmin_ppresence_penaltyreasoningreasoning_effortresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_pfrequency_penaltyinclude_reasoninglogprobsmax_tokenspresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_logprobstop_pinclude_reasoningmax_tokensreasoningreasoning_effortresponse_formatstopstructured_outputstemperaturetoolstop_pfrequency_penaltyinclude_reasoningmax_tokenspresence_penaltyreasoningreasoning_effortresponse_formatstopstructured_outputstool_choicetoolsfrequency_penaltyinclude_reasoninglogit_biaslogprobsmax_tokensmin_ppresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_logprobstop_pfrequency_penaltyinclude_reasoninglogit_biaslogprobsmax_tokenspresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_logprobstop_pfrequency_penaltyinclude_reasoninglogprobsmax_tokensmin_ppresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_logprobstop_pfrequency_penaltyinclude_reasoningmax_tokenspresence_penaltyreasoningreasoning_effortrepetition_penaltystoptemperaturetool_choicetoolstop_ktop_pfrequency_penaltyinclude_reasoninglogprobsmax_tokenspresence_penaltyreasoningreasoning_effortresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_logprobstop_pfrequency_penaltyinclude_reasoninglogit_biasmax_tokensmin_ppresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatstopstructured_outputstemperaturetool_choicetoolstop_ktop_pfrequency_penaltyinclude_reasoninglogit_biasmax_tokensmin_ppresence_penaltyreasoningreasoning_effortrepetition_penaltyresponse_formatseedstopstructured_outputstemperaturetool_choicetoolstop_ktop_pBy default the router tries our listings in routing order and fails over before the first byte — never mid-answer. Pin, exclude or order providers with a routing policy. Prices are each provider's own list price; you pay $3.00 in / $15.00 out per 1M, whichever runs the request. Uptime is our own measurement where we call a provider directly, else the 24h figure published for it; an hour stays grey until it has a sample. Open a row for its specs, parameters and policies.
curl -N https://api.routerplus.com/v1/chat/completions \
-H "Authorization: Bearer $TM_API_KEY" -H "content-type: application/json" \
-d '{"model":"moonshotai/kimi-k3","stream":true,"max_tokens":256,
"messages":[{"role":"user","content":"hi"}]}'# OpenAI SDK — only the base URL changes from openai import OpenAI client = OpenAI(base_url="https://api.routerplus.com/v1", api_key=os.environ["TM_API_KEY"]) client.chat.completions.create(model="moonshotai/kimi-k3", stream=True, messages=[{"role":"user","content":"hi"}])
import Anthropic from "@anthropic-ai/sdk"; // the Anthropic surface serves every chat model, not just Claude const client = new Anthropic({ baseURL: "https://api.routerplus.com", apiKey: process.env.TM_API_KEY }); await client.messages.create({ model: "moonshotai/kimi-k3", max_tokens: 256, messages: [{ role: "user", content: "hi" }] });
| prompt | $3 |
| cached prompt | $0.30 |
| completion | $15 |
Every billed response carries usage.cost — recompute your bill from the wire.
An hour counts at the best provider's uptime: a request goes to another provider when one fails. Grey hours have no sample yet.