# Models & capabilities

A **base model** is an AI engine you can run. Layer exposes 500+ built-in base models across image, video, 3D, and audio, all through the same endpoints. (In v2, “models” are called **base models** — see the [migration guide](/docs/migration).)

## Listing and filtering

`GET /v2/workspaces/{id}/base-models` lists the base models available in a workspace. It’s [paginated](/docs/pagination) and supports filtering:

| Filter   | Purpose                                     |
| -------- | ------------------------------------------- |
| modality | One of image, video, three\_d, audio, text. |
| search   | Free-text search over name/description.     |

```bash
curl "https://api.app.layer.ai/api/v2/workspaces/$WORKSPACE_ID/base-models?modality=image" \
  -H "Authorization: Bearer $LAYER_TOKEN"
```

Note

v1’s per-capability query filters (`inpainting`, `supports_reference_images`, `text_to_3d`, and the rest) are not part of the v2 endpoint. Filter on `modality` and `search`, then narrow the results using each model’s `capabilities` object.

## Base model details

`GET /v2/workspaces/{id}/base-models/{base_model_id}` returns the full record, including:

* **`base_model_id`** — the identifier you pass as `base_model_id` when running an inference.
* **`capabilities`** — what the model supports (session modes, accepted guidance file types, duration ranges, and per-modality flags).
* **`inference_timing`** — a rough runtime estimate (e.g. `"5–15s"`).
* **`price_per_unit`** / **`price_unit`** — what a run costs, in [Creative Units](/docs/creative-units).
* **`aliases`** — other names the same model answers to.

The exact parameters a base model accepts are described by `GET /v2/workspaces/{id}/base-models/{slug}/inference-schema`. Use these to decide which model fits a task and how to shape the request before you [estimate](/docs/creative-units) and [run](/docs/async-jobs) it.

## Reference sets

v2 guides generation with **reference sets** (your own curated images/3D/audio) passed as `reference_sets` on the inference request — the replacement for v1’s custom-trained-model `weight`. List them with `GET /v2/workspaces/{id}/reference-sets`.

Note

Migrating from v1? `…/models` is now `…/base-models`, and `model_id`/`weight` in the inference body are now `base_model_id`/`modality`/`reference_sets`. The [migration guide](/docs/migration) covers every changed endpoint.

Which base models and modalities are available can vary by workspace, based on its plan and configuration.
