---
title: "List Account Models"
method: GET
path: "/v1/account/models"
tags: ["v1"]
---

# List Account Models

`GET /v1/account/models`

## Request

- Base URL: `https://api.ellipsis.dev`
- URL: `https://api.ellipsis.dev/v1/account/models`
- Auth: HTTP bearer

List selectable agent models.

Grouped by manufacturer and model family, newest versions first
within each family.

Reads the same registry as the dashboard's rate table, so a
client's model picker can never drift from what's offered. The
selectable set is global.

## Headers

- `user-agent` string, nullable

## Response `200`

Successful Response

- ModelsListResponse
  - `models` Model[], required
    - `aliases` string[], required: Other ids that select this model, such as claude-opus for the newest Opus. A session started with an alias runs on id. Empty for most models.
    - `capabilities` SessionCapability[], required: Capabilities supported by this harness/model.
    - `default_reasoning_effort` union: Initial reasoning effort for model pickers, or null when effort cannot be configured. This is one of reasoning_efforts, not an additional slider position. Submit this value as harness.effort to apply it explicitly instead of inheriting native harness settings.
      - 'low' | 'medium' | 'high' | 'xhigh' | 'max'
      - 'none' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'
    - `display_name` string, required
    - `harness` 'claude_code' | 'codex' | 'gemini', required
    - `id` string, required
    - `manufacturer` 'anthropic' | 'openai' | 'google', required: Who BUILT a model. Never who serves it. Serving path is irrelevant here. Anthropic built every Claude model, so all of them are ANTHROPIC even though OpenRouter is what actually serves them. Likewise the `gpt-5.6-*` rows are OPENAI (OpenAI's models, resold to us by OpenRouter) and the `gemini-*` rows are GOOGLE. So this is deliberately NOT derived from `EgressRoute.provider`: routing is an infrastructure fact that changes when we move a model between providers, while the manufacturer is a property of the model itself and never changes. The frontend renders a vendor logo per model, which is why it needs the maker. Keying that UI off the egress provider would put OpenRouter's logo on every model.
    - `rate_card` ModelRateCardApi, required
      - `cache_read_per_1m_tokens` integer, required
      - `cache_write_1h_per_1m_tokens` integer, required
      - `cache_write_5m_per_1m_tokens` integer, required
      - `input_per_1m_tokens` integer, required
      - `output_per_1m_tokens` integer, required
    - `reasoning_efforts` union[]: Selectable reasoning efforts, in increasing order. An empty list means reasoning effort cannot be configured. The string 'none' is an explicit effort level, not an omitted setting.
      - union
        - 'low' | 'medium' | 'high' | 'xhigh' | 'max'
        - 'none' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'

## Other responses

- `401`: The bearer token is missing, invalid, or revoked.
- `403`: The credential may not perform this action, or the account is blocked.
- `422`: Validation Error

---

[API](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api.md) - [All operations](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api/revisions/344b16df9a1a?raw)
