Depop API endpoint
Returns a Depop seller's public shop: profile (rating, sold count, followers, bio) plus current listings, with optional price, condition, colour, category, subcategory, gender, discount, and sort filters. Public data sourced from Depop's own shop pages.
/depop/shop/{username}Path parameters:
username (required) — the seller's URL slug, e.g. villafanashop from
depop.com/villafanashop/.Query parameters:
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, recently_listed.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.sizes (optional) — comma-separated Depop size composite ids, format
{size_set_id}.{id} (e.g. 54.4). 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.Notable response behavior:
items is a lighter
shape than /depop/search's: no brand, condition, colour, description,
or size, since the shop page doesn't render those per card. id is the
item's URL slug, same identifier space as /depop/search's id and
/depop/item/{slug}'s slug — chain any item into /depop/item/{slug}
for full detail.followers_count and following_count are approximate once Depop
abbreviates them in the UI (e.g. "2.35K" → 2350) — Depop doesn't render
the exact count past a certain size.currency is always "USD" — inferred from the $ symbol the page
renders, not read from an explicit field (unlike /depop/search and
/depop/item/{slug}, which get an explicit currency code from Depop's
own JSON).200 with "items": [].username returns 400 before any upstream
request is made. An unrecognized condition, colours, sort,
category, or gender value, a malformed subcategory or sizes
entry, or price_min greater than price_max, also returns 400.404.| Field | In the sample | Value in the sample |
|---|---|---|
| username | Has a value | |
| display_name | Has a value | |
| bio | Has a value | |
| verified | Has a value | true |
| rating | Has a value | 5 |
| rating_count | Has a value | 397 |
| sold_count | Has a value | 2,226 |
| followers_count | Has a value | 644 |
| following_count | Has a value | 3 |
| activity_status | Has a value | “Active this week” |
| items | Empty |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| username (path) | string | Yes | Depop seller username, e.g. from a shop page URL segment | villafanashop | |
| 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, recently_listed | 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 | |
| gender | string | No | Department filter: female, male | male | |
| sizes | string | No | Comma-separated Depop size composite ids (format {size_set_id}.{id}, e.g. \ | 54.4 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/depop/shop/villafanashop?on_sale=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"username": "villafanashop",
"display_name": "Julian A Villafana",
"bio": "Welcome to my shop! I specialize in cute and trendy graphic tees. Fast shipping, friendly service, and quality guaranteed. Tysm",
"avatar_url": "https://media-photos.depop.com/b1/415677839/3527467429_405c6ee819bc4c9d89713521974688b9/U1.jpg",
"verified": true,
"rating": 4.7,
"rating_count": 1445,
"sold_count": 8810,
"followers_count": 2350,
"following_count": 12,
"activity_status": "Active today",
"items": [
{
"id": "vill7fanashop-supreme-tiger-graphic-t-shirt-black-00e8",
"url": "https://www.depop.com/products/vill7fanashop-supreme-tiger-graphic-t-shirt-black-00e8/",
"thumbnail_url": "https://media-photos.depop.com/b1/415677839/4067598019_5faee8ecbec942739452db1dfdc5563a/P8.jpg",
"price_cents": 1686,
"original_price_cents": 2286,
"currency": "USD"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/depop.shopResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | depop.ShopResponse | No | ||||
| data.activity_status | string | No | ||||
| data.avatar_url | string | No | ||||
| data.bio | string | No | ||||
| data.display_name | string | No | ||||
| data.followers_count | integer | No | ||||
| data.following_count | integer | No | ||||
| data.items | array | No | ||||
| data.items[].currency | string | No | ||||
| data.items[].id | string | No | URL slug, same identifier space as ItemSummary.ID | |||
| data.items[].original_price_cents | integer | No | ||||
| data.items[].price_cents | integer | No | ||||
| data.items[].thumbnail_url | string | No | ||||
| data.items[].url | string | No | ||||
| data.rating | number | No | ||||
| data.rating_count | integer | No | ||||
| data.sold_count | integer | No | ||||
| data.username | string | No | ||||
| data.verified | boolean | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/shop/villafanashop?on_sale=true" \
-H "x-api-key: $CRAWLORA_API_KEY"