Etsy API endpoint
Searches Etsy shops by the required keyword `q`, returning up to `limit` shops (default 10). Each shop has its id, name, avatar, location, active listing count, open date and a vacation-mode flag.
/etsy/shop/searchQuery parameters:
q (required) — shop search keyword.limit (optional, default 10) — max shops to return.Response includes a shops array of {shop_id, shop_name, seller_avatar, location, active_listing_count, is_vacation, open_date}.
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| shop_id | 10 | |
| shop_name | 10 | “TheMajorHouse” and 9 other values |
| seller_avatar | 10 | i.etsystatic.com |
| location | 10 | “Kansas City, Missouri” and 9 other values |
| active_listing_count | 10 | 18 to 902, median 159 |
| open_date | 10 | 2008-02-11 to 2016-04-14 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Shop search keyword | ceramic | |
| limit | integer | No | Max shops to return (default 10) | 10 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/etsy/shop/search?q=ceramic&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "ceramic",
"shops": [
{
"shop_id": "87654321",
"shop_name": "gaguatelier",
"location": "Türkiye",
"active_listing_count": 55
}
]
}
}Request schema
No body schema
Response schema
#/definitions/etsy.shopSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | etsy.MobileShopSearchResponse | No | ||||
| data.query | string | No | ceramic | |||
| data.shops | array | No | ||||
| data.shops[].active_listing_count | integer | No | ||||
| data.shops[].is_vacation | boolean | No | ||||
| data.shops[].location | string | No | ||||
| data.shops[].open_date | integer | No | ||||
| data.shops[].seller_avatar | string | No | ||||
| data.shops[].shop_id | string | No | 12345678 | |||
| data.shops[].shop_name | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/etsy/shop/search?q=ceramic&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"