Product schema
The unified SocialCrawl product schema. Every field, its type, per-platform availability, and a machine-readable JSON Schema, generated from the canonical Zod source.
Product schema
Every SocialCrawl endpoint that returns a product gives you this exact shape, whatever the source platform. Write your parser once and the same code reads product data from every platform below. That is the unified schema: one contract instead of a dozen raw upstream formats.
Field reference
| Field | Type | Nullable | Description |
|---|---|---|---|
id | string | No | Platform product ID (Amazon ASIN / Google Shopping product id) |
url | string | Yes | Direct URL to the product page |
title | string | Yes | Product title |
description | string | Yes | |
seller | string | Yes | |
brand | string | Yes | Brand name (cleaned). Null when the platform exposes a seller instead. |
price.current | integer | Yes | |
price.original | integer | Yes | |
price.currency | string | Yes | |
rating.average | integer | Yes | |
rating.count | integer | Yes | |
image_urls | string or string[] | Yes | Primary image URL, or an array of image URLs for products with a gallery. |
availability | string | Yes | Stock/availability string when surfaced |
reviews_count | integer | Yes | |
features | string[] | Yes | |
specifications | object[] | Yes | |
variations | object[] | Yes |
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.
| Field | Type | Nullable | Description |
|---|---|---|---|
ext.gid | string | Yes | |
ext.data_docid | string | Yes | |
ext.pvf | string | Yes |
Platform availability
2 platforms return the Product 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.
| Platform | brand | image_urls | reviews_count | seller |
|---|---|---|---|---|
| Amazon | yes | yes | ||
| Google Shopping | yes | yes |
Machine-readable schema
Validate responses programmatically against the JSON Schema (2020-12):
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 Product / ProductList archetype return this shape:
See how the same fields map to each platform's raw upstream names in the cross-platform field equivalence table.
