Skip to main content
POST
Sync optional product reviews
Review sync is optional. Upload the product first, then send review batches whenever your review source changes. Prefer a stable external_review_id. A public permalink is the next-best identity. If neither exists, virtual.fit derives a conservative identity from the available author, date, rating, title, and body. Each item is its complete current review record. Include its current stars, text, purchased variant, and media on every update. To delete one review, send its stable ID or permalink with deleted: true. Use snapshot_complete: true only when the batch contains every current review in the named partition_key. Omitted reviews become inactive after two consecutive complete snapshots. Leave it false for pages, partial feeds, and incremental updates.
virtual.fit extracts fit evidence from review text asynchronously. You only need to send fit_signals when the source already provides an explicit structured vote such as “runs small” or “true to size.”

Authorizations

Authorization
string
header
required

Keep the virtual.fit API key on your server.

Path Parameters

site_id
string<uuid>
required

Custom JavaScript site ID from virtual.fit.

product_id
string
required

Stable, case-sensitive identity that remains unchanged when the product's title, URL, options, variants, price, or media change. URL-encode it in the request path.

Maximum string length: 255

Body

application/json
event_id
string
required

Unique idempotency key. Reusing it with different data is rejected.

Maximum string length: 255
provider
string
required

Stable lowercase key for the review source.

Maximum string length: 255
reviews
object[]
required
Maximum array length: 250
partition_key
string
default:product_reviews
Maximum string length: 255
snapshot_complete
boolean
default:false

True only when this batch is a complete view of the exact provider, product, and partition.

observed_at
string<date-time>

Response

Review batch accepted.

accepted_count
integer
required
created_count
integer
required
updated_count
integer
required
versioned_count
integer
required
deactivated_count
integer
required
replay
boolean
required