Reference
OpenAPI
https://trycutstack.com/v1/openapi.json describes every endpoint, body, query and answer, generated from the same validation the server runs. It is public. Use it to generate a client, to import into an HTTP tool, or to check a field name.
# TypeScript types for every request and answer
npx openapi-typescript https://trycutstack.com/v1/openapi.json -o cutstack-v1.d.ts
# a quick look at one endpoint
curl -s https://trycutstack.com/v1/openapi.json | jq '.paths["/v1/jobs/{id}/review"].get'The spec is versioned with the API (info.version). Additions to /v1 are not breaking; a breaking change would be a /v2.
Every endpoint
All under https://trycutstack.com, all with Authorization: Bearer except the last.
| Method | Path | What | Docs |
|---|---|---|---|
POST | /v1/jobs | Create an empty batch (JSON or multipart with a background image); optional webhook. | batches |
GET | /v1/jobs | List your batches, newest first, without photos. | batches |
GET | /v1/jobs/{id} | Read a batch; since, fields=summary, wait. | batches |
DELETE | /v1/jobs/{id} | Delete a batch now. | batches |
POST | /v1/jobs/{id}/items | Add photos: multipart files, or JSON urls / zipUrl. | batches |
DELETE | /v1/jobs/{id}/items | Remove several photos (itemIds). | batches |
POST | /v1/jobs/{id}/start | Charge and start; sample, defaults, Idempotency-Key. | batches |
POST | /v1/jobs/{id}/continue | Run the held photos. | batches |
POST | /v1/jobs/{id}/cancel | Stop a running batch. | batches |
GET | /v1/jobs/{id}/download | The ZIP; naming, formats, extra presets. | batches |
GET | /v1/jobs/{id}/review | Only the photos worth a second look. | review |
POST | /v1/jobs/{id}/apply | Change the output of finished photos. Free. | settings |
POST | /v1/jobs/{id}/retry | Run photos through the model again (itemIds or failed). | review |
GET | /v1/jobs/{id}/events | Live progress as Server-Sent Events. | events |
GET | /v1/jobs/{id}/webhooks | What happened to the batch's webhook deliveries. | events |
GET | /v1/jobs/{id}/items/{itemId}/file | One file: output, cutout, original, thumbnail. | batches |
DELETE | /v1/jobs/{id}/items/{itemId} | Remove one photo. | batches |
POST | /v1/jobs/{id}/items/{itemId}/retry | Run one photo again; tier: heavy for the strongest model (2 credits). | review |
POST | /v1/jobs/{id}/items/{itemId}/report | Report a broken result; refund when the pixel check agrees. | review |
POST | /v1/jobs/{id}/items/{itemId}/preview | Render one photo with other settings, nothing stored. | settings |
POST | /v1/images | One photo, one call. | single-image |
GET | /v1/presets | The marketplace presets and their sources. | settings |
GET | /v1/account | Balance per pocket, plan, limits, which key is speaking. | credits |
GET | /v1/credits/ledger | Every credit movement, paginated. | credits |
GET | /v1/openapi.json | This API as OpenAPI 3.1. No key needed. | reference |
Agents and MCP
An agent that can make HTTP requests can use everything on this site today; the review queue, the wait parameter and the single-image call were shaped for that. A Model Context Protocol server, which packages the same calls as tools for Claude, Cursor and other MCP clients, is the next thing we build. It will run next to your agent with your API key and add nothing you cannot do over HTTP now.
Your account
- API keys: create, name, revoke.
- Usage and history: the ledger, with batch ids.
- Credits: buy a pack.
- Help and Terms.
Building something with this? Tell us what, and the volume, on the Agents & API page. It decides what we build next, and it is how limits get raised.