Listing
commerce.listingUnifiedSoonOne product page on one marketplace: what it costs, how it ranks, what buyers say and how much it sells, with the shop and company behind it.
11 marketplaces5 planned calls53 fieldskey marketplace + listing IDAmazon and TikTok Shop first
Where Listing sits
Variant and Offer- sold under
Brand - filed in
Category - ranks for
Keyword - featured in a
VideoorLiveStreamby aCreator - may touch an
IPRight - shop named in a
Case
5 calls plannedSoon
Calls from commerce API design 0.1.0-draft, written as REST paths. Each call returns this entity in one shape on the platforms it lists, and none is deployed yet.
- GET
/One listing with the Variants and Offers the source returnedTikTok Shop · AmazonDesignedv1/ e-commerce/ listings/ {listingId} - GET
/Search listings on one marketplace; each platform has its own filtersTikTok Shop · AmazonDesignedv1/ e-commerce/ listings/ search - GET
/Find candidate listings from a product photo, without assuming they are the same itemTikTok Shop · AmazonDesignedv1/ e-commerce/ listings/ search-by-image - GET
/Best-seller rankings by category and dateTikTok Shop · AmazonDesignedv1/ e-commerce/ listings/ rankings - GET
/Videos that promote one listingTikTok ShopDesignedv1/ e-commerce/ tiktok-shop/ listings/ {listingId}/ videos
Fields
The main fields by type. Observable ones use the contract's keys; the full contract follows.
Observable
A fresh snapshot, else a live read, else the next sourceBilled: When it comes back- titlestringWhen it comes back
- imagesobject[]When it comes back
- related.categoriesuuid[]The most specific category confirmed, in the marketplace's own taxonomyWhen it comes back
- rating.scoredecimal0 can mean not rated yetWhen it comes back
- review.countintegerWritten reviews only; star-only ratings go to rating.countWhen it comes back
- lifecycle.launch_datedateThe date the source reports, not when AIsa first saw the pageWhen it comes back
- relation.shop_iduuidThe shop that published it. On Amazon, the Featured Offer seller is not taken as the ownerWhen it comes back
- related.offersuuid[]Price, stock and delivery live on each OfferWhen it comes back
- metrics.sales_countdecimalTotal or for a period, as the source counts it; two sources are never added upWhen it comes back
- metrics.video_countintegerVideos that promote the product in the period, not viewsWhen it comes back
Estimated
One estimator by default, up to three side by sideBilled: Per queryVerifiable
One source at a time, until an answer passes a checkBilled: Once it passesLists & risk
Pooled from several sources; one hit is enough to flagBilled: Per row45 fields in the field contractDesign 0.1.0-draft · listing-contract-v3.2
Field keys and how each value is written, as the design defines them. Only fields a source actually returned come back.
Identity5
AIsa's ID, the platform, the site and the platform's own IDentity.iduuidentity.kindstringentity.platformstringentity.scopestringentity.native_idstring
Page11
Title, link, images and what the page showstitlestringurlurlimagesobject[]image.cover_urlurldescription.blocksobject[]attributes.listobject[]status.availabilitystringlifecycle.launch_datedatebadgesstring[]affiliate.commission_ratedecimaloption_groupsobject[]
Ratings5
Rating and review counts, kept apartrating.scoredecimalrating.countintegerrating.distributionobject[]review.summarystringreview.countinteger
Metrics17
Sales, GMV and engagement, each over its source's periodmetrics.sales_countdecimalmetrics.gmvdecimalmetrics.gmv_totaldecimalmetrics.creator_countintegermetrics.video_countintegermetrics.live_countintegermetrics.video_view_countintegermetrics.creator_order_ratedecimalmetrics.gmv_trendobject
Show 8 more fieldsShow fewer
metrics.video_average_views_reporteddecimalmetrics.video_gpm_reporteddecimalmetrics.video_conversion_reporteddecimalmetrics.live_average_viewers_reporteddecimalmetrics.ad_gmv_reporteddecimalmetrics.ad_cost_reporteddecimalmetrics.seller_creator_sales_count_30ddecimalmetrics.seller_creator_gmv_30ddecimal
Links7
AIsa IDs of the entities it points atrelation.shop_iduuidrelated.variantsuuid[]related.variant_listingsuuid[]related.parent_listingsuuid[]related.child_listingsuuid[]related.offersuuid[]related.categoriesuuid[]
decimal and integer values arrive as strings to keep precision. A key ending in _reported is the source's own figure, method unconfirmed; _raw keeps the source's raw code. uuid fields point at other AIsa entities.
By marketplace
Where five or more estimators exist, sales come back side by side and get calibrated first. Elsewhere it starts with two compared, or one source labeled as one.
| Marketplace | Listing key | Live reads | Estimators | Sales estimates | Status |
|---|---|---|---|---|---|
| Amazon | amazon:US · ASIN | 4 | 6 | Side by side, calibrated | Live |
| TikTok Shop | tiktok-shop:US · product_id | 1 | 5 | Side by side, calibrated | Live |
| Temu | temu:US · goods_id | — | 3 | Side by side | Soon |
| Walmart | walmart:US · item ID | 1 | 2 | Two compared | Soon |
| Shopee | shopee:SG · item_id | 1 | 2 | Two compared | Soon |
| Ozon | ozon:RU · SKU | — | 2 | Two compared | Soon |
| Mercado Libre | mercadolibre:BR · item ID | — | 2 | Two compared | Soon |
| Etsy | etsy:US · listing_id | 1 | 1 | One source, labeled | Soon |
| Shopify | shopify:{store} · product ID | — | 1 | One source, labeled | Soon |
| eBay | ebay:US · item ID | 1 | — | Live reads only | Soon |
| 1688 | 1688:CN · offerId | — | 2 | Supplier lists, merged | Soon |
Counts come from the phase-one supplier list. Fill rate per field shows here once each marketplace is live.
What stays fixed
AIsa can swap the sources behind a field at any time. These stay put.
- The marketplace's own ID is the key, stored exactly as the marketplace issued it.
- An ID AIsa hands out is never changed or reused.
- Two sources that count differently stay two metrics, and the raw values are kept.
- Fields are only ever added. A changed meaning ships as a new version, with the old one kept for a while.