Skip to main content
Version: next

Providers

A provider is an LLM platform that Routerly knows how to communicate with. Each provider has its own wire protocol, authentication scheme, and model catalogue.


Provider Catalog​

Routerly fetches its provider and model catalog dynamically at runtime from one or more remote repositories instead of relying on hardcoded definitions. This enables rapid updates to supported models and providers without service restarts.

Default Catalog Source​

By default, Routerly fetches the catalog from the official Inebrio repository:

https://raw.githubusercontent.com/Inebrio/Routerly-Providers/main/

How Resolution Works​

When fetching the catalog, Routerly applies the following resolution order:

  1. Channel override — if configured for a repo, use the named channel (e.g. stable, latest)
  2. Semver range match — select the catalog version matching your Routerly version (e.g. ^0.3.0)
  3. Default channel fallback — if no semver match, use the repo's default channel
  4. Direct fallback — if all else fails, load providers.json directly from the repo root

Each catalog file is timestamped as an immutable snapshot (format: providers/providers.YYYYMMDDHHMMSS.json) and verified with SHA-256 checksums after download.

Caching and Refresh​

The catalog is cached in memory for 6 hours after the first fetch. All repositories are fetched together in a single batch. To force an immediate refresh, use:

routerly catalog refresh

Or via the dashboard: Settings > Provider Catalog > Refresh Cache button.

Multiple Repositories​

You can add multiple custom repositories alongside the default one. Repositories are processed in reverse order (last added = first checked), so the first repo in your list wins on merge conflict.

Add a custom repo:

routerly catalog repos add https://your-org.com/catalog/

See CLI: routerly catalog for full repository management commands, or use the dashboard Settings > Provider Catalog tab.

Per-Repository Status​

Each configured repository tracks:

  • Resolved File — the filename of the catalog last successfully fetched (e.g. providers.20260630120000.json)
  • Updated At — timestamp from the catalog registry (when the snapshot was created)
  • Last Checked — when Routerly last attempted to fetch from this repo
  • Status — Active (green), Disabled (muted), or Error (red with details)

Catalog-Tracked Model Fields​

When you add a model from the catalog, Routerly tracks which fields (input price, output price, context window, capabilities, etc.) came from the catalog. Catalog-tracked fields automatically sync with the provider's catalog every 6 hours — or immediately when you manually refresh the catalog via Settings > Provider Catalog > Refresh Cache or routerly catalog refresh.

