Skip to content
scrapeatlas.Dashboard

Get a seller's shop listings

Try in Playground

List a seller's shop (buy-it-now and auction listings), optionally filtered by a search query, 24 per page.

GET/v1/whatnot/user/listingsx-api-key
x-api-keystringrequiredheader

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

Query parameters
5
handlestringquery

Whatnot username. Exactly one of handle, user_id or url.

Exampleexample_seller
user_idstringquery

Numeric Whatnot user id (the decoded PublicUserNode id).

urlstringquery

Public profile URL https://www.whatnot.com/user/{handle}.

min 1 chars · max 2048 chars

querystringquery

Optional search within the shop.

max 200 chars

cursorstringquery

pagination.cursor from the previous response to continue.

Response fields
72
requestIdstring

Random operational correlation ID.

Upstream GraphQL requests, response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable public data was retrieved.

statusenum

success, partial, failed or challenged. Inspect coverage even for HTTP 200.

one of: success, partial

sourceUrlstring

Public www.whatnot.com URL the data belongs to.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

Complete means this bounded page had no known omissions; warnings name each omission.

coverage.sourcestring

Always public_api (Whatnot's public web GraphQL endpoint).

coverage.completeboolean

False when any warning is present.

coverage.warningsstring[]

Machine-readable omission codes such as sections_skipped or record_limit.

Listing records.

up to 100 items

listings.idstring

Relay listing id.

listings.urlstring

Public https://www.whatnot.com/listing/{id} URL.

absolute HTTPS URL

listings.titlestringnullable

Title.

listings.subtitlestringnullable

Condition/subtitle line.

listings.descriptionstringnullable

Description.

Buy-now price in major units with ISO currency.

listings.price.amountnumbernullable

Always included.

listings.price.currencystringnullable

Always included.

listings.transactionTypestringnullable

BUY_IT_NOW, ASYNC_AUCTION or other source types.

listings.statusstringnullable

Public status such as ACTIVE or SOLD.

listings.quantityintegernullable

Quantity available.

listings.isLivebooleannullable

Whether it is featured in a live show now.

Current bid for auctions.

listings.currentBid.amountnumbernullable

Always included.

listings.currentBid.currencystringnullable

Always included.

listings.currentBidCountintegernullable

Bids so far.

Auction state: current price, bid count, end time.

Always included.

listings.auction.currentPrice.amountnumbernullable

Always included.

listings.auction.currentPrice.currencystringnullable

Always included.

listings.auction.bidCountintegernullable

Always included.

listings.auction.endTimestringnullable

Always included.

listings.totalBookmarksintegernullable

Bookmarks.

listings.labelsstring[]nullable

Source labels.

Image ids, URLs and labels.

up to 50 items

listings.images.idstringnullable

Always included.

listings.images.urlstringnullable

Always included.

listings.images.labelstringnullable

Always included.

Linked catalog product and price range when present.

listings.product.idstring

Always included.

listings.product.namestringnullable

Always included.

Always included.

Always included.

listings.product.priceRange.min.amountnumbernullable

Always included.

listings.product.priceRange.min.currencystringnullable

Always included.

Always included.

listings.product.priceRange.max.amountnumbernullable

Always included.

listings.product.priceRange.max.currencystringnullable

Always included.

listings.createdAtstringnullable

Created, ISO 8601 UTC.

listings.updatedAtstringnullable

Updated, ISO 8601 UTC.

Seller summary.

listings.user.idstring

Always included.

listings.user.userIdstringnullable

Always included.

listings.user.usernamestring

Always included.

listings.user.displayNamestringnullable

Always included.

Always included.

listings.user.profileImage.idstringnullable

Always included.

listings.user.profileImage.urlstringnullable

Always included.

listings.user.isLivebooleannullable

Always included.

listings.user.isVerifiedSellerbooleannullable

Always included.

listings.user.followerCountintegernullable

Always included.

listings.user.soldCountintegernullable

Always included.

listings.user.ratingnumbernullable

Always included.

listings.user.numReviewsintegernullable

Always included.

Relay-style continuation state.

pagination.cursorstringnullable

Opaque cursor for the next page, or null on the last page.

pagination.hasMoreboolean

Whether another page exists.

pagination.totalCountintegernullable

Total records the source reports, when known.

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
9
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, unsupported or invalid parameters, or more than one selector.
401unauthorizedMissing or invalid service key.
404not_foundUnknown user, livestream, listing or tag.
429upstream_rate_limitedWhatnot rate limited the request; no automatic retry.
502upstream_challengedCloudflare challenge or HTTP 403/503 from Whatnot.
502unsupported_page unsafe_redirect response_too_large payload_too_complex request_limit upstream_errorBounded retrieval failed or the GraphQL response no longer matches the expected schema.
503busyAll worker slots occupied.
504timeoutDeadline exceeded.
200partialCoverage warnings such as sections_skipped or record_limit.