Skip to content
scrapeatlas.Dashboard

Get an Etsy shop profile

Try in Playground

Read a public Etsy shop home page: identity, headline, location, images, sales and admirer counts, star seller status, aggregate rating, item sections with counts, the announcement, latest activity, shop members, FAQ, policy date and the featured listing cards.

GET/v1/etsy/shopx-api-key
x-api-keystringrequiredheader

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

Query parameters
3
handlestringquery

Etsy shop name as it appears in etsy.com/shop/{handle} (letters and digits); provide either handle or url.

ExampleExampleCraftShop
urlstringquery

Full shop URL: https://www.etsy.com/shop/{handle}, a regional prefix such as /uk/shop/{handle}, or https://{handle}.etsy.com.

max 2048 chars

currencyenumdefault: "USD"query

Display currency pinned through Etsy's own locale override (default USD). One of the 30 currencies Etsy offers; language and region stay en-US / US.

one of: AUD, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, JPY, MAD, MXN, MYR, NOK, NZD, PHP, PLN, SEK, SGD, THB, TRY, TWD, USD, VND, ZAR · default: "USD"

Response fields
68
requestIdstring

Request correlation UUID.

Upstream document reads (a DataDome device check adds one read), 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

Canonical public Etsy URL the response describes, without locale or tracking parameters.

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.

Always included.

shop.namestring

Always included.

min 1 chars

shop.idstringnullable

Always included.

shop.urlstring

Always included.

absolute HTTPS URL

shop.headlinestringnullable

Always included.

shop.locationstringnullable

Always included.

shop.logostringnullable

Always included.

shop.bannerstringnullable

Always included.

shop.salesintegernullable

Always included.

shop.admirersintegernullable

Always included.

shop.onEtsySinceintegernullable

Always included.

Aggregate shop rating average and review count from the page's structured data.

shop.rating.averagenumbernullable

Always included.

shop.rating.countintegernullable

Always included.

shop.isStarSellerboolean

Whether Etsy's Star Seller badge is rendered.

shop.listingCountintegernullable

Active item count from the shop search box ("Search all N items").

Shop sections (id, name, count) excluding the "All" tab; ids can be passed as section_id to shop/listings.

shop.sections.idstring

Always included.

shop.sections.namestring

Always included.

shop.sections.countintegernullable

Always included.

Announcement text with line breaks and its last-updated date, or null.

shop.announcement.textstring

Always included.

shop.announcement.updatedAtstringnullable

Always included.

Seller's latest activity type and ISO timestamp, or null.

shop.latestActivity.typestring

Always included.

shop.latestActivity.datestring

Always included.

shop.ownerUserIdstringnullable

Numeric user ID behind the contact-shop-owner action.

Shop members with id, name, role, bio and avatar as published.

shop.members.idstringnullable

Always included.

shop.members.namestring

Always included.

shop.members.rolestringnullable

Always included.

shop.members.biostringnullable

Always included.

shop.members.avatarstringnullable

Always included.

Frequently asked questions and answers from the page's structured data.

shop.faq.questionstring

Always included.

shop.faq.answerstring

Always included.

shop.policiesUpdatedAtstringnullable

Date the shop policies were last updated, or null.

Listing cards the shop pins above its item grid (same shape as shop/listings items).

shop.featuredListings.idstring

Always included.

shop.featuredListings.urlstring

Always included.

absolute HTTPS URL

shop.featuredListings.titlestring

Always included.

shop.featuredListings.sellerstringnullable

Always included.

shop.featuredListings.shopIdstringnullable

Always included.

Always included.

shop.featuredListings.price.currentnumbernullable

Always included.

shop.featuredListings.price.originalnumbernullable

Always included.

shop.featuredListings.price.currencystring

Always included.

shop.featuredListings.discountPercentintegernullable

Always included.

shop.featuredListings.image_urlsstring[]

Always included.

Always included.

shop.featuredListings.rating.averagenumbernullable

Always included.

shop.featuredListings.rating.countintegernullable

Always included.

shop.featuredListings.freeShippingboolean

Always included.

shop.featuredListings.isBestsellerboolean

Always included.

shop.featuredListings.isAdboolean

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.