Auto-sync fields:

  • Input price per 1M tokens
  • Output price per 1M tokens
  • Cache read price per 1M tokens (if applicable)
  • Cache write price per 1M tokens (if applicable)
  • Pricing tiers (e.g., Anthropic's >200k token tier)
  • Context window
  • Capabilities (vision, function calling, JSON, etc.)

If you manually edit any of these fields, Routerly stops auto-syncing that specific field — it becomes locked at your custom value. You can unlock a field by resetting it back to the catalog default. See the dashboard and CLI docs for field-reset instructions.

Models not found in any catalog (local Ollama instances, custom endpoints) do not have catalog tracking — they remain fully manual.


Supported Providers​

ProviderIDAuthenticationNotes
OpenAIopenaiAPI keyChat completions + Responses API + token counting
AnthropicanthropicAPI keyMessages API + token counting
Google GeminigeminiAPI keyOpenAI-compatible endpoint
MistralmistralAPI keyOpenAI-compatible endpoint
CoherecohereAPI keyOpenAI-compatible endpoint
xAI (Grok)xaiAPI keyOpenAI-compatible endpoint
OllamaollamaNoneLocal inference; set baseUrl to your Ollama host
CustomcustomOptionalAny OpenAI-compatible endpoint

OpenAI​

Model IDContextInput priceOutput priceCapabilities
gpt-5.2128k$1.75 / 1M$14 / 1MVision, function calling, JSON
gpt-5.1128k$1.25 / 1M$10 / 1MVision, function calling, JSON
gpt-5128k$1.25 / 1M$10 / 1MVision, function calling, JSON
gpt-5-mini128k$0.25 / 1M$2 / 1MVision, function calling, JSON
gpt-5-nano128k$0.05 / 1M$0.4 / 1MFunction calling, JSON
gpt-4.11M$2 / 1M$8 / 1MVision, function calling, JSON
gpt-4.1-mini1M$0.40 / 1M$1.6 / 1MVision, function calling, JSON
gpt-4.1-nano1M$0.10 / 1M$0.4 / 1MFunction calling, JSON
gpt-4o128k$2.50 / 1M$10 / 1MVision, function calling, JSON
gpt-4o-mini128k$0.15 / 1M$0.6 / 1MVision, function calling, JSON
o1200k$15 / 1M$60 / 1MThinking, function calling, JSON
o3200k$2 / 1M$8 / 1MThinking, function calling, JSON
o4-mini200k$1.10 / 1M$4.4 / 1MThinking, function calling, JSON

Prices are per 1 million tokens unless otherwise noted.


Anthropic​

Model IDContextInput priceOutput priceNotes
claude-opus-4-6200k$5 / 1M$25 / 1MTier >200k tokens: $10 / $37.5
claude-sonnet-4-6200k$3 / 1M$15 / 1M
claude-sonnet-4-5200k$3 / 1M$15 / 1MTier >200k tokens: $6 / $22.5
claude-haiku-4-5200k$1 / 1M$5 / 1M
claude-opus-4-1200k$15 / 1M$75 / 1MVision, function calling, JSON
claude-sonnet-4-1200k$3 / 1M$15 / 1MVision, function calling, JSON

Google Gemini​

Model IDContextInput priceOutput priceNotes
gemini-2.5-pro2M$1.25 / 1M$10 / 1MTier >200k: $2.5 / $15
gemini-2.5-flash1M$0.30 / 1M$2.5 / 1M
gemini-2.5-flash-lite1M$0.10 / 1M$0.4 / 1M
gemini-3.1-pro-preview2M$2 / 1M$12 / 1MTier >200k: higher
gemini-3-pro-preview2M——Experimental
gemini-3-flash-preview1M——Experimental
gemini-2.0-flash1M$0.10 / 1M$0.4 / 1M
gemini-2.0-flash-lite1M$0.075 / 1M$0.3 / 1M

Mistral​

Model IDNotes
mistral-large-latestFlagship model
mistral-small-latestEfficient, low cost
mistral-nemoOpen-weight, 12B
codestral-latestCode specialised
ministral-8b-latestUltra-small

Cohere​

Model IDNotes
command-r-plusBest quality
command-rBalanced
command-a-03-2025Latest generation
command-nightlyBleeding edge
c4ai-aya-expanse-8bMultilingual, 8B
c4ai-aya-expanse-32bMultilingual, 32B
embed-english-v3.0Embeddings

xAI (Grok)​

Model IDNotes
grok-3Latest flagship
grok-3-fastOptimised for speed
grok-3-miniEfficient
grok-3-mini-fastSmallest / fastest

Ollama (Local)​

Model IDNotes
ollama/llama3.2Meta Llama 3.2, 3B
ollama/llama3.1:8bMeta Llama 3.1, 8B
ollama/qwen3:4bQwen3, 4B
ollama/qwen3:8bQwen3, 8B
ollama/mistralMistral 7B
ollama/phi4-miniMicrosoft Phi-4 Mini
ollama/gemma3:4bGoogle Gemma 3, 4B
ollama/deepseek-r1:7bDeepSeek R1, 7B

Ollama models require a running Ollama server. The default base URL is http://localhost:11434. Override it per-model in the dashboard with the Base URL field.


Custom / Self-hosted​

Use provider ID custom for any OpenAI-compatible endpoint (vLLM, LM Studio, LocalAI, etc.):

routerly model add \
--id my-custom-model \
--provider custom \
--base-url http://192.168.1.50:8000/v1 \
--input-price 0 \
--output-price 0

Adding a Provider Model​

All models must be registered in Routerly before they can be used. See Concepts: Models for registration details.