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.