CompSniper Docs

Poshmark and Mercari APIs

Search public Poshmark sold listings and Mercari sold or active listings through CompSniper.

CompSniper exposes separate marketplace endpoints so eBay, Poshmark, and Mercari keep stable native fields without forcing every result into an inaccurate shared schema. All three use the same API key, rate limit, monthly quota, purchased-credit fallback, request IDs, and safe retry behavior.

Choose the endpoint

MarketplaceEndpointNative page ceilingCoverage
eBayGET /v1/scrape240Sold or active listings across eight eBay sites
Poshmark USGET /v1/poshmark/sold48Sold listings with public listing and optional seller evidence
Mercari USGET /v1/mercari100Sold listings by default, or active listings with sold=false

No Poshmark or Mercari account is required. CompSniper manages the anonymous marketplace sessions.

Search Poshmark sold listings

curl --fail-with-body \
  -H "Authorization: Bearer cs_live_REPLACEWITHYOURKEY" \
  "https://api.compsniper.com/v1/poshmark/sold?keyword=louis+vuitton+neverfull&department=women&page=1"

Supported parameters:

ParameterValuesDefault
keywordAny non-empty search termRequired
page1 through 1001
minPrice, maxPriceNon-negative USD valuesNone
departmentall, women, men, kids, home, pets, electronicsall
conditionall, nwtall
brandPublic Poshmark brand nameNone
sortBysold_recently, price_asc, price_desc, likessold_recently
enrichtrue, falsefalse

Every Poshmark row can include the listing ID and URL, title, displayed sold and original prices, brand, size, category, condition code, New With Tags flag, colors, description, public sold timestamp, original listing timestamp, days to sell, likes, comments, shares, seller username, and image.

enrich=true adds public seller location, approximate sold-count evidence, and average ship time when Poshmark exposes them. It still uses one CompSniper request. shippingCost remains null when Poshmark does not expose item-level shipping evidence.

Poshmark response item
{
  "listingId": "6478a1b2c3d4e5f6a7b8c9d0",
  "title": "Louis Vuitton Neverfull MM Damier Ebene",
  "soldPrice": 1250,
  "originalPrice": 1960,
  "brand": "Louis Vuitton",
  "category": "Women > Bags",
  "soldAt": "2026-07-15T18:30:00-07:00",
  "listedAt": "2026-06-01T12:00:00-07:00",
  "daysToSell": 44.27,
  "sellerUsername": "luxurycloset"
}

Search Mercari sold or active listings

curl --fail-with-body \
  -H "Authorization: Bearer cs_live_REPLACEWITHYOURKEY" \
  "https://api.compsniper.com/v1/mercari?keyword=sony+wh-1000xm5&count=10&sold=true"

Supported parameters:

ParameterValuesDefault
keywordAny non-empty search termRequired
page1 through 1001
count1 through 100100
sortOrderbestMatch, newest, lowestPrice, highestPrice, recentlySold, mostPopularbestMatch
minPrice, maxPriceNon-negative USD valuesNone
itemConditionany, new, likeNew, good, fair, poorany
categoryId, brandIdPositive Mercari identifiersNone
soldtrue, falsetrue

mostPopular is accepted for compatibility and currently aliases Mercari's recentlySold order.

Mercari rows include item ID and URL, title, displayed price and original price, USD currency, condition and condition ID, sold or active status, full and thumbnail images, seller ID, brand, and category. Mercari's public search response does not provide a reliable sold timestamp, so CompSniper does not invent one.

Mercari sold response item
{
  "itemId": "m14964613616",
  "url": "https://www.mercari.com/us/item/m14964613616/",
  "title": "Sony WH-1000XM5 Wireless Noise Cancelling Headphones Black",
  "price": "100.00",
  "currency": "USD",
  "condition": "Good",
  "conditionId": 3,
  "status": "sold",
  "brand": "Sony",
  "categoryName": "Bluetooth Headphones",
  "marketplace": "mercari"
}

Price summaries and limitations

Sold Poshmark and Mercari responses include CompSniper's deterministic summary with count, median, mean, minimum, maximum, p25, and p75. Active Mercari searches return summary: null because asking prices are not completed-sale evidence.

Marketplace pages show public displayed prices. A marketplace may not disclose the lower amount accepted through a private offer, so a displayed sold price can be an upper bound. Always retain sample size and marketplace alongside a calculated median.

Billing, caching, and retries

Each successful page uses one monthly request or purchased credit, including enrich=true. Failed upstream requests release the reservation and are not charged. Cached requests still use one customer request because they return the same API value.

Handle rate_limited, quota_exceeded, temporary 502, and temporary 503 responses exactly as described in Rate limits and quotas and Errors.

On this page