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.