Models & providersModel catalog

Model catalog

98 EU-hosted models across chat, embeddings, audio and rerank — auto-synced every 6h.

CleverRouter exposes around 98 models from three EU-resident providers. All IDs follow <family>/<model> and stay stable even when the upstream provider renames or rehosts a model.

At a glance

EndpointGET /v1/models
Filter`?kind=chat
Auto-syncEvery 6 hours from every configured provider
Live viewcleverouter.eu/models

Model kinds

The kind field determines which endpoint accepts the model:

KindEndpointExample IDs
chatPOST /v1/chat/completionsmistral/mistral-large-2, qwen/qwen3-235b, meta/llama-3.3-70b
embeddingPOST /v1/embeddingscohere/embed-v4, baai/bge-multilingual-gemma2
rerankPOST /v1/rerankcohere/rerank-v3-5, amazon/rerank-v1
audioPOST /v1/audio/transcriptionssystran/faster-whisper-large-v3, openai/whisper-large-v3

Live catalog

Via SDK

list-models.ts
import { createCleverRouter } from '@cleverrouter/sdk';

const cr = createCleverRouter({ apiKey: process.env.CLEVERROUTER_API_KEY! });

const all = await cr.listModels();
const embeddings = await cr.listModels({ kind: 'embedding' });
const audio = await cr.listModels({ kind: 'audio' });

Via HTTP

curl https://api.cleverouter.eu/v1/models \
  -H "Authorization: Bearer $CLEVERROUTER_API_KEY"

curl 'https://api.cleverouter.eu/v1/models?kind=embedding' \
  -H "Authorization: Bearer $CLEVERROUTER_API_KEY"

Response:

{
  "object": "list",
  "data": [
    {
      "id": "mistral/mistral-small-3.2",
      "object": "model",
      "kind": "chat",
      "owned_by": "mistral"
    }
  ]
}

Static autocomplete

For frequently-used models there's a typed MODELS constant for editor autocomplete:

import { MODELS } from '@cleverrouter/sdk';

await cr.openai().chat.completions.create({
  model: MODELS['qwen/qwen3-coder'],
  // …
});

MODELS is a curated subset. Any string is valid at runtime — the gateway resolves it against the live registry.

ID format

<family>/<model>[:variant]

Examples:

IDMeaning
mistral/mistral-small-3.2Mistral's small-3.2 family member
meta/llama-3.3-70bMeta's Llama 3.3 70B
mistral/pixtral-large-latestAliased "latest" Pixtral large variant
cohere/rerank-v3-5Cohere's rerank v3.5

Aliases (like :latest) point to a concrete model id internally and auto-update when the upstream tag moves.

Pricing on a model

The dashboard's /models page is the authoritative view for context windows, prices per 1M tokens and per-provider availability. Via API, pricing is not in /v1/models itself — it lives in the dashboard and on usage rollups, so you can't accidentally trust a stale local copy.

When `pricingKnown=false`

Newly auto-synced models without a pricing-whitelist entry show pricingKnown=false. Calls still work; cost tracking shows €0 until pricing is added (we typically update within 48h of a model appearing).