---
title: "List presets"
method: GET
path: "/api/v1/presets"
tags: ["Preset Management"]
---

# List presets

`GET /api/v1/presets`

## Request

- Base URL: `https://api.imagestep.dev`
- URL: `https://api.imagestep.dev/api/v1/presets`
- Auth: API key in header `Authorization`

Built-in presets first, then your own, most recently updated first. Each entry is the current
version — what the preset runs now — and `usage`, how much it is being run.

NOT PAGED: the built-ins and every preset of yours (an account holds at most 1000) come back in one answer, with no `meta`.

NO HISTORY BY DEFAULT: `versions` is left off, and `versionCount` says how many there are (the
current one plus every superseded one). Read one preset's snapshots with
GET /api/v1/presets/{slug}, or pass `?includeVersions=true` here for the export shape of every
preset at once — which is what POST /api/v1/presets/import takes back.

USE THIS WHEN:
- Choosing a preset to run, or listing what an account has saved

DO NOT USE WHEN:
- You know the slug → GET /api/v1/presets/{slug}

FILTER: omit for both, `builtin` for the shipped ones only, `user` for your own only.

## Query parameters

- `filter` 'builtin' | 'user'
- `includeVersions` boolean

## Response `200`

Every preset the filter selects, built-ins first

## Other responses

- `400`: `invalid_param` — `filter` is neither `builtin` nor `user`
- `429`: Rate limited — `error.code` is `rate_limited` and `retryable` is true. `Retry-After` says how many seconds to wait.

---

[API](https://skmtc.dev/imagestep/apis/imagestep-api.md) · [All operations](https://skmtc.dev/imagestep/apis/imagestep-api/llms.txt) · [OpenAPI document](https://skmtc.dev/imagestep/apis/imagestep-api/revisions/5e8e922a3085?raw)
