The catalog endpoint is the price table. It returns every model the platform serves, the providers that offer it, and what one generation costs on each — the same numbers the router uses when it decides.
curl https://ellisekiz.ai/api/v1/models
The catalog is public — no token required — and cached for ten minutes, so it is cheap to call on boot and keep in memory rather than fetching per request.
{
"data": [
{
"id": "flux-schnell",
"name": "FLUX.1 [schnell]",
"kind": "image",
"multi_provider": true,
"offers": [
{
"provider": "fal",
"provider_label": "fal.ai",
"provider_model_id": "fal-ai/flux/schnell",
"cost_units": 3000,
"usd": 0.003,
"byok_only": false
},
{
"provider": "replicate",
"provider_label": "Replicate",
"provider_model_id": "black-forest-labs/flux-schnell",
"cost_units": 3300,
"usd": 0.0033,
"byok_only": false
}
]
}
]
}| Field | Type | Description |
|---|---|---|
id | string | The canonical model id you pass as model when submitting a generation. |
kind | string | image, video, audio or text. It determines which parameters the model accepts. |
multi_provider | boolean | True when more than one provider serves the model, which is when routing has a decision to make. |
offers[].provider | string | fal, replicate, atlascloud or openrouter — the value to send as provider to pin this offer. |
offers[].cost_units | integer | Price in micro-dollars: 1,000,000 units = 1 USD. Integer arithmetic, no floating point surprises. |
offers[].usd | number | The same price in dollars, for display. |
offers[].byok_only | boolean | The provider serves the model but publishes no price we can bill against — usable only with your own provider key. |