Secondhand-fashion pricing and resale research
Mit Depop-Endpunkten verwandelst du secondhand-fashion pricing and resale research in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Turn public Depop pages into structured resale-fashion data — keyword and filtered listing search, full item detail with photos and seller info, a seller's shop catalog, and the category taxonomy, all as normalized JSON. Credential-free.
Search Depop listings and get item detail, seller shops, and the category taxonomy as structured JSON.
Endpunkt-Familien
6
Dokumentierte Parameter
42
Beispiele
10
Live-Katalog-Snapshot
Aktive Endpunkte
10
Methoden
GET
Pflichtparameter
17
Schema-Referenzen
10
{
"platform": "Depop",
"endpoint": "depop-search",
"method": "GET",
"path": "/depop/search",
"auth": "apiKey"
}Use Cases
Search Depop listings and get item detail, seller shops, and the category taxonomy as structured JSON.
Mit Depop-Endpunkten verwandelst du secondhand-fashion pricing and resale research in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Mit Depop-Endpunkten verwandelst du seller and shop monitoring in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Mit Depop-Endpunkten verwandelst du category and trend tracking in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Managed Execution
Jede Zahl unten stammt direkt aus dem Live-Depop-Endpunktkatalog — 10 Endpunkte, 42 dokumentierte Request-Parameter und 10 veröffentlichte Response-Schemas — demselben Katalog, gegen den auch Docs und Playground laufen.
10 documented Depop endpoints, grouped into 8 request families — Item, Search and Brands, plus 5 more.
42 request parameters are documented across those Depop endpoints, 17 of them required — the full input contract is public before you write any integration code.
10 of the 10 Depop endpoints ship a recorded example response, and 10 carry a documented response schema — you can code against the real JSON before the first request.
Depop endpoints document their error responses (400, 404, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
10 hosted MCP tools back the Depop endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Abdeckungskarte
Diese Karten werden aus dem aktiven Endpunktkatalog generiert, damit die Landingpage dieselbe API-Oberfläche widerspiegelt, die auch Docs und Playground nutzen.
/depop/item/{slug}
/depop/search
/depop/brands
/depop/categories
/depop/search-sellers
/depop/shop/{username}
Endpunktkatalog
/depop/searchSearches 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 normalized listing summaries (title, price, brand, condition, like count, photos, sizes), a pagination cursor, and the total matching count. Public data sourced from Depop's own search API.
Hinweise zur Response
- `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. - A search with no matching listings returns `200` with `"items": []`. - A missing `query` returns `400` before any upstream request is made. - An unrecognized `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. Example response: ```json { "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 } ] } } ```
MCP-Tool depop_search
/depop/item/{slug}Returns a normalized Depop item-detail page: description, all photos, price, condition, brand, size, seller info, and a "similar items" carousel when the page has one. Public data sourced from Depop's own item pages.
Hinweise zur Response
- `title` is the item's description text up to its first line break — Depop does not expose a separate, shorter title field; `description` is the full text. - `seller` (username, id, verification status, display name, avatar) is only available on this endpoint, not on `/depop/search`'s listing summaries. - `similar_items` is populated when the item page has a "Similar items" carousel, using the same shape as `/depop/search`'s listing summaries. Omitted (not an empty array) when the page doesn't have one. A separate "More from this seller" carousel is also visible on Depop's own item page but isn't included here — it loads via a client-side-only fetch this endpoint doesn't reproduce. For a richer, paginated (up to 150 results) similar-items lookup, use [`GET /depop/item/{slug}/similar`](depop-item-similar.md) instead. - An unknown or delisted item slug returns `404`. - A missing `slug` returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "ag_boutique-vintage-mid-rise-bootcut-levi-2476", "url": "https://www.depop.com/products/ag_boutique-vintage-mid-rise-bootcut-levi-2476/", "title": "Vintage Mid rise Bootcut Levi Jeans", "description": "Vintage Mid rise Bootcut Levi Jeans\nSize 6 (28-30 inch waist) They are mid rise *not low rise*\nInseam: 31 inches\n#Levis #flare", "brand_name": "Levi's", "condition": "used_like_new", "colours": ["blue", "navy"], "price_cents": 1500, "original_price_cents": 1800, "currency": "USD", "shipping_cents": 399, "photos": [ "https://media-photos.depop.com/b1/42916032/4363725919_6c94f1277d5b4ba4890ff74980b79b23/P0.jpg" ], "location": "Monroe, United States", "sizes": ["6"], "seller": { "id": 42916032, "username": "ac_boutique", "verified": false, "first_name": "Alaina", "picture_url": "https://media-photos.depop.com/b1/42916032/3675424939_2e6b5627f8084c269b32054ed071f56e/U1.jpg" }, "similar_items": [ { "id": "lsamcminn-vintage-inspired-levis-superlow-flare-jeans-bb57", "url": "https://www.depop.com/products/lsamcminn-vintage-inspired-levis-superlow-flare-jeans-bb57/", "title": "Vintage-inspired Levi's Superlow Flare jeans in a light wash", "brand_name": "Levi's", "condition": "used_good", "colours": ["blue"], "price_cents": 1700, "currency": "USD", "shipping_cents": 399, "thumbnail_url": "https://media-photos.depop.com/r1/39600511/4353764468_d4c5a9c42c714b679ae7e63f9c9ee22d/P0.jpg", "location": "Santa Rosa, United States" } ] } } ```
MCP-Tool depop_item
/depop/shop/{username}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.
Hinweise zur Response
- This endpoint parses the shop page's rendered HTML, not a JSON API (none was found for per-seller listings) — so each item in `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). - A shop with no current listings returns `200` with `"items": []`. - An empty or malformed `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`. - A nonexistent username returns `404`. Example response: ```json { "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" } ] } } ```
MCP-Tool depop_shop
/depop/categoriesReturns Depop's full department, category, and subcategory taxonomy -- every value usable with /depop/search's and /depop/shop/{username}'s category/subcategory filters. Tries a live refresh from Depop's own category-filter API first and falls back to a static snapshot on any failure, so this never errors.
Hinweise zur Response
- `departments` has exactly 4 entries: `womenswear` (gender `female`), `menswear` (gender `male`), `kidswear` (`is_kids: true`, no gender), and `everything-else` (no gender, not kids-scoped — items outside clothing, e.g. beauty, home, art). - Each department's `categories[].slug` is the value to pass as `/depop/search`'s or `/depop/shop/{username}`'s `category` query parameter. Most category slugs are shared across departments (e.g. `tops` exists under both `womenswear` and `menswear`) — pair a category slug with the matching department's `gender`/`is_kids` when you also want to scope by department. - Each category's `subcategories[].slug` is the value to pass as `subcategory` (comma-separated for multiple), scoped to that category — a subcategory slug from one category is not guaranteed valid under a different category. - This data changes rarely. When the live refresh succeeds, a newly added category or subcategory shows up immediately; when it fails (upstream down, blocked, or unexpected shape), the response falls back to a static snapshot that lags until this package is re-synced. Example response (truncated): ```json { "code": 200, "msg": "OK", "data": { "departments": [ { "id": "womenswear", "name": "Women", "gender": "female", "categories": [ { "slug": "tops", "name": "Tops", "subcategories": [ { "slug": "tshirts", "name": "T-shirts" }, { "slug": "hoodies", "name": "Hoodies" } ] } ] }, { "id": "kidswear", "name": "Kids", "is_kids": true, "categories": [ { "slug": "bundles", "name": "Clothing bundles", "subcategories": [ { "slug": "bundles", "name": "Clothing bundles" } ] } ] }, { "id": "everything-else", "name": "Everything else", "categories": [ { "slug": "beauty", "name": "Beauty", "subcategories": [ { "slug": "makeup", "name": "Makeup" }, { "slug": "skincare", "name": "Skincare" } ] } ] } ] } } ```
MCP-Tool depop_categories
/depop/brandsReturns Depop's full brand directory (id, name, slug), not just brands with active listings for a given search -- resolves the search endpoint's otherwise-opaque brand_ids filter to human-readable names. Public data sourced from Depop's own brand-directory API.
Hinweise zur Response
- The directory changes rarely, so it is served from a cached snapshot refreshed about once a day; most calls return in well under a second, and a snapshot is still served while a refresh is in progress or failing. - Only the very first fetch (no snapshot yet) goes to Depop live, which can take 20-75 seconds because Depop's JSON API sits behind a stricter bot-protection tier; `503` then means every fetch path was blocked. Retry later. - `brands` is sorted by numeric `id` for a deterministic order. - `id` is the same numeric brand id `/depop/search`'s `brand_ids` filter accepts. Example response: ```json { "code": 200, "msg": "OK", "data": { "total": 4213, "brands": [ {"id": 1, "name": "Aloye", "slug": "aloye"}, {"id": 2, "name": "Diamond Supply Co.", "slug": "diamond-supply-co"}, {"id": 270, "name": "Nike", "slug": "nike"} ] } } ```
MCP-Tool depop_brands
/depop/item/{slug}/similarReturns items similar to a given Depop listing, via Depop's dedicated similar-items API -- richer and paginated (up to 150 per page) compared to the small, non-paginated "similar items" carousel already included in item detail. Public data sourced from Depop's own similar-items API.
Hinweise zur Response
- Depop's JSON API sits behind a stricter bot-protection tier than its product pages. Calls first try a fast direct request and then fall back to a rendered browser fetch, so responses can take 20-60 seconds; `503` means both paths were blocked. Retry later. - Items are shaped identically to `/depop/search`'s listing summaries (title, price, brand, condition, like count, photos, sizes). - Resolving `slug` to the source item requires an internal item-page fetch before the similar-items lookup — allow for slightly higher latency than `/depop/search`. - `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. - An unknown or delisted source item slug returns `404`. - A missing `slug` or a `limit` over `150` returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "items": [ { "id": "rayofsuashineva-artsy-chic-boho-luxe-eclectic-d9c0", "url": "https://www.depop.com/products/rayofsuashineva-artsy-chic-boho-luxe-eclectic-d9c0/", "title": "Artsy chic", "description": "Artsy chic\n\nBoho luxe\n\nMichael Simon jacket, multicolor plaid jacket", "brand_name": "Other", "condition": "used_excellent", "colours": ["multi"], "price_cents": 2500, "currency": "USD", "shipping_cents": 199, "thumbnail_url": "https://media-photos.depop.com/b1/264682642/4443656880_c7418b1968634a5a8a7e98ba0a863801/P0.jpg", "sizes": ["M"], "location": "Durham, United States", "like_count": 0 } ], "has_more": true, "next_cursor": "NQ" } } ```
MCP-Tool depop_item_similar
/depop/search-sellersFinds Depop users/sellers by name or username. A matched result's username can be passed directly to GET /depop/shop/{username} for that seller's full shop. Public data sourced from Depop's own user-search API.
Hinweise zur Response
- Depop's JSON API sits behind a stricter bot-protection tier than its product pages. Calls first try a fast direct request and then fall back to a rendered browser fetch, so responses can take 20-60 seconds; `503` means both paths were blocked. Retry later. - `first_name`/`last_name` reflect whatever the seller has set on their profile — either or both may be empty. - `avatar_url` is omitted when the seller has no profile picture set. - A missing `query` returns `400` before any upstream request is made. - A query with no matching sellers returns `200` with `"sellers": []`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "red corte", "sellers": [ { "id": 22564880, "username": "red4201", "first_name": "Red", "last_name": "Cortes" }, { "id": 51552506, "username": "redecorate", "first_name": "kai", "avatar_url": "https://media-photos.depop.com/b1/51552506/2384449778_27b1e362ea8c462096725bfe9f018bc3/U1.jpg" } ] } } ```
MCP-Tool depop_search_sellers
/depop/search/facetsReturns result-count breakdowns per department/category/subcategory for a search query, via Depop's dedicated aggregates API -- a distinct upstream call from search itself, not embedded in its response. Public data sourced from Depop's own search-aggregates API.
Hinweise zur Response
- Depop's JSON API sits behind a stricter bot-protection tier than its product pages. Calls first try a fast direct request and then fall back to a rendered browser fetch, so responses can take 20-60 seconds; `503` means both paths were blocked. Retry later. - `departments` is sorted alphabetically by department name; each department's `categories`/`subcategories` are sorted alphabetically by `id` for a deterministic order. - `categories`/`subcategories` are already department-scoped — unlike `/depop/search`'s own `category`/`subcategory` filters, which apply across all departments, a facet's `count` here only covers listings within that specific department. - `subcategories` are omitted (not an empty array) for a department with no subcategory breakdown in the upstream response. - A missing `query` returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "bandage dress", "departments": [ { "department": "menswear", "count": 39, "categories": [ {"id": "coats-jackets", "count": 4}, {"id": "fancy-dress", "count": 14}, {"id": "tops", "count": 12} ], "subcategories": [ {"id": "jackets", "count": 4}, {"id": "tshirts", "count": 5} ] }, { "department": "womenswear", "count": 23744, "categories": [ {"id": "dresses", "count": 22504}, {"id": "tops", "count": 509} ], "subcategories": [ {"id": "shift-dresses", "count": 22}, {"id": "wedding-dresses", "count": 7} ] } ] } } ```
MCP-Tool depop_search_facets
/depop/sizesReturns Depop's full, multi-region size taxonomy -- every composite id usable with /depop/search's and /depop/shop/{username}'s sizes filter. Public data sourced from Depop's own size-filter API.
Hinweise zur Response
- Depop's JSON API sits behind a stricter bot-protection tier than its product pages. Calls first try a fast direct request and then fall back to a rendered browser fetch, so responses can take 20-60 seconds; `503` means both paths were blocked. Retry later. - `departments` only includes `kidswear`, `menswear`, and `womenswear` — `everything-else` (see [`/depop/categories`](depop-categories.md)) has no clothing sizes and is omitted. - Each department groups its sizes into `categories` (e.g. "Tops", "Bottoms", "Shoes"), each of which groups sizes further into `regions` (`EUR`, `UK`, `US`, `AU`). - Each size's `id` (e.g. `"4.17"`) is the exact value to pass — comma -separated for multiple — as `/depop/search`'s or `/depop/shop/{username}`'s `sizes` query parameter. It omits the region suffix Depop's own page URLs display (e.g. `4.17-US`) — that suffix is decorative only; the bare `id` is what both endpoints actually key off. - A size id is not scoped to a specific `category`/`gender`/`is_kids` combination by `/depop/search` or `/depop/shop/{username}` — pairing an id from the wrong category (e.g. a Shoes id while filtering Tops) simply returns zero results rather than an error. Example response (truncated): ```json { "code": 200, "msg": "OK", "data": { "departments": [ { "id": "womenswear", "name": "Women", "categories": [ { "id": "wmns-tops-sizes", "name": "Tops", "regions": [ { "region": "US", "sizes": [ { "id": "4.17", "name": "M" }, { "id": "4.18", "name": "L" } ] } ] } ] } ] } } ```
MCP-Tool depop_sizes
/depop/suggestReturns Depop's own search-box autocomplete suggestions for a partial query, including the category a suggestion maps to when relevant. Public data sourced from Depop's own search-suggestions API.
Hinweise zur Response
- Depop's JSON API sits behind a stricter bot-protection tier than its product pages. Calls first try a fast direct request and then fall back to a rendered browser fetch, so responses can take 20-60 seconds; `503` means both paths were blocked. Retry later. - `value` is the suggested phrase with Depop's own bold-match markup stripped (the upstream API wraps the substring matching `query` in `**...**` for highlighting; this endpoint returns the plain text). - `group`, `suggested_filter_label`, and `gender` are present when the suggestion maps to a specific Depop category/department (e.g. `group` `tops`, `suggested_filter_label` `"in Women's Tops"`, `gender` `female`) — all three omitted for a plain free-text suggestion with no category match. - A missing `query` returns `400` before any upstream request is made. - Suggestions with no results return `200` with `"suggestions": []`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "red corte", "suggestions": [ { "value": "red corset", "group": "tops", "suggested_filter_label": "in Women's Tops", "gender": "female" }, { "value": "red corset" }, { "value": "red corset top" } ] } } ```
MCP-Tool depop_suggest
Verwandte APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
Unternehmensabdeckung
Etsy, Inc. · ETSY
Depop wird von Etsy, Inc. (ETSY) betrieben. Crawloras SEC-Endpunkte nutzen dieselbe CIK dieses Unternehmens, sodass Filings, Finanzdaten, Insider-Transaktionen und 13F-Beteiligungen mit demselben API-Key wie die Depop-Endpunkte oben abrufbar sind.
Weitere Etsy, Inc.-Plattformen im Katalog
So scrapst du Depop
Crawlora's Depop endpoints cover search, listings, seller shops, and Depop's discovery APIs (facets, autocomplete, similar items, seller search, brands, and sizes) as normalized JSON with one API key. Depop search is large and precise. carhartt jacket matched 116,421 listings on 2026-09-18, and each listing returns its price and shipping in cents plus the item's location.
/depop/search takes a query plus price_min and price_max (USD), condition (brand_new, used_like_new, used_excellent, used_good, used_fair), colours, category and subcategory, gender, is_kids, brand_ids, sizes, on_sale, and sort. It returns 24 listings per page with total_results and a next_cursor, which you pass back as after.
price_cents and shipping_cents are integer cents. An $80.00 jacket with $5.99 shipping comes back as 8000 and 599. Item detail adds original_price_cents for markdowns. The id is the listing's URL slug, which /depop/item/{slug} takes directly.
/depop/search/facets returns result counts per department, category, and subcategory for a query. /depop/suggest returns Depop's autocomplete, including the category a suggestion maps to (for example in Women's Tops). /depop/brands resolves the numeric brand_ids filter to names.
/depop/item/{slug}/similar pages up to 150 similar listings. /depop/search-sellers finds sellers by name, and /depop/shop/{username} returns a seller's shop with most of the same filters as search. Depop blocks some automated requests; a 503 means blocked upstream, so retry later.
FAQ
brand_ids takes Depop's internal numeric ids, which Depop doesn't publish. Look them up in /depop/brands, which maps each id to a brand name and slug.
brand_new, used_like_new, used_excellent, used_good, and used_fair. Pass them comma-separated to /depop/search or /depop/shop/{username}.
Depop blocked that request upstream. It is not an empty result. Retry after a pause.