Skip to content
Get your keyGet a key

Reference · Ads

POST/picture-ads/quote

Price it: make picture ads from a template, a product or a brief

The price for exactly this body, the balance beside it and any notes. Nothing runs and nothing is charged. Run it with POST /api/v1/picture-ads, the same body, confirmCredits set to credits and the same Idempotency-Key.

Key needs
create · Make things and spend credits
Answers
A quote · free
Request
curl -X POST https://vessero.com/api/v1/picture-ads/quote \
  -H "Authorization: Bearer $VESSERO_API_KEY" \
  -H "Idempotency-Key: 47f8f6f5-ea00-4fb1-925f-76aac956a0ec" \
  -H "Content-Type: application/json" \
  -d '{
    "way": "template"
  }'
Response200 OK
{
  "object": "quote",
  "credits": 12,
  "balance": 840,
  "lines": [
    "1 image × 12 (Nano Banana Pro · 4K)"
  ],
  "notes": [],
  "requestId": "47f8f6f5-ea00-4fb1-925f-76aac956a0ec",
  "run": {
    "method": "POST",
    "path": "/api/v1/images",
    "confirmCredits": 12,
    "idempotencyKey": "47f8f6f5-ea00-4fb1-925f-76aac956a0ec"
  }
}

Header

  • Idempotency-KeystringYour id for this request: 8–64 letters, digits, - or _. A repeat within 10 minutes gets the first answer back and never runs twice. Use the same one for the quote and the run.

Body

  • waystringrequiredtemplate, recreate or brief.templaterecreatebrief
  • templateIdstringTemplate: which template. Leave it out to get the list (free; nothing runs).
  • productKeystringThe product’s picture: a storage key from POST /api/v1/files or POST /api/v1/library/use, or an https link to the file (brought into their Uploads first). Needed for template and recreate; optional for a brief.
  • castMemberIdstringTemplate: someone from their cast as the model in the ad (GET /api/v1/cast).
  • adKeystringRecreate: the ad they like, a picture: a storage key from POST /api/v1/files or POST /api/v1/library/use, or an https link to the file (brought into their Uploads first).
  • promptstringTemplate: words to add (optional). Recreate: what to change — their product in, and anything else (needed).
  • resolutionstringTemplate or recreate: 2k (the default) or 4k.2k4k
  • aspectRatiostringTemplate: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9 (default auto, the template’s own). Brief: 1:1, 4:5, 5:4, 3:4, 4:3, 2:3, 3:2, 9:16, 16:9, 21:9, 1:2, 2:1 (default 9:16).
  • briefstringBrief: what the ads sell, and to whom (needed).
  • nichestringBrief: the niche.
  • audiencestringBrief: who the ads are for.
  • languagestringBrief: the language of the ads’ words. Default English.
  • conceptsintegerBrief: how many concepts, 1–8. Default 4.

Answers

  • 200quoteThe price for exactly this body, your balance and any notes. Nothing ran.
  • 400invalid_requestA field is missing or not accepted: see details.
  • 403feature_unavailableThe studio this needs is switched off for the account right now.
  • 429rate_limitedToo many calls this minute: see Retry-After.
Next in AdsPOST/stories