# Etsy Shop API Documentation

Scrappa's `GET /api/etsy/shop` returns the public profile of one Etsy shop and a page of its listings as structured JSON.

## Input

`shop` is the shop name as in the shop link, for example `PremiumEngrave`. `name` in the answer is the spelling Etsy uses. An unknown name answers `404`.

## What you get

`data` has `name`, `url`, `shop_id`, `location`, `star_seller`, `sales_count`, `admirers_count`, `rating`, `review_count`, `on_etsy_for`, `latest_activity`, `description`, `slogan`, `owner`, `logo`, `banner`, `listing_count` and `currency`. `listings` has one page of the shop items in the same shape as the search results (without ads).

## Pagination

`page` is 1-100 and the label always equals the page Etsy served. `pagination.has_more` tells you whether a next page exists. A page after the last page answers `503` and costs nothing.

## Credits

A successful request costs **10 credits**. Etsy needs a full browser for every page, so it costs more than a plain request. Errors, blocks and `404` answers cost nothing. The response shows the charge in `meta.credits_charged`.

- **Documentation:** [https://scrappa.co/docs/etsy-api/etsy_shop](https://scrappa.co/docs/etsy-api/etsy_shop)
- **API group:** Etsy API
- **Endpoint:** `GET https://scrappa.co/api/etsy/shop`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `shop` | string | Yes | Shop name as in the shop link. |
| `page` | integer | No | Page of the shop listings, 1-100. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/etsy/shop?shop=PremiumEngrave"
```

## Example response

```json
{
    "success": true,
    "data": {
        "name": "PremiumEngrave",
        "url": "https://www.etsy.com/shop/PremiumEngrave",
        "shop_id": "35016605",
        "location": "Minneapolis, Minnesota",
        "star_seller": true,
        "sales_count": 41625,
        "admirers_count": 3430,
        "rating": 4.9,
        "review_count": 12467,
        "on_etsy_for": "4 years",
        "latest_activity": "2026-11-02",
        "description": "Shop unique one-of-a-kind premium gifts.",
        "slogan": "Unique One-Of-A-Kind Premium Gifts",
        "owner": "Erik",
        "logo": "https://i.etsystatic.com/35016605/r/isla/14595d/77586647/isla_500x500.77586647_alxu1nyl.jpg",
        "banner": null,
        "listing_count": 149,
        "currency": "USD"
    },
    "listings": [
        {
            "listing_id": "1241528786",
            "title": "Personalized Leather RFID Wallet, Engraved Genuine Leather Custom Wallet",
            "url": "https://www.etsy.com/listing/1241528786/personalized-leather-rfid-wallet",
            "image": "https://i.etsystatic.com/35016605/r/il/a5f633/4007318605/il_255x319.4007318605_mj36.jpg",
            "image_large": "https://i.etsystatic.com/35016605/r/il/a5f633/4007318605/il_794xN.4007318605_mj36.jpg",
            "price": 28,
            "original_price": 70,
            "discount_percent": 60,
            "currency": "USD",
            "from_price": false,
            "rating": 4.9,
            "review_count": 12500,
            "review_count_is_rounded": true,
            "shop_id": "35016605",
            "shop_name": "PremiumEngrave",
            "shop_url": "https://www.etsy.com/shop/PremiumEngrave",
            "bestseller": true,
            "popular_now": true,
            "etsys_pick": false,
            "star_seller": true,
            "free_shipping": true
        }
    ],
    "pagination": {
        "page": 1,
        "has_more": true
    },
    "meta": {
        "endpoint_family": "etsy-shop",
        "billable": true,
        "attempts": 1,
        "credits_charged": 10
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 404 | Not Found | Etsy has no shop with that name or id (`not_found`). A removed listing also answers 404. Non-billable. |
| 422 | Validation Error | A query parameter is missing, unknown or unusable. Unknown parameters are rejected, never ignored. Non-billable. |
| 503 | Upstream Unavailable | Etsy could not be reached in time or answered with a block or an unexpected page (`upstream_unavailable`, `upstream_blocked`, `parser_drift`). Retryable and never billed. Clients are never rate limited. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
