Skip to main content
POST
Submit Review With Media (Merchant, one-call)
POST {BASE_URL}/reviews/with-media
The API validates the form and file signatures, creates the review, and waits for each media upload to be accepted before responding. Final Cloudinary webhook processing remains asynchronous, so a successful response normally starts with mediaStatus: "processing". A later media failure does not roll back the review; the terminal status is partial or failed.

Body parameters

This endpoint uses multipart/form-data encoding. Send all fields as form values, not JSON.
string
required
Product ID.
string
required
1–5.
string
required
Customer display name.
string
required
Customer email.
file
JPEG, PNG, WebP, GIF, MP4, WebM, or QuickTime media. Repeat the key for up to three files, max 50 MB each. File signatures are validated; a declared type that does not match the bytes returns 400 INVALID_FILE_TYPE before the review is created. Generic application/octet-stream uploads are accepted only when the bytes identify one of these supported formats.
string
Review headline.
string
Review body.
string
Order ID for verified purchase.
string
Incentive claim ID.
"true" to confirm FTC disclosure.
string
"true" or "false".
string
Free-text pros.
string
Free-text cons.
string
Custom attributes as a JSON-stringified string, e.g., '{"fit":"true_to_size"}'.

Example

Headers

X-Merchant-Id
string
X-API-Key
string

Body

multipart/form-data
productId
string
required
rating
enum<string>
required
Available options:
1,
2,
3,
4,
5
title
string
required
text
string
required
authorName
string
required
authorEmail
string<email>
required
orderId
string
wouldRecommend
enum<string>
Available options:
true,
false
pros
string
cons
string
attributes
string

JSON-stringified custom attributes.

file
file[]

Repeat the field for each file. Maximum 50 MB per file.

Maximum array length: 3

Response

Successful response

success
boolean
required
Example:

true

data
object