Skip to content

Models

On Routeplane a “model” is not a single endpoint. It’s an aggregate: one logical model — say openai/gpt-4o or anthropic/claude-sonnet-4.6 — that can be served by many providers at once. You address it by a stable model id, and Routeplane decides which underlying provider endpoint actually answers each request.

That indirection is the whole point. You write your agent against anthropic/claude-sonnet-4.6, and the set of providers behind it can grow, shrink, or re-price without you changing a line of code.

You reach the models gateway through whichever API your runtime already speaks. Routeplane exposes four protocols, side by side, on one local endpoint:

  • OpenAI Chat CompletionsPOST /v1/chat/completions
  • OpenAI ResponsesPOST /v1/responses
  • Anthropic MessagesPOST /v1/messages
  • Google Generative AIPOST /v1beta/models/{model}:generateContent

Pick the one your SDK is already wired for — you don’t adopt a new client. And because the gateway speaks all four, it can route across them: a request that arrives as Anthropic Messages can be served by an OpenAI provider, and vice-versa. One model id, reachable four ways, answerable by any eligible provider.

Because a model is an aggregate, requesting it kicks off a provider selection step. By default Routeplane ranks the eligible providers by a balanced score — a blend of cost, latency, throughput, and uptime — and sends your request to the best one. When the chosen provider fails transiently, it can fall through to the next-ranked provider, or to the next model you listed.

When one model has several providers, you sometimes want to bias that ranking for a single call. A model variant is an inline suffix on the id — :cost, :latency, :throughput — that re-ranks the eligible providers along the axis you named, for that request only. It never changes which providers are eligible, never changes authorization, and a bare id is just the balanced default.

Open (non-closed-source) models carry a second property: Routeplane serves them through its own self-hosted provider at 25% below official pricing by default, with no suffix or configuration. The :discount suffix pins a request to that supply explicitly, and it’s where any custom account discount applies.