---
title: List available models
url: https://developers.wpengine.com/docs/ai/api/reference/operations/listmodels/
image: https://developers.wpengine.com/og/docs/ai/api/reference/operations/listmodels.png
---

# List available models

GET

/v1/models

Select code sample

```php
<?php


$client = new \GuzzleHttp\Client();


$response = $client->request('GET', 'https://api.ai.wpengine.com/v1/models');


echo $response->getBody();
```

- Current environment

Returns the model catalog with rate-card pricing and display metadata. No authentication is required.

## Authorizations

- **None**

## Responses

### 200

List of supported models

Media typeapplication/json

object

**object**

required

string

**data**

required

Array\<object>

object

**id**

required

string

**object**

required

string

**owned_by**

required

Provider organization name preserved for OpenAI /v1/models compatibility (e.g. “openai”, “anthropic”, “moonshotai”).

string

**provider**

required

Canonical provider key used by the console for grouping and iconography. One of: “openai”, “google”, “gemma”, “anthropic”, “deepseek”, “kimi”, “glm”, “minimax”, “qwen”.

string

**display_name**

required

Human-readable model name for UI display.

string

**description**

Short marketing-style description of the model’s capabilities.

string

**capabilities**

Operations and features this model supports. Clients that build agents or tool-calling flows should only offer models whose capabilities include “tools”.

Array\<string>

Allowed values: chat image_generation speech_generation transcription alt_text summary taxonomy messages tools vision documents reasoning web_search

**context_window**

Maximum input context length in tokens.

integer

**max_output_tokens**

Maximum number of output tokens the model can generate in a single response. Omitted when no limit is published for the model.

integer

**parameters**

Per-model parameter constraints. Omitted for models with no constrained parameters.

object

**temperature**

Rules for a numeric chat parameter. Omitted when not applicable. Supported parameters publish max (and optionally min); unsupported parameters publish supported: false.

object

**supported**

When false, the model rejects any explicit value for this parameter (provider default only). Omitted when max is published.

boolean

**min**

Smallest accepted value, inclusive. Omitted when the minimum is 0; clients and the gateway treat a missing min as 0.

number format: double

**max**

Largest accepted value, inclusive. Published for every supported parameter (when supported is not false).

number format: double

**response_format_type**

Rules for a string-enum chat parameter. Omitted when not applicable. Values lists every accepted string the model honours end-to-end through the current relay.

object

**values**

Every accepted value for this parameter.

Array\<string>

**pricing**

Pricing for a model. The `unit` field says how to read it. With `unit` of `credits`, token rates apply to chat-family models; the per-image, per-character, and per-megabyte rates apply to image generation, speech generation, and transcription respectively. Only the rates that apply to a given model are present, so a chat model carries token rates and an image model carries per_image. With `unit` of `ai_credits`, every price is AI credits per 1,000,000 tokens of one token type, and only the token types the model bills are present. The per-image, per-character, per-megabyte, per-search, and reasoning fields are not set. A model that bills long prompts at higher rates adds `long_context`. All rates are decimal strings to avoid floating-point drift.

object

**input_per_million**

Credits per 1,000,000 input tokens.

string

**output_per_million**

Credits per 1,000,000 output tokens.

string

**cache_read_per_million**

Credits per 1,000,000 tokens read from the prompt cache.

string

**cache_write_per_million**

Credits per 1,000,000 tokens written to the prompt cache.

string

**cache_write_1h_per_million**

AI credits per 1,000,000 tokens written to the prompt cache with a 1-hour lifetime. Present only when `unit` is `ai_credits` and the model bills 1-hour cache writes.

string

**cache_read_audio_per_million**

AI credits per 1,000,000 audio tokens read from the prompt cache. Present only when `unit` is `ai_credits` and the model bills cached audio input.

string

**input_audio_per_million**

AI credits per 1,000,000 audio input tokens. Present only when `unit` is `ai_credits` and the model bills audio input.

string

**output_audio_per_million**

AI credits per 1,000,000 audio output tokens. Present only when `unit` is `ai_credits` and the model bills audio output.

string

**output_image_per_million**

AI credits per 1,000,000 image output tokens. Present only when `unit` is `ai_credits` and the model bills image output.

string

**long_context**

Prices a model bills at once a prompt exceeds `threshold_tokens`, instead of the standard prices. Present only when `unit` is `ai_credits` and the model has long-context pricing.

object

**threshold_tokens**

required

