API reference · Types
BrowseProductOffersResponse
Part of the response of GET /products/{productId}.
Type: object
Example
{
"success": true,
"data": {
"offers": [
{
"lane": "native",
"productId": 86,
"sellerId": 42,
"storeSlug": null,
"variantId": null,
"skuId": 14602,
"sellerName": "Sandbox Cards",
"condition": "NM",
"language": "EN",
"finish": "Normal",
"isSealed": false,
"price": 24.99,
"available": 3,
"checkoutMode": "express",
"salesCount": 18,
"sellerCode": "sandbox-cards",
"reviewScore": {
"score": 4.93,
"count": 15
},
"poBoxDelivery": {
"status": "available"
},
"disclosures": {
"imageSource": "catalog",
"conditionSource": "seller_declared",
"authenticitySource": "seller_attestation",
"snapcasterInspected": false,
"snapcasterGraded": false,
"snapcasterAuthenticated": false,
"gradingStandard": "snapcaster-magic-v1",
"declaredGrade": "Near Mint",
"buyerProtection": "magic-grade-and-authenticity"
},
"fulfillmentObligation": {
"sku": "exact",
"printing": "exact",
"language": "exact",
"finish": "exact",
"condition": "declared-or-better"
}
}
],
"product": {
"productId": 86,
"name": "Abyssal Nightstalker",
"set": "Portal Second Age",
"rarity": "U",
"collectorNumber": null,
"imageUrl": "https://tcgplayer-cdn.tcgplayer.com/product/86_200w.jpg",
"details": [
{
"label": "Rarity",
"value": "U",
"runs": [
{
"type": "text",
"text": "U",
"emphasis": false
}
]
},
{
"label": "P",
"value": "2",
"runs": [
{
"type": "text",
"text": "2",
"emphasis": false
}
]
}
]
}
}
}Fields
successboolean requiredWhether the operation completed as requested.
Constraints: allowed values:
trueExampletruedegradedbooleanPresent and true while the marketplace is in degraded mode: prices and availability on browse surfaces may be briefly out of date, and are confirmed before purchase. Absent when the platform is healthy.
Constraints: allowed values:
truedataobject requiredThe operation or event payload.
Show child fieldsHide child fields
data.offers BrowserequiredProduct Offer[] The product’s offers, cheapest first.
Show child fieldsHide child fields
data.string requiredoffers[]. lane The source of the offer:
nativefor a marketplace seller's listing, orhandofffor a handoff store's synced single. Use this field to choose the cart-line identifiers and determine whether Snapcaster handles the sale.Constraints: allowed values:
native,handoffExamplenativedata.integer requiredoffers[]. productId See Canonical catalog in Core concepts.
Example
86data.integer or null requiredoffers[]. sellerId The offering seller id. Combine it with
skuIdto identify a native cart line. Null for ahandoffoffer, which has no seller record.Example
42data.string or null requiredoffers[]. storeSlug The handoff store’s slug - its stable identity across the cart, the quote and the permalink.
nullon anativeoffer.Example
nulldata.integer or null requiredoffers[]. variantId The Shopify variant this handoff offer is for; with
storeSlugit is the handoff cart-line key.nullon anativeoffer.Example
nulldata.integer requiredoffers[]. skuId The canonical TCGplayer SKU id. A native cart line uses
sellerIdandskuId; a handoff cart line usesstoreSlugandvariantId.Example
14602data.string or null requiredoffers[]. sellerName The display name of the seller or handoff store. Use
sellerCodeorstoreSlugfor links and identifiers.Example
Sandbox Cardsdata.string or null requiredoffers[]. condition The normalized condition assigned to the card.
Example
NMdata.string or null requiredoffers[]. language The language of the card printing.
Example
ENdata.string or null requiredoffers[]. finish The physical finish or foil treatment of the card.
Example
Normaldata.boolean requiredoffers[]. isSealed True when the canonical SKU condition is
Unopened; matches the product grid classification.Example
falsedata.number requiredoffers[]. price Offer price in dollars as a decimal amount.
Example
24.99data.integer requiredoffers[]. available Available stock: on-hand minus committed units.
Example
3data.string or null requiredoffers[]. checkoutMode Where the buyer checks out:
expresson Snapcaster, ormanualon the seller's own site. Null for a legacy search record indexed before this field existed.Constraints: allowed values:
express,manual,nullExampleexpressdata.integer or null requiredoffers[]. salesCount The number of paid orders for an
expressstore, calculated for each request. Zero for a store with no sales. Null for amanualstore, whose orders are created outside Snapcaster; omit the sales count from its display.Example
18data.string or null requiredoffers[]. sellerCode The store's public handle for links to
/marketplace/sellers/{sellerCode}. Read from the database on each request. Null if the store has no directory row; the offer is still returned.Example
sandbox-cardsdata.offers[]. reviewScore ReviewrequiredScore The review score and the number of ratings used to calculate it. Display both so readers can judge the sample size. Calculated for each request. A store with no reviews returns
{ score: null, count: 0 }, as does amanualstore, which cannot receive reviews in v1. Used on the seller page and product offers.Show child fieldsHide child fields
data.number or null requiredoffers[]. reviewScore. score The mean of current, non-hidden ratings, rounded to two decimals. Null when the store has no reviews.
Example
4.93data.integer requiredoffers[]. reviewScore. count The number of current, non-hidden reviews included in the mean.
Example
15
data.offers[]. poBoxDelivery Poor null requiredBox Delivery Whether the store can deliver to PO Boxes. Null for a
handoffoffer, where Snapcaster does not arrange shipping.Show child fieldsHide child fields
data.string requiredoffers[]. poBoxDelivery. status available: the store delivers to PO Boxes.seller_declines: the store does not.platform_suspended: PO Box delivery is suspended platform-wide (e.g. a Canada Post strike) and outranks the store’s own setting.Constraints: allowed values:
available,seller_declines,platform_suspendedExampleavailable
data.offers[]. disclosures Listingor null requiredDisclosures Provenance, grading, and authenticity statements shown to the buyer.
Show child fieldsHide child fields
data.string requiredoffers[]. disclosures. imageSource Constraints: allowed values:
catalogExamplecatalogdata.string requiredoffers[]. disclosures. conditionSource Constraints: allowed values:
seller_declaredExampleseller_declareddata.string requiredoffers[]. disclosures. authenticitySource Constraints: allowed values:
seller_attestationExampleseller_attestationdata.boolean requiredoffers[]. disclosures. snapcasterInspected Constraints: allowed values:
falseExamplefalsedata.boolean requiredoffers[]. disclosures. snapcasterGraded Constraints: allowed values:
falseExamplefalsedata.boolean requiredoffers[]. disclosures. snapcasterAuthenticated Constraints: allowed values:
falseExamplefalsedata.string requiredoffers[]. disclosures. gradingStandard Constraints: allowed values:
snapcaster-magic-v1,seller-declared-no-specialist-promiseExamplesnapcaster-magic-v1data.string or null requiredoffers[]. disclosures. declaredGrade Example
Near Mintdata.string requiredoffers[]. disclosures. buyerProtection Constraints: allowed values:
magic-grade-and-authenticity,genuine-and-as-describedExamplemagic-grade-and-authenticity
data.offers[]. fulfillmentObligation Listingor null requiredFulfillment Obligation Show child fieldsHide child fields
data.string requiredoffers[]. fulfillmentObligation. sku The SKU that identifies the card variant.
Constraints: allowed values:
exactExampleexactdata.string requiredoffers[]. fulfillmentObligation. printing The card printing the seller must supply.
Constraints: allowed values:
exactExampleexactdata.string requiredoffers[]. fulfillmentObligation. language The language of the card printing.
Constraints: allowed values:
exactExampleexactdata.string requiredoffers[]. fulfillmentObligation. finish The physical finish or foil treatment of the card.
Constraints: allowed values:
exactExampleexactdata.string requiredoffers[]. fulfillmentObligation. condition The normalized condition assigned to the card.
Constraints: allowed values:
declared-or-betterExampledeclared-or-better
data.product Browseor null requiredProduct Meta Card metadata; null when no catalog row exists.
Show child fieldsHide child fields
data.integer requiredproduct. productId See Canonical catalog in Core concepts.
Example
86data.string or null requiredproduct. name Example
Abyssal Nightstalkerdata.string or null requiredproduct. set The product group or set name.
Example
Portal Second Agedata.string or null requiredproduct. rarity Derived from the extended_data
Rarityentry.Example
Udata.string or null requiredproduct. collectorNumber Derived from the extended_data
Numberentry.Example
nulldata.string or null requiredproduct. imageUrl The catalog product image.
Example
https://tcgplayer-cdn.tcgplayer.com/product/86_200w.jpgdata.product. details BrowserequiredProduct Detail[] Each
extended_dataentry as{ label, value, runs }.Show child fieldsHide child fields
data.string requiredproduct. details[]. label The entry's
displayName, or its machine name if no display name exists.Example
Raritydata.string requiredproduct. details[]. value Plain text with markup removed; each line break is a newline.
Example
Udata.product. details[]. runs BrowserequiredProduct Detail Run[] The value as text runs and line breaks, with
emphasismarking text the catalog emphasized.Show child fieldsHide child fields
data.string requiredproduct. details[]. runs[]. type Constraints: allowed values:
text,breakExampletextdata.string conditionalproduct. details[]. runs[]. text Required when
typeistext.Example
Udata.boolean conditionalproduct. details[]. runs[]. emphasis Required when
typeistext.Example
false