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.valuenumberYes
rating.maxnumberYes
author.namestringYes
author.avatar_urlstringYes
author.urlstringYes
author.locationstringYes
author.reviews_countnumberYes
helpful_votesnumberYesHelpful-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 numberYesReview 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.appdataobjectYes
ext.tiktokshopobjectYes
ext.naver.visit_countnumberYes
ext.naver.verified_bystringYes
ext.naver.treatmentstringYes
ext.naver.view_countnumberYes
ext.naver.keywordsstring[]Yes
ext.naver.dedupe_keystringYes

Platform availability

19 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.locationrating.maxurlauthor.avatar_urlhelpful_votesauthor.reviews_countauthor.urllanguagetitleverifiedimagesentity_id
AliExpressyesyes
Amazonyesyesyesyesyesyes
Apple App Storeyesyesyesyesyes
G2yesyes
Googleyesyesyesyesyesyes
Google Playyesyesyesyesyes
Google Shoppingyesyesyesyes
Home Depotyesyesyesyes
Klarnayesyesyesyesyesyes
Kohl'syesyesyesyesyes
Naveryesyesyesyesyesyesyes
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 · Naver · 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