Skip to content
scrapeatlas.Dashboard

Get a Whatnot seller profile

Try in Playground

Read a public seller profile: identity, bio, images, follower/sold counts, average ship days, rating and review count, verified/live/premier flags and the current live show.

GET/v1/whatnot/profilex-api-key
x-api-keystringrequiredheader

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

Query parameters
3
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

Response fields
40
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.

Seller profile.

profile.idstring

Relay node id.

profile.userIdstringnullable

Numeric user id decoded from the node id.

profile.usernamestring

Username.

profile.displayNamestringnullable

Display name.

Profile image id and URL.

profile.profileImage.idstringnullable

Always included.

profile.profileImage.urlstringnullable

Always included.

profile.isLivebooleannullable

Whether the seller is live now.

profile.isVerifiedSellerbooleannullable

Verified-seller badge.

profile.followerCountintegernullable

Followers.

profile.soldCountintegernullable

Items sold.

profile.ratingnumbernullable

Average seller rating out of 5.

profile.numReviewsintegernullable

Number of seller reviews.

profile.biostringnullable

Bio text.

Store banner image.

profile.storeImage.idstringnullable

Always included.

profile.storeImage.urlstringnullable

Always included.

profile.followingCountintegernullable

Accounts followed.

profile.averageShipDaysintegernullable

Average days to ship.

profile.canGoLivebooleannullable

Seller can host shows.

profile.isPremierShopbooleannullable

Premier shop status.

Live show in progress (id, status, activeViewers) or null.

profile.currentLivestream.idstring

Always included.

profile.currentLivestream.statusstringnullable

Always included.

profile.currentLivestream.activeViewersintegernullable

Always included.

profile.urlstring

Canonical profile URL.

absolute HTTPS URL

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.