Prompt size in tokens above which these prices apply.

integer

**input_per_million**

AI credits per 1,000,000 input tokens.

string

**output_per_million**

AI credits per 1,000,000 output tokens.

string

**cache_read_per_million**

AI credits per 1,000,000 tokens read from the prompt cache.

string

**cache_write_per_million**

AI credits per 1,000,000 tokens written to the prompt cache.

string

**cache_write_1h_per_million**

AI credits per 1,000,000 tokens written to the prompt cache with a 1-hour lifetime.

string

**cache_read_audio_per_million**

AI credits per 1,000,000 audio tokens read from the prompt cache.

string

**input_audio_per_million**

AI credits per 1,000,000 audio input tokens.

string

**output_audio_per_million**

AI credits per 1,000,000 audio output tokens.

string

**output_image_per_million**

AI credits per 1,000,000 image output tokens.

string

**reasoning_per_million**

Credits per 1,000,000 reasoning tokens, when a model bills those separately from output tokens.

string

**per_web_search**

Credits per web search the provider runs during a chat call, charged on top of tokens. Present on models that support web search.

string

**per_image**

Credits per generated image.

string

**per_million_characters**

Credits per 1,000,000 characters of generated speech.

string

**per_megabyte_audio**

Credits per megabyte of transcribed audio.

string

**pricing_version**

required

Identifies the rate card these prices were taken from. Compare it between responses to detect a repricing.

string

**unit**

required

The unit every rate above is denominated in. `credits` prices come from the model’s rate card. `ai_credits` prices are AI credits per 1,000,000 tokens of each token type.

string

Allowed values: credits ai_credits

**deprecation_date**

The date this model was announced as deprecated, in YYYY-MM-DD form. Absent for a model with no announced deprecation. On and after this date the model is still served unchanged, but new integrations should prefer an alternative — where one exists, the model description names it.

string format: date

**removal_date**

The date this model stops being served, in YYYY-MM-DD form. Absent when the model is deprecated but no removal date has been announced yet. After this date requests naming the model are rejected, and it is no longer shown in the console model catalog.

string format: date

#### Example

```json
{
  "object": "list",
  "data": [
    {
      "id": "google/gemini-3.5-flash",
      "object": "model",
      "owned_by": "openai",
      "provider": "openai",
      "display_name": "GPT OSS 120B",
      "capabilities": [
        "chat",
        "tools",
        "reasoning"
      ],
      "context_window": 200000,
      "max_output_tokens": 128000,
      "parameters": {
        "temperature": {
          "supported": false,
          "max": 1
        },
        "response_format_type": {
          "values": [
            "text"
          ]
        }
      },
      "pricing": {
        "input_per_million": "1.5",
        "output_per_million": "9",
        "cache_read_per_million": "0.5",
        "cache_write_per_million": "6.25",
        "cache_write_1h_per_million": "10",
        "cache_read_audio_per_million": "0.75",
        "input_audio_per_million": "3",
        "output_audio_per_million": "12",
        "output_image_per_million": "30",
        "long_context": {
          "threshold_tokens": 200000,
          "input_per_million": "3",
          "output_per_million": "18",
          "cache_read_per_million": "0.3",
          "cache_write_per_million": "3.75",
          "cache_write_1h_per_million": "6",
          "cache_read_audio_per_million": "1.5",
          "input_audio_per_million": "6",
          "output_audio_per_million": "24",
          "output_image_per_million": "60"
        },
        "reasoning_per_million": "9",
        "per_web_search": "0.01",
        "per_image": "0.04",
        "per_million_characters": "30",
        "per_megabyte_audio": "2.25",
        "pricing_version": "2026-05-01",
        "unit": "credits"
      },
      "deprecation_date": "2026-01-05",
      "removal_date": "2026-07-05"
    }
  ]
}
```

### 429

Rate limit exceeded. The request was throttled at the edge; wait and retry later. The response body is a short HTML page generated by the load balancer, not a structured JSON error — clients should rely on the 429 status code rather than parsing the body.

Media typetext/html

string

## Was this helpful?

Thanks for the feedback!

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://developers.wpengine.com/#website","name":"WP Engine Product Documentation","url":"https://developers.wpengine.com/","description":"Resources for developing, deploying, and scaling on WP Engine.","inLanguage":"en-US","keywords":["API documentation","product documentation","headless WordPress","managed WordPress hosting"],"publisher":{"@id":"https://wpengine.com/#organization"}}]}
```
