Skip to content
scrapeatlas.Dashboard

Get Poshmark closet listings

Try in Playground

List the listings in a Poshmark closet, available, sold or both, with keyword, brand, size, condition, color and price filters and sorting. Each listing has the same fields as search. Page with cursor; since and until select listing dates.

GET/v1/poshmark/closetx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
15
usernamestringquery

Closet username, case-sensitive (the name after poshmark.com/closet/).

Examplepm_editor
urlstringquery

A https://poshmark.com/closet/… link. Provide username or url.

max 600 chars

querystringquery

Keywords within the closet, up to 200 characters.

min 1 chars · max 200 chars

brandstringquery

Brand names as Poshmark shows them, comma-separated, up to 10 (for example Nike,Adidas).

max 1000 chars

sizestringquery

Sizes as Poshmark shows them, comma-separated, up to 10 (for example 8,8.5 or M).

max 1000 chars

conditionenumquery

nwt (new with tags), ret (boutique) or not_nwt (used and without tags).

one of: nwt, ret, not_nwt

colorstringquery

Colors, comma-separated: Red, Pink, Orange, Yellow, Green, Blue, Purple, Gold, Silver, Black, Gray, White, Cream, Brown or Tan.

max 1000 chars

minPricestringquery

Lowest price in whole US dollars.

maxPricestringquery

Highest price in whole US dollars.

availabilityenumquery

available (default), sold or all.

one of: available, sold, all

Exampleall
sortenumquery

best_match, newest (just in), price_asc, price_desc or most_liked.

one of: best_match, newest, price_asc, price_desc, most_liked

sincenumber | stringquery

Keep listings listed at or after this time: ISO 8601 or Unix seconds. Without sort, the grid is read newest first.

untilnumber | stringquery

Keep listings listed before this time: ISO 8601 or Unix seconds.

cursorstringquery

nextCursor from the previous page.

limitstringquery

Listings per page, 1–100 (default 48).

Response fields
120
requestIdstring

Request correlation UUID.

Upstream requests, decoded response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Poshmark public API URL the data was read from.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

order is relevance for best_match, newest_first for newest, ranked for price or like sorts and source_order for a closet’s or party’s own order; window echoes since/until. Listings without a listing time are skipped in a window (undated_listings_skipped).

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

coverage.orderenum

Always included.

one of: newest_first, oldest_first, ranked, relevance, source_order

Optional.

coverage.window.sincestringoptional

Optional.

coverage.window.untilstringoptional

Optional.

usernamestring

Closet username, case-sensitive (the name after poshmark.com/closet/).

Listings with Poshmark’s field names: id, title, description, brand, department, category_v2, category_features, size and size_obj, condition (nwt new with tags, ret boutique, other values for used), colors, style_tags, inventory (status available, sold_out, reserved or not_for_sale, with per-size quantities), price and original_price (numbers) with price_amount, original_price_amount and first_user_price_amount (string amounts with currency), price_drop, shipping_discount_type, like_count, comment_count, share_count, has_offer, cover_shot and pictures (image URLs), videos (thumbnail and MP4 URLs), seller identity (creator_id, creator_username, creator_full_name, creator_picture_url), created_at, first_published_at, first_available_at, status_changed_at and updated_at, plus listingUrl. Absent source values are omitted.

up to 100 items

listings.idstring

Always included.

listings.creator_idstringnullableoptional

Optional.

listings.creator_usernamestringnullableoptional

Optional.

listings.creator_display_handlestringnullableoptional

Optional.

listings.creator_full_namestringnullableoptional

Optional.

listings.creator_picture_urlstringnullableoptional

Optional.

listings.statusstringnullableoptional

Optional.

listings.typestringnullableoptional

Optional.

listings.titlestringnullableoptional

Optional.

listings.descriptionstringnullableoptional

Optional.

listings.brandstringnullableoptional

Optional.

listings.brand_idstringnullableoptional

Optional.

Optional.

listings.department.idstring

Always included.

listings.department.displaystring

Always included.

listings.department.slugstring

Always included.

Optional.

listings.category_v2.idstring

Always included.

listings.category_v2.displaystring

Always included.

listings.category_v2.slugstring

Always included.

Optional.

up to 20 items

listings.category_features.idstring

Always included.

listings.category_features.displaystring

Always included.

listings.category_features.slugstring

Always included.

listings.sizestringnullableoptional

Optional.

Optional.

listings.size_obj.idstringoptional

Optional.

listings.size_obj.displaystringoptional

Optional.

listings.size_obj.display_with_size_setstringoptional

Optional.

listings.size_obj.size_systemstringoptional

Optional.

