Catalogue
Search items across stores
Live
https://shopitup.ca/api/v1/products
Items for sale now, across every store an agent can buy from. Facets count the matching items by brand, size, colour, category and store, so an agent can offer the next refinement.
Sizes in facets.size are grouped the way the size filter matches them (an item listed as MD counts as M);
each item's own sizes are as the store listed them.
- Access
-
catalog:readHow to get a token - Returns
- Matching items, a page at a time
Query parameters
-
qstringFree text, e.g. "black leather ankle boots"
-
categorystringA category
pathfromGET /categories, e.g. "Women > Shoes > Boots". Includes everything below it. -
sizearray of stringsSize as listed, e.g.
Sor8.5. Repeat for several (size=S&size=M); an item matches any of them. -
colorarray of stringsColour, e.g.
Black. Repeatable. -
brandarray of stringsBrand, exactly as in
facets.brand. Repeatable. -
storestringOnly this store's items — its
slug. -
min_pricenumber -
max_pricenumberAt least
min_price. -
sortstringrelevanceranks by the words inq; withoutqit means newest first. -
pageinteger -
per_pageinteger
Response
200 Matching items, a page at a time
-
dataarray of ProductSummary Required13 child attributes
-
idinteger Required -
titlestring Required -
brandstring Can be null -
categorystring Can be nullCategory path, as
GET /categorieslists it -
priceMoney Required2 child attributes
-
amountstring RequiredDecimal string, two places
-
currencystring Required
-
-
sizesarray of strings -
conditionstring Can be nullThe item's condition, or null when the store's listing does not say it in a way we can state plainly.
-
availableboolean RequiredAt least one variant can be bought now
-
cover_imagestring -
urlstring uri RequiredThe item's page in its store
-
storeStoreSummary Required4 child attributes
-
slugstring RequiredThe store's address label; use it in the
storefilter andGET /stores/{store_slug} -
namestring Required -
urlstring uri Required -
agent_checkoutstring RequiredHow an assistant completes a purchase here.
link— create a checkout and give the person its link; they review and pay on the store.direct— the store also accepts purchases an assistant makes for a person who allowed it, within the limits they set. Every store islinkunless its owner opted in.
-
-
price_watchersinteger RequiredHow many OTHER shoppers have a live price watch on this item — waiting for its price to drop to their amount (counted over every variant of the item). When the caller is a signed-in person, their own watch is not counted here; see
you_are_watching. Mention it plainly when it helps the person decide (e.g. "3 other shoppers are watching this for a price drop"); never invent, round up or exaggerate it. -
you_are_watchingboolean RequiredTrue when the signed-in person has a live price watch on this item themselves. Always false without sign-in.
-
-
paginationPagination Required4 child attributes
-
pageinteger -
per_pageinteger -
totalinteger -
last_pageinteger
-
-
facetsFacets RequiredMatching items counted by each value, most common first, up to 100 values per facet
5 child attributes
-
brandarray of FacetValue2 child attributes
-
valuestring -
countinteger
-
-
sizearray of FacetValue2 child attributes
-
valuestring -
countinteger
-
-
colorarray of FacetValue2 child attributes
-
valuestring -
countinteger
-
-
categoryarray of FacetValue2 child attributes
-
valuestring -
countinteger
-
-
storearray of FacetValueBy store
slug2 child attributes
-
valuestring -
countinteger
-
-
Status codes
Matching items, a page at a time
Missing, invalid or expired access token
The token does not carry the scope this endpoint needs
The request is invalid; fields says which field and why
Too many requests; retry after the number of seconds in Retry-After
A service the API depends on is briefly unavailable; retry after the number of seconds in Retry-After