Poshmark API endpoint
Searches Poshmark for clothing, shoes, and accessory listings, returning 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.
/poshmark/searchQuery parameters:
query (required) — free-text keyword search.department (optional) — department filter, e.g. Women, Men, Kids.max_id (optional) — an opaque pagination cursor from a previous
response's next_max_id. Omit for the first page.Notable response behavior:
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.200 with "listings": [].query returns 400 before any upstream request is made.| Field | Filled in, of 48 checked | Values in the sample |
|---|---|---|
| id | 48 | |
| title | 48 | “Nike Jacket Size L” and 40 other values |
| description | 48 | median 168 characters |
| price | 48 | 10 to 106, median 29 |
| brand | 48 | Nike in all 48 |
| category | 48 | Jackets & Coats in all 48 |
| department | 48 | Men (39), Women (8), Kids (1) |
| size | 48 | L (16), M (11), XL (10) and 5 more |
| colors | 42 | median 1 entry |
| status | 48 | published in all 48 |
| cover_shot | 48 | di2ponv0v5otw.cloudfront.net |
| like_count | 17 | 1 to 26, median 1 |
| share_count | 38 | 1 to 86, median 7 |
| inventory_status | 48 | available in all 48 |
| quantity_available | 48 | 1 |
| created_at | 48 | 2026-08-22 to 2026-10-13 |
| first_available_at | 48 | 2026-08-22 to 2026-10-13 |
| seller_username | 48 | |
| seller_display_handle | 48 | |
| seller_full_name | 48 | |
| seller_picture_url | 48 | di2ponv0v5otw.cloudfront.net and 1 other host |
| url | 48 | poshmark.com |
| pictures | 47 | median 6 entries |
| condition | 36 | ug (25), uln (7), nwt (4) |
| original_price | 9 | 45 to 999, median 85 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | Yes | Free-text keyword search | nike jacket | |
| department | string | No | Department filter, e.g. Women, Men, Kids | Men | |
| max_id | string | No | Opaque pagination cursor from a previous response's next_max_id. Omit for the first page | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/poshmark/search?query=nike+jacket" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"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"
}
}Request schema
No body schema
Response schema
#/definitions/poshmark.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | poshmark.SearchResponse | No | ||||
| data.has_more | boolean | No | true | |||
| data.listings | array | No | Listing record, 26 fields: brand, category, colors, comment_count, condition, cover_shot, created_at, department, description, first_available_at, id, inventory_status and 14 more. Described under Poshmark listing detail API. | |||
| data.next_max_id | string | No | ENC_eyJtYXhfaWRzIjpbNDksMSwxXSwicGFnZV9udW0iOjIsInBhZ2VfZ3JvdXBfaWQiOiI2YTcyZTE3OTI1MzYyMTUzMDNhMmVmMWEifQ | |||
| data.source_url | string | No | ||||
| data.total | integer | No | 120000 | |||
| 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/poshmark/search?query=nike+jacket" \
-H "x-api-key: $CRAWLORA_API_KEY"