listings.conditionstringnullableoptional

Optional.

Optional.

up to 20 items

listings.colors.namestringoptional

Optional.

listings.colors.rgbstringoptional

Optional.

listings.style_tagsstring[]optional

Optional.

up to 50 items

Optional.

listings.inventory.statusstringoptional

Optional.

listings.inventory.status_changed_atstringoptional

Optional.

listings.inventory.multi_itembooleanoptional

Optional.

Optional.

up to 200 items

listings.inventory.size_quantities.size_idstringoptional

Optional.

listings.inventory.size_quantities.quantity_availableintegeroptional

Optional.

listings.inventory.size_quantities.quantity_reservedintegeroptional

Optional.

listings.inventory.size_quantities.quantity_soldintegeroptional

Optional.

Optional.

listings.inventory.size_quantities.size_obj.idstringoptional

Optional.

listings.inventory.size_quantities.size_obj.displaystringoptional

Optional.

listings.inventory.size_quantities.size_obj.display_with_size_setstringoptional

Optional.

listings.inventory.size_quantities.size_obj.size_systemstringoptional

Optional.

listings.pricenumberoptional

Optional.

listings.original_pricenumberoptional

Optional.

Optional.

listings.price_amount.valstring

Always included.

listings.price_amount.currency_codestring

Always included.

listings.price_amount.currency_symbolstringoptional

Optional.

Optional.

listings.original_price_amount.valstring

Always included.

listings.original_price_amount.currency_codestring

Always included.

listings.original_price_amount.currency_symbolstringoptional

Optional.

Optional.

listings.first_user_price_amount.valstring

Always included.

listings.first_user_price_amount.currency_codestring

Always included.

listings.first_user_price_amount.currency_symbolstringoptional

Optional.

Optional.

listings.price_drop.percentagenumberoptional

Optional.

listings.shipping_discount_typestringnullableoptional

Optional.

Optional.

listings.deal_info.typestringoptional

Optional.

listings.posh_pass_eligiblebooleanoptional

Optional.

listings.has_offerbooleanoptional

Optional.

listings.like_countintegeroptional

Optional.

listings.comment_countintegeroptional

Optional.

listings.share_countintegeroptional

Optional.

Optional.

listings.cover_shot.idstringoptional

Optional.

listings.cover_shot.urlstring

Always included.

listings.cover_shot.url_smallstringnullableoptional

Optional.

listings.cover_shot.url_largestringnullableoptional

Optional.

listings.cover_shot.photo_angle_idstringnullableoptional

Optional.

Optional.

up to 50 items

listings.pictures.idstringoptional

Optional.

listings.pictures.urlstring

Always included.

listings.pictures.url_smallstringnullableoptional

Optional.

listings.pictures.url_largestringnullableoptional

Optional.

listings.pictures.photo_angle_idstringnullableoptional

Optional.

Optional.

up to 20 items

listings.videos.idstringoptional

Optional.

listings.videos.statusstringoptional

Optional.

listings.videos.created_atstringoptional

Optional.

Optional.

listings.videos.media.durationnumberoptional

Optional.

listings.videos.media.thumbnail_contentobjectoptional

Optional.

listings.videos.media.video_media_contentobjectoptional

Optional.

listings.created_atstringnullableoptional

Optional.

listings.first_published_atstringnullableoptional

Optional.

listings.first_available_atstringnullableoptional

Optional.

listings.status_changed_atstringnullableoptional

Optional.

listings.updated_atstringnullableoptional

Optional.

listings.listingUrlstring

Always included.

totalintegernullable

Listings in the closet matching the filters, as Poshmark counts them, or null.

nextCursorstringnullable

Cursor for the next page, or null at the end (or once a newest-first page is older than since).

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
12
HTTPfailure.codeMeaning
200partialUsable data with related_matches_only, comments_incomplete, comment_limit, love_note_limit or undated_listings_skipped warnings.
400invalid_requestMissing, duplicate, malformed or unsupported parameters, a link outside poshmark.com, or parameters Poshmark rejected.
401unauthorizedMissing or invalid worker API key.
403restricted_pagePoshmark shows the data only to signed-in users.
404not_foundUnknown listing, closet or party.
429upstream_rate_limitedPoshmark rate limited the request.
502upstream_challengedPoshmark refused the public request or answered with a page instead of JSON.
502unsupported_pageMalformed or mismatched source data.
502response_too_large payload_too_complexResponse exceeded byte or parsing limits.
502unsafe_redirect request_limit upstream_errorBounded source retrieval could not complete.
503busyAll worker slots and the waiting queue are occupied.
504timeoutTotal request deadline expired.