Apinoa Docs

Search

Shopify search — accepted parameters and what comes back.

View raw .mdx
GET|POST /v1/shopify/search

Price $0.001 per call. List price; the rate steps down above 1,000 calls a day.

ParameterTypeRequiredNotes
querystringyesKeywords to search for. Required: Shopify search always needs a keyword, which is also why Shopify has no keyword-less browse.
categoryIdstringNarrow to one category, by the marketplace's own id. Opaque and per-marketplace; take it from Product.category[].id or from a result's facets.
conditionenumItem condition: new or used. refurbished is refused by name rather than folded into used — the catalog sells new and secondhand, and those are different claims. new used
cursorstringOpaque; comes from the previous response and carries the page index. Shopify pages by cursor rather than by number — this is the only paging knob, and page is refused by name.
inStockboolean | enumOnly listings the marketplace reports as purchasable now.
priceMaxnumber ≥ 0Highest price to return, in decimal major units.
priceMinnumber ≥ 0Lowest price to return, in decimal major units.
ratingMinnumber 0–5Lowest average star rating to return, on the marketplace's own 0-5 scale.
regionstringBuyer country as ISO 3166-1 alpha-2; sets availability, shipping and price.
curl "https://gateway.apinoa.com/v1/shopify/search?query=wool+socks&priceMin=20&priceMax=60&ratingMin=4&inStock=true" \
  -H "x-api-key: YOUR_API_KEY"

Shopify pages by cursor, not by page. Take cursor from the previous response and pass it back; page is refused.

No pageSize — the catalog caps every response at 50 whatever you ask.

No sort. Shopify search offers no ordering at all. It is the one marketplace here without one.

No brands.

No currency on search — denomination follows region. product does take currency, because a storefront can be pinned to one.

condition=refurbished is refused rather than mapped onto used: the catalog sells new and secondhand, and those are different claims.