SocialCrawl

Review schema

The unified SocialCrawl review schema. Every field, its type, per-platform availability, and a machine-readable JSON Schema, generated from the canonical Zod source.

Every SocialCrawl endpoint that returns a review gives you this exact shape, whatever the source platform. Write your parser once and the same code reads review data from every platform below. That is the unified schema: one contract instead of a dozen raw upstream formats.

Field reference

FieldTypeNullableDescription
idstringNoReview ID (parsed from the review URL when not first-class)
entity_idstringYesID of the reviewed entity (e.g. the Amazon ASIN)
urlstringYes
titlestringYes
textstringYesFull review body
rating.valueintegerYes
rating.maxintegerYes
author.namestringYes
author.avatar_urlstringYes
author.urlstringYes
author.locationstringYes
author.reviews_countintegerYes
helpful_votesintegerYesHelpful-vote count (Amazon; null elsewhere)
verifiedbooleanYesVerified-purchase flag (Amazon; null elsewhere)
sourcestringYes
languagestringYes
original_languagestringYes
translatedbooleanYes
imagesstring[]Yes
responsesobject[]YesOwner/brand/management replies to the review, each {id, author, text, published_at} with published_at as an ISO 8601 UTC string (REL-07.6).
published_atstring or integerYesReview creation timestamp as an ISO 8601 UTC string (REL-07.6). Upstreams that send only a calendar date land on midnight UTC. When the upstream sent a Unix epoch it is converted here and the raw epoch is preserved under review.ext.published_at_epoch.

Extension fields (ext)

Platform-specific passthrough. Each field is present only on the platforms that expose it and is absent everywhere else, so treat every ext.* field as optional. These carry the richer, per-platform signals the unified leaves cannot hold, and the join keys that chain endpoints together.

FieldTypeNullableDescription
ext.appdatastringYes
ext.tiktokshopstringYes

Platform availability

18 platforms return the Review shape. id are never null on any platform. The fields below vary: yes means the platform populates it (the value may still be null); a blank means the platform never provides it, so it is always null.

Platformauthor.avatar_urlauthor.locationhelpful_votesrating.maxurllanguageauthor.reviews_countauthor.urltitleverifiedimagesentity_id
AliExpressyesyes
Amazonyesyesyesyesyesyes
Apple App Storeyesyesyesyesyes
G2yesyes
Googleyesyesyesyesyesyes
Google Playyesyesyesyesyes
Google Shoppingyesyesyesyes
Home Depotyesyesyesyes
Klarnayesyesyesyesyesyes
Kohl'syesyesyesyesyes
Sephorayesyesyesyes
Targetyesyesyesyesyesyes
TikTok Shopyesyesyesyesyesyes
Tripadvisoryesyesyesyesyesyesyesyes
Trustpilotyesyesyesyesyesyesyesyesyesyes
Walmartyesyesyes
Wayfairyesyesyesyes
Yelpyesyesyesyesyes

Machine-readable schema

Validate responses programmatically against the JSON Schema (2020-12):

/schemas/review.json

Point a validator (Ajv, jsonschema, or your framework's) at that URL, or hand it to an agent so it can check the shape without a live call.

Returned by

Endpoints with the Review / ReviewList archetype return this shape:

AliExpress · Amazon · Apple App Store · G2 · Google · Google Play · Google Shopping · Home Depot · Klarna · Kohl's · Sephora · Target · TikTok Shop · Tripadvisor · Trustpilot · Walmart · Wayfair · Yelp

See how the same fields map to each platform's raw upstream names in the cross-platform field equivalence table.

On this page