1stDibs API endpoint
Searches or browses 1stDibs handbags and purses with category, designer, price, sale, color, period, location, gender, origin, seller, and sort filters.
/1stdibs/searchSearches the public 1stDibs handbags and purses catalog. Requires x-api-key.
Query parameters include q, category, designer, color, period, location, gender, origin, price, price_min, price_max, on_sale, measurements, this_week, returnable, recognized_seller, top_seller, sort, page, and per_page. sort is one of recommended, newest, price-high, price-low, popular; price is one of all price, [* TO 999], [* TO 1999], [* TO 4999], [5000 TO *]; per_page is 60 or 120.
| Field | Filled in, of 60 checked | Values in the sample |
|---|---|---|
| id | 60 | |
| url | 60 | 1stdibs.com |
| name | 60 | “Gucci GG Supreme Medium Vanity Bag” and 57 other values |
| image_url | 60 | a.1stdibscdn.com |
| price | 60 | 247.35 to 4,800, median 1,350 |
| in_stock | 60 | true in 60 of 60 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Free-text search | ||
| category | string | No | Category slug from firstdibs-categories | ||
| designer | string | No | Designer slug from firstdibs-designers | ||
| color | string | No | Color value | ||
| period | string | No | Period value | ||
| location | string | No | Item location | ||
| gender | string | No | Gender value | ||
| origin | string | No | Place-of-origin value | ||
| price | string | No | Price preset Allowed values: all price, [* TO 999], [* TO 1999], [* TO 4999], [5000 TO *]. | ||
| price_min | number | No | Minimum price | ||
| price_max | number | No | Maximum price | ||
| on_sale | boolean | No | On-sale listings only | ||
| measurements | boolean | No | Listings with measurements | ||
| this_week | boolean | No | Listings added this week | ||
| returnable | boolean | No | Returnable items only | ||
| recognized_seller | boolean | No | Recognized seller listings only | ||
| top_seller | boolean | No | Top seller listings only | ||
| sort | string | No | Sort Allowed values: recommended, newest, price-high, price-low, popular. | ||
| page | integer | No | 1-based page Minimum: 1. | ||
| per_page | integer | No | Results per page Allowed values: 60, 120. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/1stdibs/search?q=coffee&price=all+price&on_sale=true&measurements=true&this_week=true&returnable=true&recognized_seller=true&top_seller=true&sort=recommended&page=1&per_page=60" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "gucci",
"page": 1,
"per_page": 60,
"count": 1,
"products": [
{
"id": "https://www.1stdibs.com/fashion/handbags-purses-bags/top-handle-bags/gucci-bag/id-v_123/",
"url": "https://www.1stdibs.com/fashion/handbags-purses-bags/top-handle-bags/gucci-bag/id-v_123/",
"name": "Gucci bag",
"brand": "Gucci",
"price": 1200,
"currency": "USD",
"in_stock": true
}
]
}
}Request schema
No body schema
Response schema
#/definitions/firstdibs.searchDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | firstdibs.SearchResponse | No | ||||
| data.category | string | No | ||||
| data.count | integer | No | ||||
| data.facets | firstdibs.Facets | No | ||||
| data.facets.categories | array | No | ||||
| data.facets.categories[].name | string | No | ||||
| data.facets.categories[].slug | string | No | ||||
| data.facets.categories[].url | string | No | ||||
| data.facets.designers | array | No | ||||
| data.facets.designers[].name | string | No | ||||
| data.facets.designers[].slug | string | No | ||||
| data.facets.designers[].url | string | No | ||||
| data.facets.price_presets | array | No | ||||
| data.facets.sorts | array | No | ||||
| data.page | integer | No | ||||
| data.per_page | integer | No | ||||
| data.products | array | No | ||||
| data.products[].brand | string | No | ||||
| data.products[].category | string | No | ||||
| data.products[].currency | string | No | ||||
| data.products[].description | string | No | ||||
| data.products[].id | string | No | ||||
| data.products[].image_url | string | No | ||||
| data.products[].in_stock | boolean | No | ||||
| data.products[].name | string | No | ||||
| data.products[].price | number | No | ||||
| data.products[].url | string | No | ||||
| data.query | string | No | ||||
| data.source_url | string | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/1stdibs/search?q=coffee&price=all+price&on_sale=true&measurements=true&this_week=true&returnable=true&recognized_seller=true&top_seller=true&sort=recommended&page=1&per_page=60" \
-H "x-api-key: $CRAWLORA_API_KEY"