Secondhand-fashion pricing and resale research
Mit Poshmark-Endpunkten verwandelst du secondhand-fashion pricing and resale research in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Turn public Poshmark pages into structured resale-fashion data — keyword listing search, full listing detail, a seller's closet catalog, browse by brand or category, the full brand and category directories, and curated trend/showroom collections, all as normalized JSON. Credential-free.
Search Poshmark listings and get listing detail, seller closets, brand and category directories, and trend collections as structured JSON.
Endpunkt-Familien
6
Dokumentierte Parameter
20
Beispiele
8
Live-Katalog-Snapshot
Aktive Endpunkte
8
Methoden
GET
Pflichtparameter
14
Schema-Referenzen
8
{
"platform": "Poshmark",
"endpoint": "poshmark-search",
"method": "GET",
"path": "/poshmark/search",
"auth": "apiKey"
}Use Cases
Search Poshmark listings and get listing detail, seller closets, brand and category directories, and trend collections as structured JSON.
Mit Poshmark-Endpunkten verwandelst du secondhand-fashion pricing and resale research in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Mit Poshmark-Endpunkten verwandelst du seller and closet monitoring in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Mit Poshmark-Endpunkten verwandelst du brand and trend tracking in wiederholbare API-Requests mit dokumentierten Inputs und JSON-Antworten.
Managed Execution
Jede Zahl unten stammt direkt aus dem Live-Poshmark-Endpunktkatalog — 8 Endpunkte, 20 dokumentierte Request-Parameter und 8 veröffentlichte Response-Schemas — demselben Katalog, gegen den auch Docs und Playground laufen.
8 documented Poshmark endpoints, grouped into 8 request families — Brand, Brands and Categories, plus 5 more.
20 request parameters are documented across those Poshmark endpoints, 14 of them required — the full input contract is public before you write any integration code.
8 of the 8 Poshmark endpoints ship a recorded example response, and 8 carry a documented response schema — you can code against the real JSON before the first request.
Poshmark 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.
8 hosted MCP tools back the Poshmark 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.
/poshmark/brand/{name}
/poshmark/brands
/poshmark/categories
/poshmark/category/{path}
/poshmark/closet/{username}
/poshmark/listing/{id}
Endpunktkatalog
/poshmark/searchSearches Poshmark for clothing, shoes, and accessory listings, returning normalized listing summaries (title, price, brand, size, condition, seller, images) plus the total matching count and an opaque pagination cursor. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered search page and, for pages past the first, Poshmark's own JSON pagination API.
Hinweise zur Response
- `total` reflects Poshmark's full matching-result count for the applied filters, not just `len(listings)`. - `next_max_id` is an opaque, server-issued pagination cursor. Pass it back as `max_id` on a subsequent request (with the same `query`/`department`) to fetch the next page. `has_more` is `false` once there is nothing further to page through. - A search with no matching listings returns `200` with `"listings": []`. - A missing `query` returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "total": 5000, "has_more": true, "next_max_id": "ENC_eyJtYXhfaWRzIjpbNDksMSwxXSwicGFnZV9udW0iOjIsInBhZ2VfZ3JvdXBfaWQiOiI2YTcyZTE3OTI1MzYyMTUzMDNhMmVmMWEifQ", "listings": [ { "id": "6a6353cb88849a5f185280ea", "title": "Nike Jacket", "price": 19, "original_price": 98, "condition": "gu", "brand": "Nike", "category": "Jackets", "department": "Men", "size": "M", "colors": ["Black"], "status": "published", "cover_shot": "https://di2ponv0v5otw.cloudfront.net/posts/2026/07/24/x/m_x.jpg", "like_count": 12, "comment_count": 2, "seller_username": "maltimar", "url": "https://poshmark.com/listing/6a6353cb88849a5f185280ea" } ], "source_url": "https://poshmark.com/search?query=nike+jacket" } } ```
MCP-Tool poshmark_search
/poshmark/listing/{id}Returns a normalized Poshmark item-detail page: the full listing (description, all photos, size/brand/condition, inventory), its seller's profile, public comments, and similar listings Poshmark itself surfaces on the same page. Credential-free public data sourced from Poshmark's own server-rendered listing page.
Hinweise zur Response
- `seller` is the listing's seller profile, keeping only display-facing identity and reputation fields (username, name, avatar, follower/rating counts). Poshmark's own page state carries a much larger internal user object alongside it (financial totals, fraud/moderation review flags, KYC verification state, tax and email-engagement tracking, and an `email` field) — none of that is ever included in this response. - `comments` keeps only the public comment text and author identity. Poshmark's raw comment records also carry spam/fraud-review metadata, which is never included. - `similar_listings` is omitted (absent, not an empty array) when Poshmark's own page does not carry a similar-listings shelf for that item. - An unknown listing id returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "6a3fed1de9c77df92e2c0cc6", "title": "NWT Farm Rio Shorts", "description": "New with tags.", "price": 55, "original_price": 95, "condition": "nwt", "brand": "FARM Rio", "category": "Shorts", "department": "Women", "size": "S", "colors": ["Red", "Yellow"], "status": "published", "cover_shot": "https://di2ponv0v5otw.cloudfront.net/posts/x/m_x.jpg", "pictures": ["https://di2ponv0v5otw.cloudfront.net/posts/x/m_x.jpg"], "like_count": 111, "comment_count": 4, "seller": { "id": "5a4f84cb7d70fb0f0f05a37f", "username": "maltimar", "full_name": "Mary Altimar", "followers": 9096, "following": 89, "posts_count": 698, "items_sold_display": "500+", "rating_average": 4.93, "rating_count": 368, "rating_breakdown": {"five_star": 355, "four_star": 7, "three_star": 2, "two_star": 3, "one_star": 1}, "orders_shipped": 522, "url": "https://poshmark.com/closet/maltimar" }, "comments": [ {"id": "6a4a86191fea02ce69f41484", "comment": "Hi can you tell me the width of the waist?", "creator_username": "muvlax20"} ], "source_url": "https://poshmark.com/listing/6a3fed1de9c77df92e2c0cc6" } } ```
MCP-Tool poshmark_listing
/poshmark/closet/{username}Returns a normalized Poshmark closet (seller storefront) page: the seller's public profile and reputation stats (followers, ratings, items sold) plus a first page of their currently available listings and total listing count. Pass a previous response's next_max_id back as max_id to fetch the next page of listings; paginated responses omit the seller profile to avoid a second upstream fetch, so fetch without max_id first to get seller fields. Credential-free public data sourced from Poshmark's own server-rendered closet page and, for pages past the first, Poshmark's own JSON pagination API.
Hinweise zur Response
- `seller` keeps only display-facing identity and reputation fields. Poshmark's own page state carries a much larger internal user-aggregates object alongside it (financial totals, fraud/moderation review counters, KYC verification state, tax and email-engagement tracking, and an `email` field) — none of that is ever included in this response. - `listings` is the first page Poshmark's own closet page renders (48 items per page), not the seller's complete inventory — `total_count` reports the seller's true current listing count. - `next_max_id` is an opaque, server-issued pagination cursor. Pass it back as `max_id` on a subsequent request (with the same `username`) to fetch the next page. **A paginated request (one with `max_id` set) omits `seller` (returned as empty)** — Poshmark's own pagination endpoint for a closet only returns listings, not the seller profile, so fetch without `max_id` first if you need seller fields. - An unknown username returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "seller": { "id": "5a4f84cb7d70fb0f0f05a37f", "username": "maltimar", "full_name": "Mary Altimar", "followers": 9096, "following": 89, "posts_count": 698, "items_sold_display": "500+", "rating_average": 4.93, "rating_count": 368, "rating_breakdown": {"five_star": 355, "four_star": 7, "three_star": 2, "two_star": 3, "one_star": 1}, "orders_shipped": 522, "url": "https://poshmark.com/closet/maltimar" }, "listings": [ {"id": "6a3fed1de9c77df92e2c0cc6", "title": "NWT Farm Rio Shorts", "price": 55, "brand": "FARM Rio", "seller_username": "maltimar"} ], "total_count": 107, "has_more": true, "source_url": "https://poshmark.com/closet/maltimar" } } ```
MCP-Tool poshmark_closet
/poshmark/brand/{name}Returns a page of normalized Poshmark listings for a given brand name (e.g. Nike), the same browsing view as Poshmark's own brand pages. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered brand page and, for pages past the first, Poshmark's own JSON pagination API.
Hinweise zur Response
- `total` reflects Poshmark's full matching-result count for the brand, not just `len(listings)`. - `next_max_id` is an opaque, server-issued pagination cursor. Pass it back as `max_id` on a subsequent request (with the same `name`) to fetch the next page. - An unrecognized brand name returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "total": 210000, "has_more": true, "listings": [ {"id": "6a3333333333333333333333", "title": "Nike Hoodie", "price": 30, "brand": "Nike", "department": "Men"} ], "source_url": "https://poshmark.com/brand/Nike" } } ```
MCP-Tool poshmark_brand
/poshmark/brandsReturns Poshmark's full brand directory: every brand Poshmark recognizes (name, slug, logo, known aliases), not just brands with active listings for a given search or category filter. Useful for resolving a brand name to the exact value the brand/search filters expect. Credential-free public data sourced from Poshmark's own server-rendered brand directory page.
Hinweise zur Response
- The directory is large (tens of thousands of brands) and is returned in a single response, matching Poshmark's own page — there is no pagination. - `logo_url` is omitted when a brand has no dedicated logo image on file. - `aliases` lists alternate names/spellings Poshmark associates with the brand, when any are on file. Example response: ```json { "code": 200, "msg": "OK", "data": { "total": 29887, "brands": [ { "id": "5b453b64ab981d4b61252136", "name": "!it jeans", "slug": "!it_jeans", "logo_url": "https://di2ponv0v5otw.cloudfront.net/brands/2026/06/21/5b453b64ab981d4b61252136/m_6a38da95e2c7c23674171a92.jpg", "aliases": ["it", "!it", "it jeans"] } ], "source_url": "https://poshmark.com/brands" } } ```
MCP-Tool poshmark_brands
/poshmark/category/{path}Returns a page of normalized Poshmark listings for a given category path (e.g. Women-Shoes, Men-Shirts), the same browsing view as Poshmark's own category pages. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered category page and, for pages past the first, Poshmark's own JSON pagination API.
Hinweise zur Response
- `total` reflects Poshmark's full matching-result count for the category, not just `len(listings)`. - `next_max_id` is an opaque, server-issued pagination cursor. Pass it back as `max_id` on a subsequent request (with the same `path`) to fetch the next page. - An unrecognized category path returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "total": 84000, "has_more": true, "listings": [ {"id": "6a2222222222222222222222", "title": "Nike Air Max", "price": 60, "brand": "Nike", "department": "Women"} ], "source_url": "https://poshmark.com/category/Women-Shoes" } } ```
MCP-Tool poshmark_category
/poshmark/categoriesReturns Poshmark's full department/category browse taxonomy (e.g. Women > Shoes, Men > Jackets & Coats). Each entry's path resolves directly against the category endpoint. This is reference data that changes rarely, so responses are cached. Credential-free public data sourced from Poshmark's own server-rendered category pages.
Hinweise zur Response
- This is reference data that changes rarely, so responses are cached for 24 hours — repeated calls within that window return the cached result rather than re-fetching from Poshmark. - The taxonomy has 2 levels: department, then category. Poshmark's own site navigation shows a further leaf sub-category level for whichever single category is currently being browsed (e.g. `Shoes` → `Sneakers`, `Heels`...), but that level isn't included here — browse into a category via the category endpoint to discover its own sub-categories. - Building the full response requires one fetch per department (6 total). If a department's fetch fails, it's simply omitted from the response rather than failing the whole request — the endpoint only returns an error if every department fails. Example response: ```json { "code": 200, "msg": "OK", "data": { "departments": [ { "id": "000e8975d97b4e80ef00a955", "name": "Women", "path": "Women", "categories": [ {"id": "002a8975d97b4e80ef00a955", "name": "Accessories", "path": "Women-Accessories"}, {"id": "00268975d97b4e80ef00a955", "name": "Shoes", "path": "Women-Shoes"} ] } ] } } ```
MCP-Tool poshmark_categories
/poshmark/trend/{id}Returns a page of normalized Poshmark listings for a curated trend/showroom collection (e.g. "Vintage Celine Handbags"), the same browsing view as Poshmark's own trend pages. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered trend page and, for pages past the first, Poshmark's own JSON pagination API.
Hinweise zur Response
- `total` reflects Poshmark's full matching-result count for the collection, not just `len(listings)`. - `name`/`description`/`cover_shot` describe the collection itself. On a paginated response (`max_id` set) these are omitted (empty) to avoid a second upstream fetch — fetch without `max_id` first for those fields. - `next_max_id` is an opaque, server-issued pagination cursor. Pass it back as `max_id` on a subsequent request (with the same `id`) to fetch the next page. Use it promptly — Poshmark's own result ranking can shift over time, so a cursor reused after a long delay may show some overlap with a previous page. - An unrecognized trend/showroom id returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "name": "Vintage Celine Handbags", "total": 5000, "has_more": true, "listings": [ {"id": "6a1111111111111111111111", "title": "Vintage Celine Bag", "price": 800, "brand": "Celine"} ], "source_url": "https://poshmark.com/trend/964e80193927e69b518f631b" } } ```
MCP-Tool poshmark_trend
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.
So scrapst du Poshmark
Crawlora's Poshmark endpoints return listing search, listing detail, seller closets, brand, category, and trend feeds, and the brand and category directories as normalized JSON with one API key. Poshmark's data carries reseller signals that other marketplaces don't: condition codes such as nwt (new with tags), share counts, when a listing first became available, and closet-level stats like followers and orders shipped.
/poshmark/search takes a query and an optional department. It returns 48 listings per page with total and has_more. total is capped at 5000 on broad searches like levis 501. Each listing has price, brand, category, department, size, colors, and a condition code: nwt, uln (used, like new), ug (used, good), or uf (used, fair). Some listings have no condition.
Every listing feed (search, brand, category, closet, and trend) paginates with next_max_id. Pass it back as max_id with the same query until has_more is false. There is no page parameter.
/poshmark/listing/{id} adds share_count, inventory_status, quantity_available, created_at and first_available_at, and a seller block with member_since and last_active_at. /poshmark/closet/{username} returns the seller's followers, posts_count, orders_shipped, and items_sold_display, plus the first 48 listings and total_count. One sample closet reported 3,166 listings and 4,208 orders shipped.
/poshmark/brands returns the full brand directory in a single response (29,887 brands on 2026-09-18, with aliases), so cache it. /poshmark/categories returns six departments with their categories and paths, such as Women-Jeans, for /poshmark/category/{path}.
FAQ
nwt is new with tags, uln is used and like new, ug is used and good, and uf is used and fair. Some listings carry no condition code at all.
By cursor rather than page number. Search, brand, category and closet responses each carry a next_max_id along with total and has_more; pass that value back as the max_id parameter to get the next page, and stop when has_more is false. There is no page parameter to increment.
Poshmark blocks some automated requests at the edge, and Crawlora surfaces that as a 503 rather than returning an empty result that would look like a genuine answer. It is intermittent — a brand-directory call that 503s often succeeds on an immediate retry — and because Crawlora bills only successful 2xx responses, a blocked request costs no credits.