---
title: "List agent models"
method: GET
path: "/agent/models"
tags: ["API Endpoints"]
---

# List agent models

`GET /agent/models`

List the currently available agent models and the aliases that resolve to them.

The `model` parameter on [POST /jobs/agent](#operation/agentEditJob) accepts any
value listed under `availableModels[].id` or `aliases[].id`. Aliases let you target
the latest
recommended model for a given tier without chasing version bumps — for example,
passing `claude-opus` always routes to whichever Claude Opus version Descript
currently recommends.

The catalog changes as models launch and retire, so this endpoint's live response
is the source of truth — the example below is an abridged illustration, not the
full list.

Cost tiers are coarse buckets — `low`, `medium`, `high` — useful for showing
users a relative price/performance signal. Exact pricing is reported per job via
the `ai_credits_used` field on [GET /jobs/{job_id}](#operation/getJob).

When `model` is omitted on `POST /jobs/agent`, the request defaults to `auto`, which
selects a recommended model for your account. `auto` is a `medium`-cost option. For an
`auto` request, `result.resolved_model` on [GET /jobs/{job_id}](#operation/getJob) reports
`auto`; for an explicit model or alias it reports the canonical id that ran.

## Response `200`

Available agent models and aliases

- object
  - `availableModels` object[], required — Canonical model ids currently advertised by the public agent API, each tagged with a coarse cost tier.
    - `id` string, required — Canonical model id to pass as `model` on `POST /jobs/agent`.
    - `cost` 'low' | 'medium' | 'high', required — Relative cost tier for this model.
  - `aliases` object[], required — Friendly aliases that resolve to one of the `availableModels` at request time. Pass any alias `id` as `model` and the agent job result's `result.resolved_model` (on [GET /jobs/{job_id}](#operation/getJob)) will report the canonical id that actually ran.
    - `id` string, required — Alias id callers can pass as `model`.
    - `resolvesTo` string, required — Canonical model id this alias currently resolves to.
    - `description` string, required — Human-readable description of the alias's intent.
    - `cost` 'low' | 'medium' | 'high', required — Relative cost tier of the model this alias resolves to.

## Other responses

- `401` — Unauthorized - missing or invalid authentication token
- `429` — Too many requests - rate limit exceeded. Use the `Retry-After` header to determine when to retry.

---

[API](https://skmtc.dev/descriptapi/apis/descript-api.md) · [All operations](https://skmtc.dev/descriptapi/apis/descript-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/descriptapi/descript-api/revisions/04c0005aef70/schema)
