# Models and identifiers

https://modelportal.ai/docs/models

Requests use three kinds of identifier: the model ID decides which model runs, and the provider and endpoint identifiers decide who serves it.

## Model ID

The model ID of each model in the [catalog](/models) is the value of the `model` field, usually `publisher/model-name`, for example `deepseek/deepseek-v3.2`.

- A model alias works too; the `model` in the response is always the canonical model ID.
- The Gemini API takes the model ID in the path: `/v1beta/models/deepseek/deepseek-v3.2:generateContent`, and the slash may be written as `%2F`.
- A model in maintenance or that does not exist returns 404 `model_not_found`; a retired model returns 410 `model_retired`. See [Model capabilities](/docs/capabilities) for statuses.

## Provider and endpoint identifiers

One model can have offers from several providers. Each endpoint is one provider serving the model at one price with one configuration.

| Identifier | Example | Use |
| --- | --- | --- |
| Provider identifier | Shown in the endpoint list on the model page | Name all of a provider's endpoints in `order`, `only` or `ignore` of `provider` |
| Endpoint identifier | Starts with `route_` | Lock a request to exactly one endpoint with `only`; see [Provider selection](/docs/provider-routing) |

## Querying from code

| Endpoint | Auth | Returns |
| --- | --- | --- |
| `GET https://modelportal.ai/v1/models` | Key required | OpenAI format; only models this key may call that have an available endpoint |
| `GET https://modelportal.ai/api/v1/models` | None | Platform-format model list: capabilities, status, price summary, provider count, and each endpoint's configuration, price and rate limits |
| `GET https://modelportal.ai/api/v1/models/<model ID>` | None | One model in detail, with each endpoint's identifier, provider, price, data policy and supported parameters; write the `/` in the model ID as `%2F` |

See the [Models API](/docs/api-models) for the fields.
