Whatnot API endpoint
Returns a Whatnot live show's current shop feed: every product, auction, and giveaway listing currently visible in the show, each with its seller's rating.
/whatnot/live/{id}Path parameters:
id (required) — the Whatnot live show id, e.g. from a
/whatnot/browse result's id field.Notable response behavior:
transaction_type distinguishes how a listing is sold: AUCTION
(bid-based, current_bid_cents/current_bid_count populated once
bidding starts), GIVEAWAY, or BUY_IT_NOW.status reflects the listing's own lifecycle, not the show's overall
live/ended state: active, created, or running. A terminal
"sold"/"sold out"-style value almost certainly also exists but was not
observed in live testing.seller.rating/seller.review_count are scoped to the listing's
seller, not the requester — there is no separate seller-profile lookup
this endpoint calls.200 with "products": [], not an
error — Whatnot's own backend doesn't distinguish "no such show" from "a
real show with nothing currently listed."id returns 400 before any upstream request is made.| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| url | Has a value | whatnot.com |
| products | Empty |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Whatnot live show id, e.g. from a browse result's id field | 6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/whatnot/live/6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a",
"url": "https://www.whatnot.com/live/6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a",
"products": [
{
"id": "TGlzdGluZ05vZGU6MjEzMTA5NzI1NA==",
"title": "slab",
"description": "show live",
"price_cents": 1000,
"currency": "USD",
"status": "running",
"transaction_type": "AUCTION",
"quantity": 219,
"seller": {
"username": "legacy_auction_house",
"rating": 4.9,
"review_count": 128914
}
}
]
}
}Request schema
No body schema
Response schema
#/definitions/whatnot.liveResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | whatnot.LiveResponse | No | ||||
| data.id | string | No | ||||
| data.products | array | No | ||||
| data.products[].currency | string | No | ||||
| data.products[].current_bid_cents | integer | No | ||||
| data.products[].current_bid_count | integer | No | ||||
| data.products[].description | string | No | ||||
| data.products[].id | string | No | ||||
| data.products[].price_cents | integer | No | ||||
| data.products[].quantity | integer | No | ||||
| data.products[].seller | whatnot.LiveSeller | No | ||||
| data.products[].seller.rating | number | No | ||||
| data.products[].seller.review_count | integer | No | ||||
| data.products[].seller.username | string | No | ||||
| data.products[].status | string | No | active, created, running | running | Status is the listing's own lifecycle state: active, created, or running. A terminal "sold"/"sold out"-style value almost certainly also exists but was not observed in live testing. | |
| data.products[].title | string | No | ||||
| data.products[].transaction_type | string | No | AUCTION, GIVEAWAY, BUY_IT_NOW | AUCTION | TransactionType distinguishes how a listing is sold: AUCTION, GIVEAWAY, or BUY_IT_NOW. | |
| data.url | string | No | ||||
| 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/whatnot/live/6ddb7fd2-43bb-44e0-8ee8-6656e82fa26a" \
-H "x-api-key: $CRAWLORA_API_KEY"