Skip to content
scrapeatlas.Dashboard

Get Amazon best sellers in a category

Try in Playground

Read an Amazon best-seller list with product rankings, identifiers, titles, prices and URLs.

GET/v1/amazon/best-sellersx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
5
categorystringrequiredquery

Category slug from the Best Sellers URL, e.g. electronics or books.

Exampleelectronics
countryenumdefault: "US"query

Marketplace as ISO 3166-1 alpha-2: US (default), GB, CA, DE, FR, IT, ES, JP, IN, MX, BR, AU or NL. Prices come in that marketplace's currency and numbers are parsed with its locale.

one of: US, GB, CA, DE, FR, IT, ES, JP, IN, MX, BR, AU, NL · default: "US"

typeenumdefault: "BEST_SELLERS"query

BEST_SELLERS (default), NEW_RELEASES, MOVERS_AND_SHAKERS, MOST_WISHED_FOR or GIFT_IDEAS.

one of: BEST_SELLERS, NEW_RELEASES, MOVERS_AND_SHAKERS, MOST_WISHED_FOR, GIFT_IDEAS · default: "BEST_SELLERS"

pagestringdefault: "1"query

1-based page number (default 1).

default: "1"

cursorstringquery

pagination.next_cursor from the previous response; overrides page.

Response fields
46
requestIdstring

Random operational correlation ID.

Upstream attempts, decoded HTML bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable public data was retrieved.

statusenum

success, partial, failed or challenged. Inspect coverage even for HTTP 200.

one of: success, partial

sourceUrlstring

Public www.amazon.com URL that was read.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

Complete means this bounded page had no known omissions; warnings name each omission.

coverage.sourcestring

Always public_page.

coverage.completeboolean

False when any warning is present.

coverage.warningsstring[]

Machine-readable omission codes such as lazy_loaded_ranks_omitted or record_limit.

Ranked products in rank order, 50 per page.

up to 100 items

Canonical product object.

items.product.idstring

Amazon ASIN.

items.product.urlstring

Canonical https://www.amazon.com/dp/{asin} URL.

absolute HTTPS URL

items.product.titlestringnullable

Product title without the differentiator line.

items.product.descriptionstringnullable

Feature bullets joined by line breaks; null on list pages.

items.product.sellerstringnullable

Buy-box merchant name when the product page shows one; null on list pages.

items.product.brandstringnullable

Brand from the byline ("Visit the X Store" / "Brand: X"); null on list pages.

Current and original (list/typical) price with ISO currency; unknown parts are null.

items.product.price.currentnumbernullable

Price to pay as a number.

items.product.price.originalnumbernullable

Struck-through list or typical price when shown.

items.product.price.currencystringnullable

The marketplace currency (USD for the US marketplace), null without a price.

Aggregate star rating and rating count.

items.product.rating.averagenumbernullable

Stars out of 5.

items.product.rating.countintegernullable

Number of ratings.

items.product.image_urlsstring | string[]nullable

Array of full-size gallery URLs on the product page; a single largest image URL on list pages.

items.product.availabilitystringnullable

Availability text from the product page, otherwise null.

items.product.reviews_countintegernullable

Always null; Amazon exposes rating counts, not review counts, on public pages.

Optional.

up to 200 items

items.product.specifications.groupstringnullable

Always included.

items.product.specifications.namestringnullable

Always included.

items.product.specifications.valuestringnullable

Always included.

Optional.

up to 200 items

items.product.variations.idstring

Always included.

items.product.variations.titlestringnullable

Always included.

items.product.variations.urlstring

Always included.

absolute HTTPS URL

items.product.variations.categorystringnullable

Always included.

totalintegernullable

Total matching count when the page states one; otherwise null.

droppedinteger

Cards that could not be parsed into a record.

≥ 0

Cursor state for this page.

pagination.next_cursorstringnullable

Page number to send back as cursor, or null on the last page.

pagination.has_moreboolean

Whether another page exists.

pagination.page_sizeinteger

Number of items in this page.

≥ 0

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
9
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, unsupported or invalid parameters.
401unauthorizedMissing or invalid service key.
404not_foundStorefront, product, category or seller page not found.
429upstream_rate_limitedAmazon rate limited the request; no automatic retry.
502upstream_challengedRobot check, sign-in wall or HTTP 503 from Amazon.
502unsupported_page unsafe_redirect response_too_large payload_too_complex request_limit upstream_errorBounded retrieval failed or the page did not match the requested entity.
503busyAll worker slots occupied.
504timeoutDeadline exceeded.
200partialCoverage warnings such as lazy_loaded_ranks_omitted or record_limit.