API reference · Browse
Search products
/searchSearch products in the Canadian marketplace. This public, unauthenticated endpoint shows how your listings appear to buyers; Snapcaster implements it. Omit keyword for the full product grid, or supply it to search the analyzed product name. Each result includes the lowest price across offers and the number of distinct sellers. The response also includes category, set, rarity, and store facets. Use sellerCode for a native seller or storeSlug for a Shopify handoff store. These parameters are mutually exclusive and work with the other filters. An unknown or non-browsable store returns an empty result set. Follow nextCursor until it is null.
Snapcaster implements this buyer-facing operation. Use the reference to see how your listings appear to buyers.
Example
These examples send requests to the sandbox.
curl --request GET \
--url 'https://api-sandbox.snapcaster.ca/api/v1/marketplace/search'{
"success": true,
"data": {
"items": [
{
"productId": 0,
"name": "string",
"set": "string",
"category": "string",
"rarity": "string",
"collectorNumber": "string",
"imageUrl": "string",
"isSealed": true,
"fromPrice": 0,
"sellerCount": 0,
"listingCount": 0,
"disclosures": {
"imageSource": "catalog",
"conditionSource": "seller_declared",
"authenticitySource": "seller_attestation",
"snapcasterInspected": false,
"snapcasterGraded": false,
"snapcasterAuthenticated": false,
"gradingStandard": "snapcaster-magic-v1",
"declaredGrade": "string",
"buyerProtection": "magic-grade-and-authenticity"
},
"fulfillmentObligation": {
"sku": "exact",
"printing": "exact",
"language": "exact",
"finish": "exact",
"condition": "declared-or-better"
}
}
],
"facets": {
"category": [
{
"value": "string",
"count": 0
}
],
"set": [
{
"value": "string",
"count": 0
}
],
"rarity": [
{
"value": "string",
"count": 0
}
],
"seller": [
{
"sellerCode": "string",
"storeName": "string",
"count": 0
}
],
"condition": [
{
"value": "string",
"count": 0
}
],
"language": [
{
"value": "string",
"count": 0
}
],
"finish": [
{
"value": "string",
"count": 0
}
],
"collectorNumber": [
{
"value": "string",
"count": 0
}
]
},
"nextCursor": "string"
}
}Endpoint
| Environment | URL |
|---|---|
| Sandbox | https://api-sandbox.snapcaster.ca/api/v1/marketplace |
| Production | https://api.snapcaster.ca/api/v1/marketplace |
None.
Request
Query parameters
keywordstringFree-text terms used to search the catalog.
Constraints: maximum length: 255
categorystringThe trading-card game category.
Constraints: minimum length: 1; maximum length: 255
setstringThe card set or expansion.
Constraints: minimum length: 1; maximum length: 255
raritystringThe rarity assigned to the card printing.
Constraints: minimum length: 1; maximum length: 255
sellerCodestringConstraints: minimum length: 1; maximum length: 64
storeSlugstringConstraints: minimum length: 1; maximum length: 255
conditionarray of string or stringThe normalized condition assigned to the card.
Constraints: string: minimum length: 1; string: maximum length: 255; array of string: minimum items: 1
languagearray of string or stringThe language of the card printing.
Constraints: string: minimum length: 1; string: maximum length: 255; array of string: minimum items: 1
finisharray of string or stringThe physical finish or foil treatment of the card.
Constraints: string: minimum length: 1; string: maximum length: 255; array of string: minimum items: 1
collectorNumberarray of string or stringConstraints: string: minimum length: 1; string: maximum length: 255; array of string: minimum items: 1
checkoutModestringConstraints: allowed values:
express,manual,anysortstringThe ordering applied to the returned records.
Constraints: allowed values:
name_asc,name_desclimitintegerThe maximum number of records requested for this page.
Constraints: exclusive minimum: 0; maximum: 100
cursorstringThe opaque continuation token for the next page.
Constraints: minimum length: 1
Response
200
A page of the product grid.
Response body: Browse
successboolean requiredWhether the operation completed as requested.
Constraints: allowed values:
truedegradedbooleanPresent 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.items BrowserequiredProduct Summary[] The records included in this page or batch.
Show child fieldsHide child fields
data.integer requireditems[]. productId See Canonical catalog in Core concepts.
data.string or null requireditems[]. name data.string or null requireditems[]. set The card set or expansion.
data.string or null requireditems[]. category The trading-card game category.
data.string or null requireditems[]. rarity The rarity assigned to the card printing.
data.string or null requireditems[]. collectorNumber data.string or null requireditems[]. imageUrl data.boolean requireditems[]. isSealed data.number requireditems[]. fromPrice Minimum offer price across sellers, in dollars as a decimal amount.
data.integer requireditems[]. sellerCount Count of distinct sellers offering this product.
data.integer requireditems[]. listingCount Exact count of browsable offers for this product under the active filters: one per seller-or-store and SKU-or-variant.
data.items[]. disclosures Listingor null requiredDisclosures Provenance, grading, and authenticity statements shown to the buyer.
Show child fieldsHide child fields
data.string requireditems[]. disclosures. imageSource Constraints: allowed values:
catalogdata.string requireditems[]. disclosures. conditionSource Constraints: allowed values:
seller_declareddata.string requireditems[]. disclosures. authenticitySource Constraints: allowed values:
seller_attestationdata.boolean requireditems[]. disclosures. snapcasterInspected Constraints: allowed values:
falsedata.boolean requireditems[]. disclosures. snapcasterGraded Constraints: allowed values:
falsedata.boolean requireditems[]. disclosures. snapcasterAuthenticated Constraints: allowed values:
falsedata.string requireditems[]. disclosures. gradingStandard Constraints: allowed values:
snapcaster-magic-v1,seller-declared-no-specialist-promisedata.string or null requireditems[]. disclosures. declaredGrade data.string requireditems[]. disclosures. buyerProtection Constraints: allowed values:
magic-grade-and-authenticity,genuine-and-as-described
data.items[]. fulfillmentObligation Listingor null requiredFulfillment Obligation Show child fieldsHide child fields
data.string requireditems[]. fulfillmentObligation. sku The SKU that identifies the card variant.
Constraints: allowed values:
exactdata.string requireditems[]. fulfillmentObligation. printing The card printing the seller must supply.
Constraints: allowed values:
exactdata.string requireditems[]. fulfillmentObligation. language The language of the card printing.
Constraints: allowed values:
exactdata.string requireditems[]. fulfillmentObligation. finish The physical finish or foil treatment of the card.
Constraints: allowed values:
exactdata.string requireditems[]. fulfillmentObligation. condition The normalized condition assigned to the card.
Constraints: allowed values:
declared-or-better
data.facets BrowserequiredFacets Available filter values and their result counts.
Show child fieldsHide child fields
data.facets. category BrowserequiredFacet Value[] The trading-card game category.
Show child fieldsHide child fields
data.string requiredfacets. category[]. value data.integer requiredfacets. category[]. count Number of products carrying this value under the current query.
data.facets. set BrowserequiredFacet Value[] The card set or expansion.
Show child fieldsHide child fields
data.string requiredfacets. set[]. value data.integer requiredfacets. set[]. count Number of products carrying this value under the current query.
data.facets. rarity BrowserequiredFacet Value[] The rarity assigned to the card printing.
Show child fieldsHide child fields
data.string requiredfacets. rarity[]. value data.integer requiredfacets. rarity[]. count Number of products carrying this value under the current query.
data.facets. seller BrowserequiredSeller Facet Value[] One entry per seller with browsable listings matching the query. Each entry includes
sellerCodefor filtering and the store name for display, plus its count. Includes bothexpressandmanualstores. Other facets use{ value, count }.Show child fieldsHide child fields
data.string requiredfacets. seller[]. sellerCode The store's public handle. Pass it as the
sellerCodequery parameter to filter results to this store.data.string requiredfacets. seller[]. storeName The store's display name. Use
sellerCodeas its identifier.data.integer requiredfacets. seller[]. count Number of the store’s listings under the current query.
data.array of objectfacets. handoffStore Eligible Shopify handoff stores with matching offers. New responses always include this array, including when empty; optional for compatibility with older responses.
Show child fieldsHide child fields
data.string requiredfacets. handoffStore[]. storeSlug The Shopify handoff store identity. Pass it as storeSlug, mutually exclusive with sellerCode.
data.string requiredfacets. handoffStore[]. storeName data.integer requiredfacets. handoffStore[]. count Matching offer-document count for this store, independent of pagination.
data.facets. condition BrowserequiredFacet Value[] The normalized condition assigned to the card.
Show child fieldsHide child fields
data.string requiredfacets. condition[]. value data.integer requiredfacets. condition[]. count Number of products carrying this value under the current query.
data.facets. language BrowserequiredFacet Value[] The language of the card printing.
Show child fieldsHide child fields
data.string requiredfacets. language[]. value data.integer requiredfacets. language[]. count Number of products carrying this value under the current query.
data.facets. finish BrowserequiredFacet Value[] The physical finish or foil treatment of the card.
Show child fieldsHide child fields
data.string requiredfacets. finish[]. value data.integer requiredfacets. finish[]. count Number of products carrying this value under the current query.
data.facets. collectorNumber BrowserequiredFacet Value[] Show child fieldsHide child fields
data.string requiredfacets. collectorNumber[]. value data.integer requiredfacets. collectorNumber[]. count Number of products carrying this value under the current query.
data.string or null requirednextCursor Opaque keyset cursor for the next page; null on the last page.
Errors
Errors return a Marketplace body, except HTTP 500 (Api). Error codes explains both error bodies and lists every code.
400
INVALID_REQUESTThe request failed validation (
INVALID_REQUEST).Do this: Correct the fields named in the error details, then retry the request.
500
INTERNAL_ERRORAn unexpected failure (
INTERNAL_ERROR).Do this: Retry with bounded retries and jitter. If the failure persists, contact Snapcaster with the X-Correlation-ID response header.