For the complete documentation index, see llms.txt. This page is also available as Markdown.

Complete Model List

GET https://api.aimlapi.com/v1/models

GET https://api.aimlapi.com/model/{id}

GET /v1/models returns the live model catalogue — the machine-readable source for which models exist, what they are called, what they can do, and what they cost. Use it instead of scraping the model pages. No API key is required for this request. You can also simply open this list in any web browser.

As of early 2026 the catalogue holds more than 400 models. By default each entry carries only its identity — pricing, modalities and capabilities are opt-in, so the default response stays small.

https://api.aimlapi.com/models and https://api.aimlapi.com/api/v1/models serve exactly the same data. /v1/models is the canonical path and the one to use in new integrations — an OpenAI-compatible client configured with a base URL of https://api.aimlapi.com/v1 reaches it by appending /models.

Get the model catalogue

Returns the models matching the given filters, with the requested optional sections attached.

get
Query parameters
includestringOptional

Attach optional sections to each model: pricing, modalities, capabilities, or all for every section. Comma-separated and repeated values are both accepted. Unknown values are ignored rather than rejected.

Example: pricing,capabilities
detailsstring · enumOptional

Shorthand for include=all.

Example: truePossible values:
idstringOptional

Keep models matching this id, or carrying it as an alias. Comma-separated or repeated values are combined with OR.

Example: gpt-4o
typestringOptional

Keep models served through this endpoint type, for example openai/chat-completions.

Example: openai/chat-completions
tagsstringOptional

Keep models carrying this tag, for example playground:video. Comma-separated or repeated values are combined with OR.

Example: playground:chat
modalitiesstringOptional

Keep models with this modality among either their input or output modalities.

Example: image
input_modalitiesstringOptional

Keep models accepting this input modality.

Example: text
output_modalitiesstringOptional

Keep models producing this output modality.

Example: video
capabilitiesstringOptional

Keep models declaring this capability, for example image_to_video. Comma-separated or repeated values are combined with OR; combining with other filter parameters is AND.

Example: streaming
Responses
200

The live model catalogue, filtered and expanded as requested. Responses carry an ETag.

application/json
objectstringRequired

Always "list".

Example: list
get/v1/models
curl -L \
  --url 'https://api.aimlapi.com/v1/models'
200

The live model catalogue, filtered and expanded as requested. Responses carry an ETag.

{
  "object": "list",
  "data": [
    {
      "id": "openai/gpt-4o",
      "aliases": [
        "gpt-4o"
      ],
      "type": "openai/chat-completions",
      "info": {
        "name": "GPT-4o",
        "developer": "Open AI",
        "description": "Multimodal AI model by OpenAI enhancing human-computer interaction.",
        "releasedAt": "2025-08-07",
        "contextLength": 128000,
        "outputMax": 16384,
        "cutoffAt": "2023-10-01",
        "url": "https://aimlapi.com/models/gpt-4o-2024-08-06-api",
        "docsUrl": "https://docs.aimlapi.com/api-references/text-models-llm/openai/gpt-4o",
        "docsJson": "https://api.aimlapi.com/docs-json?model=openai%2Fgpt-4o&endpoint=openai%2Fchat-completions"
      },
      "tags": [
        "playground:chat",
        "tier:tier_2"
      ],
      "modalities": {
        "input": [
          "image",
          "text"
        ],
        "output": [
          "text"
        ]
      },
      "capabilities": [
        "streaming",
        "structured_output",
        "tools",
        "vision"
      ],
      "pricing": {
        "kind": "fixed",
        "currency": "USD",
        "units": [
          {}
        ],
        "dimensions": [
          "text"
        ],
        "variants": [
          {}
        ]
      }
    }
  ]
}

Asking for more per model

include attaches optional sections to each model — pricing, modalities, capabilities, or all (?details=true is a synonym for every section). Combine them freely, comma-separated. Unknown values are ignored rather than rejected, so a typo returns a valid response with that section missing.

Filtering

Filters narrow which models come back, and are independent of include — you can filter on capabilities without asking for the capabilities section.

  • Several values, one parameter — OR. ?capabilities=text_to_video,image_to_video returns models that do either.

  • Several parameters — AND. ?output_modalities=video&capabilities=audio_generation returns models that do both.

  • Values are case-insensitive, and may be given comma-separated (?tags=a,b) or repeated (?tags=a&tags=b). Both forms merge.

  • id matches an id or an alias. An omitted parameter filters nothing.

Looking up one model

GET /model/{id} returns a single model in the same projection, wrapped as {"object": "model", "data": {…}} instead of a list. It takes the same include and details parameters.

Model ids containing slashes go into the path as they are — no escaping. The lookup matches aliases as well as ids, is case-insensitive, and returns 404 for a name that matches neither.

Note the two differences from the catalogue route. The path is singular — /model/, not /models/ — and it is not registered under /v1.

GET /v1/models?id=openai/gpt-4o answers the same question and stays on the catalogue route. Use whichever fits: the filter returns a list, possibly empty; the lookup returns one model or a 404.

Output examples by model type

Each item represents a single model. The info block is the part that varies by category — context and output limits are meaningful for a text model and absent from an image or video one — while id, aliases, type and tags are always present.

Example output item for a chat model

Example output item for an image model

Example output item for a video model

What include adds

Asking for the optional sections attaches them to the same item:

Checking whether a model is still available

The same map de-duplicates your list: two names resolving to one canonical id are one model, not two.

A name missing from this map is not necessarily a model that went away — it may also be one that never existed here. GET /v1/models/deprecations tells the two apart, and names the id to migrate to where there is one.

Reading prices

With ?include=pricing, each model carries a pricing block. Read kind first — it decides how the rest is shaped.

Here a 5-second 1080p generation costs 0.65 × 5 = $3.25. Prices are in USD and are what you are charged.

Caching

Responses carry an ETag. Send it back as If-None-Match and you get 304 Not Modified with an empty body when nothing changed:

The ETag covers the whole response, so it changes on any catalogue edit — a new model or a reworded description, not only a price change. Treat it as "something moved, re-read and diff", not as a price-change feed.

Last updated

Was this helpful?