Skip to content
Get your keyGet a key

Get started

Sending a request twice

Send an Idempotency-Key with every run. If your server sends the same request again, it gets the first answer back, and nothing runs or is charged twice.

A run with its keyPOST/videos
curl -X POST https://vessero.com/api/v1/videos \
  -H "Authorization: Bearer $VESSERO_API_KEY" \
  -H "Idempotency-Key: 47f8f6f5-ea00-4fb1-925f-76aac956a0ec" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A slow push in on a steaming coffee cup on a café table",
    "durationSec": 5,
    "firstKey": "https://example.com/frames/coffee-cup.jpg",
    "confirmCredits": 58,
    "webhookUrl": "https://example.com/hooks/vessero"
  }'
Response202 Accepted
Idempotent-Replayed: true
{
  "object": "job",
  "id": "video.8f1c2d3e-4b5a-4789-8abc-def012345678",
  "kind": "video",
  "status": "working",
  "stage": "Queued",
  "files": [],
  "credits": 58,
  "url": "/api/v1/jobs/video.8f1c2d3e-4b5a-4789-8abc-def012345678"
}

The key

An Idempotency-Key header is your id for one request: 8 to 64 letters, digits, - or _. A UUID will do. Make a new one for each distinct request, and use the same one for a request’s quote and its run.

A repeat

A repeat with the same key within 10 minutes gets the first answer back, marked Idempotent-Replayed: true, and never runs or charges again. One that arrives while the first is still running is answered 409 request_in_progress. The same key with a different body is refused: 422 idempotency_key_reused.

Without a key, every call is a new request: a retry after a timeout may run, and charge, twice.