Skip to content

REST API reference

53 endpoints in 11 groups, generated from the service as OpenAPI 3.1.0 — the same document the SDKs are typed from and the MCP server enumerates. Base URL https://api.imagestep.dev. Most programs call it through an SDK, the CLI or MCP; these pages are for writing the HTTP yourself, and for checking what a surface sent.

What every call shares

Stated here once, so the group pages do not repeat it; each row links the page that explains it in full.

ConventionThe ruleIn full
AuthenticationAuthorization: ApiKey is_sk_… on every call. The op catalogue answers without one. A key cannot manage keys; it can only revoke itself.Authentication
ResponsesJSON, {success, data, error, meta}: data exactly on success, error exactly on failure. The exceptions say so on their section — an image back from the synchronous endpoints, a redirect from /content, an empty 204.The envelope
Errorserror.code from a closed set and retryable — branch on retryable, not on the status.Error codes
IdempotencyA write marked Accepts an Idempotency-Key replays the first answer to the same key and body for 24 hours; the same key with another body is 409 idempotency_key_reuse, and one still running is 409 request_in_progress (retryable).Idempotency keys
PagingA list marked Paged takes page (from 0) and perPage (at most 100, clamped), and answers meta; send meta.nextCursor back as cursor to read on.Pagination
Rate limitsRateLimit-Limit, -Remaining and -Reset on every response; over it, 429 rate_limited with Retry-After.Rate limits and quotas
Request idsX-Request-Id on every response, repeated as error.requestId. Quote it when something fails.Request ids

And the failures no section lists, because any endpoint can answer them — the request refused before a handler ran, the missing credential, the rate limit, and the unclassified error:

StatusCodeRetryable
400invalid_paramno
401unauthorizedno
405method_not_allowedno
406not_acceptableno
413payload_too_largeno
415unsupported_media_typeno
429rate_limitedyes
500internal_erroryes

Every endpoint

One page per group, one section per endpoint. The search box finds an endpoint by path or by a word in its summary, too.

Assets

The images you store. Three ways in — one call with the bytes as the body, the three-step upload for large files and batches, or a public URL this service fetches — then search, collections and tags to find them again, publishing for a public URL, and delete. A job never rewrites an asset: what it makes is a new one.

/api/v1/assets

Jobs

Asynchronous work: an op, a saved preset or inline steps over a batch of assets, run as one job with a handle. Price it with a dry run, wait on it in the same call or follow it by id or webhook, cancel it, resume what failed. Credits are charged when the job settles, for what completed.

/api/v1/jobs

Ops

The catalogue of atomic operations: what POST /api/v1/jobs accepts in op, with each op's parameter contract, its price as data, an example request and the endpoint that runs it synchronously, if any. Read it instead of carrying a list of op names. AI ops charge credits per item; deterministic ops count against the plan's processing allowance; a sync op names the endpoint that answers it. No credential needed — an agent can read the catalogue before it has a key.

/api/v1/ops

Models

The models the AI ops run on — what model may name on a job or a preset step, with each model's price, its categories and how big an image it is handed

/api/v1/ai-models

Presets

Presets: named, versioned lists of steps — atomic ops and processing-registry steps — saved once and run by slug, id or slug@version

/api/v1/presets

Templates

HTML/CSS render templates for the render_template op: create, version, import/export

/api/v1/templates

Synchronous images

Run a deterministic operation while you wait. Nothing is stored.

/api/v1/images

Webhook endpoints

Register URLs to receive job events instead of polling, and read back what was delivered. At most 10 endpoints per account. Every delivery is signed with the endpoint's secret and retried until your receiver answers 2xx or 24 hours have passed; the events, their bodies and how to verify a signature are on /docs/webhooks.

/api/v1/webhook-endpoints

Usage

What this account spent over a window — credits, jobs, items and synchronous calls — grouped by op, API key or day: the number an agent holds a budget against

/api/v1/usage

Feedback

The agent contract face. GET /api/v1/agent-guidelines is the operating rules as one document — public, no key needed. POST /api/v1/feedback reports what ImageStep could not do, instead of routing around it, and GET /api/v1/feedback reads your reports back.

/api/v1/feedback

API keys

API keys are issued, listed and revoked from a signed-in console session: a key cannot manage credentials, because one that could mint more could outlive its own revocation. The one exception points the other way — a key may revoke itself.

/api/v1/api-keys/self

The interactive reference

The same document is served by the API itself at https://api.imagestep.dev/docs and opens standalone — a console with a request builder and a schema browser, for when you want to send a call rather than read about one. The pages here are the readable half: one URL per endpoint, indexed by the docs search and by whatever your agent uses.