Models
Model slugs, the catalog endpoint and pricing fields.
Model slugs
Every model is addressed by a slug of the form author/model-name, for example deepseek/deepseek-v4-flash. Pass it as model in the request body. Browse slugs, prices and capabilities in the model directory, or copy the slug from any model page.
Unknown slugs and models that are not publicly available return 404 model_not_found.
When a model is retired, its slug may become an alias of its replacement. A request that names an alias is served by the replacement: the response's model is the slug that actually served it, and the X-AMR-Model-Alias header repeats the slug you sent. We never swap models silently.
List models
GET /models needs no authentication and returns every publicly available model:
curl https://api.aimodelsrouter.ai/v1/modelsPricing fields
In the API, pricing values are USD per token as decimal strings, so they never lose precision to floating point. On the website we show the same prices per 1 million tokens.
| Field | Meaning |
|---|---|
prompt | Price per input token |
completion | Price per output token (reasoning tokens are output tokens) |
input_cache_read | Price per cached input token, or null when cached tokens are billed at the input price |
Capabilities
capabilities lists only features we have verified end to end through our API, such as streaming, tools, structured_outputs and reasoning. If a capability is missing, do not rely on it for that model.
Model details
Everything below comes from our supplier catalogs and real verification runs. A request can be served by any of a model's routes, so a value holds only if it holds on all of them. Unknown is null, never a guess.
| Field | Meaning |
|---|---|
supported_parameters | Request parameters verified for this model. Other OpenAI parameters (temperature, top_p, stop, seed…) are passed to the model unchanged but not verified per model, so they are not listed. |
capability_details | tools, parallel_tool_calls (the model makes several calls in one turn), tool_choice (the modes that work: auto, none, required, function for a named tool), structured_outputs, reasoning, reasoning_effort (levels verified; null when unknown) and image_input. |
has_cache_read_price | Cached input tokens are billed at the cheaper input_cache_read price. |
quantization | Weight precision as the supplier publishes it (e.g. fp8, fp4); null when any route does not publish it. |
data_retention | zero_retention_available: at least one route's supplier terms promise prompts and outputs are not stored. Send zdr: true (or provider.zdr) to use only those routes; a model without one answers 400 zdr_unavailable. |
availability | available, at_capacity (every route is at its supplier's capacity limit) or unavailable, with retry_after in seconds when a route is due back. Refreshed about every 15 seconds. |
verified_at | Date of the last real verification run on every route of the model. |