> ## Documentation Index
> Fetch the complete documentation index at: https://docs.phala.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Models

> List available Confidential AI models, modalities, context windows, and pricing metadata.

## Endpoints

```bash theme={"system"}
GET https://inference.phala.com/v1/models
```

Use the live model catalog before hardcoding model IDs. The catalog returns model IDs, context windows, pricing, serving metadata, modalities, supported parameters, and whether a model can be served confidentially.

## Examples

<CodeGroup>
  ```bash All Models theme={"system"}
  curl https://inference.phala.com/v1/models \
    -H "Authorization: Bearer <API_KEY>"
  ```

  ```python Python theme={"system"}
  from openai import OpenAI

  client = OpenAI(
      api_key="<API_KEY>",
      base_url="https://inference.phala.com/v1",
  )

  models = client.models.list()
  for model in models.data:
      print(model.id)
  ```
</CodeGroup>

## Response

```json theme={"system"}
{
  "data": [
    {
      "id": "phala/qwen3.5-27b",
      "name": "Qwen3.5 27B",
      "created": 1677652288,
      "is_tee": true,
      "description": "Qwen model running through Phala GPU TEE infrastructure",
      "context_length": 262144,
      "max_output_length": 262144,
      "pricing": {
        "prompt": "0.00000030",
        "completion": "0.00000240"
      },
      "providers": ["phala"],
      "input_modalities": ["text"],
      "output_modalities": ["text"],
      "supported_parameters": ["max_tokens", "temperature", "tools", "tool_choice", "response_format"],
      "metadata": {}
    }
  ]
}
```

## Model Object Fields

| Field                  | Description                                                                       |
| ---------------------- | --------------------------------------------------------------------------------- |
| `id`                   | Model identifier for API calls                                                    |
| `name`                 | Human-readable model name                                                         |
| `is_tee`               | `true` if the model can be served confidentially by a verified TEE provider       |
| `description`          | Model or provider description                                                     |
| `context_length`       | Maximum context window                                                            |
| `max_output_length`    | Maximum output length                                                             |
| `pricing.prompt`       | Input token price per token; multiply by 1,000,000 for per-million-token pricing  |
| `pricing.completion`   | Output token price per token; multiply by 1,000,000 for per-million-token pricing |
| `providers`            | Serving routes available for the model.                                           |
| `input_modalities`     | Supported input types, such as `text` or `image`                                  |
| `output_modalities`    | Supported output types, such as `text` or `embeddings`                            |
| `supported_parameters` | Request parameters accepted by the model                                          |

## Find Verifiable TEE Models

Filter for models that can be served confidentially:

```bash theme={"system"}
curl https://inference.phala.com/v1/models \
  -H "Authorization: Bearer <API_KEY>" | \
  jq -r '.data[] | select(.is_tee == true) | .id'
```

`is_tee: true` means the model can be served confidentially. The receipt remains the per-response proof: read the `x-receipt-id` header, then verify it with [Attestation Report](/phala-cloud/confidential-ai/confidential-model/api-reference/attestation) and [Get Receipt](/phala-cloud/confidential-ai/confidential-model/api-reference/receipts).
