Apinoa Docs

Browse

List the products in one Amazon category, with no keyword.

View raw .mdx
GET | POST /v1/amazon/browse

Send parameters as a query string with GET, or as a JSON body with POST. Both are equivalent.

Request

curl "https://gateway.apinoa.com/v1/amazon/browse?categoryId=679416011&priceMax=50&sort=price_asc" \
  -H "x-api-key: $APINOA_API_KEY"

Parameters

ParameterTypeRequiredNotes
categoryIdstringyesREQUIRED. An Amazon browse NODE — the digits from a category URL, e.g. 172541. The department slugs categories returns at its root (electronics) are NOT browse nodes and are refused with CATEGORY_NOT_BROWSABLE: call categories with the slug to get its child nodes and browse one of those.
brandsstring listBrand names as Amazon spells them, e.g. brands=Nike,Adidas. A call that uses brands costs 2 units instead of 1. Not available on amazon.fr (region=FR).
facetsstring | object listNarrowings taken from a result's facets, e.g. facets=Color:Black. A call that uses facets costs 2 units instead of 1. Not available on amazon.fr (region=FR).
pageinteger1-based page number; each page is charged separately. There is no pageSize (Amazon fixes the count per page, 13-47 in practice) and no cursor — paging is by number.
priceMaxnumber ≥ 0Highest price to return, in decimal major units.
priceMinnumber ≥ 0Lowest price to return, in decimal major units.
ratingMinnumber4 only. Amazon's rating filter offers exactly one threshold, "4 Stars & Up"; any other value is a 400 rather than a silently different search. Not available on amazon.fr (region=FR).
regionenumWhich Amazon marketplace to query, by buyer country: US, CA, MX, BR, FR, IT, ES, NL, SE, TR, AE, SA, IN, JP, SG, AU. Defaults to US. Prices come back in that marketplace's own currency (JP in JPY, FR in EUR). US CA MX BR FR IT ES NL SE TR AE SA IN JP SG AU
sortenumResult ordering: best_match, price_asc, price_desc, newly_listed or avg_review. Defaults to best_match, Amazon's own relevance ordering. best_match price_asc price_desc newly_listed avg_review

The same parameters, and every response type, are in the OpenAPI document.

Response

Returns SearchResult in data. A real response, shortened: arrays keep their first entries and long text is cut.

{
  "success": true,
  "data": {
    "marketplace": "amazon",
    "page": {
      "index": 1,
      "size": 0
    },
    "items": [],
    "facets": []
  }
}

Errors

StatusCodeMeaning
400CATEGORY_NOT_BROWSABLEThe category is a navigation level with no products. Browse one of its children from categories.
400INVALID_PARAMSA parameter is missing, unknown or out of range. The message names it.
401UNAUTHORIZEDThe x-api-key header is missing, or the key is revoked or unknown.
402INSUFFICIENT_BALANCEThe balance does not cover this call. Top up in the dashboard.
429MARKETPLACE_SATURATEDToo many concurrent calls. Retry after the Retry-After seconds.
502UPSTREAM_ERRORThe platform answered with something unusable. Retry with backoff.

Every code is listed in Errors. Failed calls are not billed.

Pricing

Price $0.001 per call, plus $0.001 for each extra call it makes — at most 1 more, so $0.002 in total. Only brands and rail facets add one: either makes the call 2 units. Every other filter costs nothing extra. List price; the rate steps down above 1,000 calls a day.

Notes

  • Same filters as search, minus the keyword. A query is a 400, not silently dropped. Use Search when you have words.
  • categoryId is a browse node (679416011). Get one from Categories; every node below department level lists products.
  • The response has no query key and otherwise looks exactly like a search response.

On this page