Skip to content
scrapeatlas.Dashboard

Get Etsy listing reviews

Try in Playground

Read one page of a listing's buyer reviews (eight per page) with its average rating, review count, count per star, summarised review tags and total pages. Sort by suggested, most recent, highest or lowest rating, or filter to one star rating.

GET/v1/etsy/listing/reviewsx-api-key
x-api-keystringrequiredheader

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

Query parameters
5
idstringquery

Optional.

Example100000000000001
urlstringquery

Optional.

max 2048 chars

pageintegerdefault: 1query

Requested page.

default: 1 · 1 – 250

sortenumdefault: "suggested"query

Applied order.

one of: suggested, most_recent, highest_rating, lowest_rating · default: "suggested"

ratingintegerquery

Average rating and number of reviews matching the request.

1 – 5

Response fields
50
requestIdstring

Request correlation UUID.

Upstream document reads (a DataDome device check adds one; the bare listing URL adds two canonical redirect hops), decoded bytes delivered to the parser and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable public data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Etsy's public review module.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

Complete means every supported field on this page was read; warnings name each omission or cap. It never implies the shop's or query's full catalogue.

coverage.sourceenum

Always included.

one of: public_page, public_api

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

Listing ID and canonical ID URL.

listing.idstring

Always included.

listing.urlstring

Always included.

absolute HTTPS URL

shopIdstring

Shop's numeric ID.

Average rating and number of reviews matching the request.

rating.averagenumbernullable

Always included.

rating.countintegernullable

Always included.

Reviews per star (1 to 5), or null.

ratingCounts.1integer

Always included.

≥ 0

ratingCounts.2integer

Always included.

≥ 0

ratingCounts.3integer

Always included.

≥ 0

ratingCounts.4integer

Always included.

≥ 0

ratingCounts.5integer

Always included.

≥ 0

Summarised review topics with mention counts.

up to 20 items

tags.namestring

Always included.

tags.countinteger

Always included.

≥ 0

sortenumoptional

Applied order.

one of: suggested, most_recent, highest_rating, lowest_rating · default: "suggested"

ratingFilterintegernullable

Applied star filter, or null.

pageinteger

Requested page.

≥ 1

totalPagesintegernullable

Total pages, or null.

nextPageintegernullable

Next page, or null.

Up to eight reviews: transaction ID, reviewer, printed date, rating, text, purchased listing, seller response and buyer photo.

up to 8 items

reviews.idstring

Always included.

Always included.

reviews.reviewer.namestring

Always included.

reviews.reviewer.urlstringnullable

Always included.

reviews.reviewer.avatarstringnullable

Always included.

reviews.datestringnullable

Always included.

reviews.ratingintegernullable

Always included.

reviews.textstring

Always included.

Always included.

reviews.listing.idstring

Always included.

reviews.listing.titlestring

Always included.

reviews.listing.urlstring

Always included.

absolute HTTPS URL

reviews.listing.imagestringnullable

Always included.

reviews.responsestringnullable

Always included.

reviews.photostringnullable

Always included.

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
13
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, ambiguous or unsupported parameters, unsupported URL forms, currencies or sorts.
401unauthorizedInvalid API key.
404not_foundUnknown shop, listing or reviews page.
429upstream_rate_limitedEtsy rate limited the request.
502upstream_challengedEtsy's DataDome check did not clear (status challenged).
502unsafe_redirectEtsy redirected outside the requested resource (for example a removed listing's error page).
502unsupported_pageLayout, identity or structured-data checks failed, or a non-HTML document was served.
502response_too_largeThe page exceeded 3 MiB.
502payload_too_complexThe page exceeded parsing limits.
502request_limitThe upstream document budget was exhausted.
502upstream_errorNetwork failure or an unexpected upstream status after one retry.
503busyBoth retrieval slots are occupied.
504timeoutThe 45-second deadline elapsed.