Model catalog
GET /v1/models returns the active model catalogue. Every entry carries the input / output capabilities, pricing, lifecycle status, and free-tier eligibility flags the router uses to decide where to send a request.
Catalog entry shape
Each row in the catalogue describes one routable mapping. A single modelName can have multiple mappings (different upstream providers, different regions, different endpoints) — the router picks one at request time.
{
"_id": "6531a9...",
"modelName": "gpt-4o",
"provider": "openai",
"providerModel": "gpt-4o",
"group": "chat",
"mode": "llm",
"inputCapabilities": ["text", "image"],
"outputCapabilities": ["text"],
"contextWindow": 128000,
"pricing": { "input": 0.0025, "output": 0.01, "unit": "per_1k_tokens" },
"freeTierEligible": false,
"lifecycleStatus": "active",
"isActive": true
}
Sensitive fields (config.apiKey, config.endpoint) are stripped from the response unless the caller is an admin.
Capabilities
Capabilities are split into what the model accepts on input and what it returns on output. The router uses both to validate that a request can be served.
| Capability | Meaning |
|---|---|
text | Plain text. Always present. |
image | Vision input or generated images. |
audio | Speech in (transcription) or out (TTS). |
files | Document/file attachments (e.g. PDF). |
video | Video input. |
pdf | PDF-specific handling (Anthropic native). |
url | URL fetching for models that support it. |
Pricing
Prices are stored in USD. The unit field tells you what one unit means:
| Unit | Used for |
|---|---|
per_1k_tokens | Default for chat / embedding / moderation. Bills (tokens / 1000) * pricing. |
per_image | Image-generation models. Bills n_images * pricing.output. |
per_second | Audio TTS / STT priced per second of audio. |
per_minute | Audio TTS / STT priced per minute. |
per_request | Flat per-request pricing. |
The price is converted to credits at billing time using the platform's USD_TO_CREDITS conversion (1 credit = $0.001 USD).
Lifecycle status
| Status | Behaviour |
|---|---|
active | Selectable, routable. |
maintenance | Visible (disabled) in the catalogue; requests blocked with 409. |
deprecated | Visible (disabled); requests blocked. Use this when the upstream model has been replaced. |
Setting isActive: false hides the model from the catalogue entirely (used for internal-only or fully retired entries).
Free-tier eligibility
Models with freeTierEligible: true count against the free-tier daily quota (200 requests/day for free users). Free users hit a hard wall when the quota is exhausted; paid and enterprise users transition to credit billing for the same model.
This flag is independent of the upstream provider's price (pricingTier) — admins can include zero-cost models in the free pool, or exclude expensive paid models from it.
Admin operations
Admin and owner roles can POST, PATCH, and DELETE mappings to extend or curate the catalogue. Owner-only operations include hard delete (DELETE removes the row outright; non-owners can only soft-disable via isActive: false).