Skip to content
Get your keyGet a key

Reference · Library

POST/products

Add a product by hand, with its pictures

Add a product to the person's products by hand, as the Products page's Add product does: its name, what it is, its price, benefits, selling points, audience and up to 8 pictures (links, or their own files' keys). It is ready at once for the ads (productId on POST /api/v1/ugc-ads), the board and the Creative Director. A product already at sourceUrl is updated instead of added twice. Free (no credits). To read one from its shop page instead, use POST /api/v1/products/import; to change one, PATCH /api/v1/products/{productId}.

Key needs
create · Make things and spend credits
Spends
Nothing
Answers
Data
Request
curl -X POST https://vessero.com/api/v1/products \
  -H "Authorization: Bearer $VESSERO_API_KEY" \
  -H "Idempotency-Key: 47f8f6f5-ea00-4fb1-925f-76aac956a0ec" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Glow serum",
    "description": "A vitamin C serum for dull skin, light enough to wear under make-up.",
    "price": 34,
    "currency": "USD",
    "benefits": [
      "Brighter skin in two weeks"
    ],
    "sellingPoints": [
      "15% vitamin C",
      "Fragrance free"
    ],
    "pictures": [
      "https://example.com/products/glow-serum.jpg"
    ]
  }'

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

  • titlestringrequiredIts name, as the ads should say it, e.g. "Linen shirt".
  • descriptionstringWhat it is, in a few sentences: what the ads, the board and the Creative Director read about it.
  • pricenumber | nullIts price, in the currency’s own units, e.g. 49.9; null for none.
  • compareAtPricenumber | nullWhat it cost before a sale, shown struck through; null for none.
  • currencystringThe price’s currency, by its three-letter code, e.g. "USD" (the default) or "EUR".
  • benefitsstring[] · up to 60What it does for the buyer, one each, e.g. "Keeps you cool on hot days".
  • sellingPointsstring[] · up to 60What sets it apart, one each, e.g. "100% European linen".
  • audiencestring | nullWho it is for, e.g. "Men 25–45 who travel for work".
  • brandIdstring | nullThe brand kit it belongs to (GET /api/v1/boards/guide lists theirs); null for none.
  • sourceUrlstring · https | nullIts page on their shop, kept as its link. A product already at this link is the one changed, never a second one.
  • picturesstring[] · up to 8Up to 8 pictures of it, its main one first.

Answers

  • 200okWhat it did, as data.
  • 400invalid_requestA field is missing or not accepted: see details.
  • 404not_foundNot found on this account.
  • 403feature_unavailableThe studio this needs is switched off for the account right now.
Next in LibraryGET/products/{productId}