Depop API endpoint
Searches Depop's resale-fashion marketplace by free-text keyword, with optional price, condition, colour, category, subcategory, gender, kids-department, brand, discount, and sort filters, returning listing summaries (title, price, brand, condition, like count, photos, sizes), a pagination cursor, and the total matching count.
/depop/searchQuery parameters:
query (required) — free-text keyword search.price_min (optional) — minimum listing price in USD.price_max (optional) — maximum listing price in USD. Must not be less
than price_min when both are set.condition (optional) — comma-separated condition filter. Allowed
values: brand_new, used_like_new, used_excellent, used_good,
used_fair.colours (optional) — comma-separated colour filter. Allowed values:
black, grey, white, brown, tan, cream, yellow, red,
burgundy, orange, pink, purple, blue, navy, green, khaki,
multi, silver, gold.on_sale (optional) — true to restrict results to discounted listings.sort (optional) — sort order. Allowed values: relevance (default when
omitted), price_low_to_high, price_high_to_low.category (optional) — a Depop category slug. Allowed values: tops,
bottoms, dresses, coats-jackets, jumpsuit-and-playsuit, suits,
footwear, accessories, nightwear, underwear, swim-beach-wear,
fancy-dress, sleepsuits-and-bodysuits, bundles, beauty,
face-masks, home, tech-accessories, film, art,
books-and-magazine, music, party-supplies,
sports-equipment-accesories, toys, umbrella. See
GET /depop/categories for a machine-readable
enumeration with names and subcategories.subcategory (optional) — comma-separated Depop subcategory slug(s)
(e.g. tshirts, hoodies), scoped within category. See
GET /depop/categories for the full enumerated
list per category. Not independently validated against category here
— an unrecognized or mismatched slug returns zero results rather than an
error.gender (optional) — department filter. Allowed values: female,
male.is_kids (optional) — true restricts results to kids-department items
only, false excludes them, omitted (the default) returns both.
Independent of category/gender.brand_ids (optional) — comma-separated Depop internal numeric brand
ids (e.g. 219 for Brandy Melville). Not documented by Depop and not a
closed enum this endpoint can validate — find a brand's id by browsing
its depop.com/brands/<slug>/ page and inspecting a listing's embedded
brand id.sizes (optional) — comma-separated Depop size composite ids, format
{size_set_id}.{id} (e.g. 4.17). Not a closed enum this endpoint can
validate — only format-checked. See
GET /depop/sizes for the full multi-region taxonomy
each id resolves to.after (optional) — an opaque pagination cursor from a previous
response's next_cursor field. Omit for the first page.Notable response behavior:
id is the item's URL slug (e.g.
ag_boutique-vintage-mid-rise-bootcut-levi-2476), not a numeric database
id — pass it directly as the slug path parameter to /depop/item/{slug}
for full item detail.price_cents and shipping_cents are omitted (zero) when Depop's own
response doesn't include a parseable amount for that listing.like_count is the listing's like count, requested by default on every
search (0 is omitted from the response, same as other zero-valued
optional fields).has_more and next_cursor reflect Depop's own pagination state — when
has_more is true, pass next_cursor as the following request's
after value to fetch the next page. next_cursor is an opaque string;
don't parse it.200 with "items": [].query returns 400 before any upstream request is made.condition, colours, sort, category, or gender
value, a malformed subcategory, brand_ids, or sizes entry, or
price_min greater than price_max returns 400 before any upstream
request is made.| Field | Filled in, of 24 checked | Values in the sample |
|---|---|---|
| id | 24 | |
| url | 24 | depop.com |
| title | 24 | “Vintage Nike Jacket XL Black Swoosh Puffer Windbreaker 90s…” and 23 other values |
| description | 24 | “Vintage Nike Jacket XL Black Swoosh Puffer Windbreaker 90s…” and 23 other values |
| brand_name | 24 | Nike in all 24 |
| condition | 24 | used_excellent (9), brand_new (7), used_good (5) and 1 more |
| colours | 23 | median 2 entries |
| price_cents | 24 | 600 to 6,000, median 2,500 |
| currency | 24 | USD in all 24 |
| shipping_cents | 24 | 199 to 599, median 199 |
| thumbnail_url | 24 | media-photos.depop.com |
| photos | 24 | median 3 entries |
| sizes | 24 | median 1 entry |
| location | 24 | “Los Angeles, United States” and 23 other values |
| like_count | 12 | 1 to 12, median 3 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | Yes | Free-text keyword search | nike jacket | |
| price_min | number | No | Minimum listing price in USD | 15 | |
| price_max | number | No | Maximum listing price in USD | 50 | |
| condition | string | No | Comma-separated condition filter: brand_new, used_like_new, used_excellent, used_good, used_fair | used_excellent,used_good | |
| colours | string | No | Comma-separated colour filter: black, grey, white, brown, tan, cream, yellow, red, burgundy, orange, pink, purple, blue, navy, green, khaki, multi | black,white | |
| on_sale | boolean | No | Restrict results to discounted listings | ||
| sort | string | No | Sort order: relevance, price_low_to_high, price_high_to_low | price_low_to_high | |
| category | string | No | Depop category slug: tops, bottoms, dresses, coats-jackets, jumpsuit-and-playsuit, suits, footwear, accessories, nightwear, underwear, swim-beach-wear, fancy-dress, sleepsuits-and-bodysuits, bundles, beauty, face-masks, home, tech-accessories, film, art, books-and-magazine, music, party-supplies, sports-equipment-accesories, toys, umbrella. See GET /depop/categories for a machine-readable enumeration with names and subcategories. | tops | |
| subcategory | string | No | Comma-separated Depop subcategory slug(s), scoped within category. See GET /depop/categories for the full list per category. | tshirts,hoodies | |
| gender | string | No | Department filter: female, male | female | |
| is_kids | boolean | No | Kids-department filter: true restricts results to kids items only, false excludes them, omitted returns both. | ||
| brand_ids | string | No | Comma-separated Depop internal numeric brand ids. Not documented by Depop -- find a brand's id by browsing its depop.com/brands/<slug>/ page. | 219 | |
| sizes | string | No | Comma-separated Depop size composite ids (format {size_set_id}.{id}, e.g. \ | 4.17 | |
| after | string | No | Opaque pagination cursor from a previous response's next_cursor field. Omit for the first page. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/depop/search?query=nike+jacket&on_sale=true&is_kids=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "nike jacket",
"total_results": 90627,
"has_more": true,
"next_cursor": "MnwyNHwxNzg1OTUzNjM1.BOOSTED_EXHAUSTED.0",
"items": [
{
"id": "harsisonmn-nike-virginia-tech-track-and-27fc",
"url": "https://www.depop.com/products/harsisonmn-nike-virginia-tech-track-and-27fc/",
"title": "Nike College Track and Field black windbreaker jacket #trackandfield",
"description": "Nike College Track and Field black windbreaker jacket #trackandfield\n\nNike womens medium jacket, #trackandfield\n#nike #jacket",
"brand_name": "Nike",
"condition": "used_excellent",
"colours": [
"black"
],
"price_cents": 800,
"currency": "USD",
"shipping_cents": 199,
"thumbnail_url": "https://media-photos.depop.com/r1/329377772/4357366076_0948c314910046e9946f466fc1d87e70/P0.jpg",
"photos": [
"https://media-photos.depop.com/r1/329377772/4357366076_0948c314910046e9946f466fc1d87e70/P0.jpg"
],
"sizes": [
"M"
],
"location": "Charlotte, United States",
"like_count": 3
}
]
}
}Request schema
No body schema
Response schema
#/definitions/depop.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | depop.SearchResponse | No | ||||
| data.has_more | boolean | No | HasMore indicates additional results exist beyond this page. When true, NextCursor can be passed as the next request's After field. | |||
| data.items | array | No | ItemSummary record, 15 fields: brand_name, colours, condition, currency, description, id, like_count, location, photos, price_cents, shipping_cents, sizes and 3 more. Described under Depop item API. | |||
| data.next_cursor | string | No | ||||
| data.query | string | No | ||||
| data.total_results | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/depop/search?query=nike+jacket&on_sale=true&is_kids=true" \
-H "x-api-key: $CRAWLORA_API_KEY"