Skip to content

Whatnot Seller

CutX includes a complete seller suite for Whatnot live commerce sellers.

GET /api/inventory?status=available&category=trading_cards&search=pokemon&limit=50&offset=0
Authorization: Bearer <token>
ParamTypeDescription
statusstringavailable, assigned, sold, returned
categorystringFilter by category
searchstringName search (ILIKE)
limitnumberMax 200, default 50
offsetnumberPagination offset
POST /api/inventory
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "Vintage Pokemon Booster Box",
"category": "trading_cards",
"condition": "very_good",
"cost_basis": 150.00,
"estimated_value": 350.00,
"quantity": 1,
"sku": "PKM-VTG-001",
"tags": ["pokemon", "sealed", "vintage"]
}
GET /api/inventory/<id>
PUT /api/inventory/<id>
DELETE /api/inventory/<id>

Items can only be deleted when in available or returned status.

available → assigned (added to show) → sold (payout matched)
↑ │ │
└──────────────┘ (removed from show) │
↑ │
└── returned ←───────────────────────────┘
GET /api/shows?status=planning&limit=20
Authorization: Bearer <token>
POST /api/shows
Authorization: Bearer <token>
Content-Type: application/json
{
"title": "Saturday Night Rummage Auction",
"category": "estate_garage",
"scheduled_date": "2026-03-15",
"scheduled_time": "19:00",
"timezone": "America/New_York",
"duration_minutes": 120,
"segments": [
{ "name": "Trading Cards", "description": "Vintage Pokemon lot" },
{ "name": "Mystery Boxes", "estimated_duration_minutes": 30 }
]
}
GET /api/shows/<id>
Authorization: Bearer <token>

Returns show details with all assigned items.

POST /api/shows/<id>/items
Authorization: Bearer <token>
Content-Type: application/json
{
"items": [
{ "item_id": "uuid", "sort_order": 1, "segment": "Trading Cards", "starting_bid": 5.00, "bin_price": 25.00 },
{ "item_id": "uuid", "sort_order": 2, "segment": "Mystery Boxes" }
]
}

Items automatically transition to assigned status.

DELETE /api/shows/<id>/items
Content-Type: application/json
{ "item_id": "uuid" }

Item resets to available status.

POST /api/payouts/import
Authorization: Bearer <token>
Content-Type: multipart/form-data

Upload a Whatnot payout CSV (max 10 MB). The importer auto-detects column names and matches sales to inventory items by name.

GET /api/payouts
Authorization: Bearer <token>
GET /api/analytics/dashboard
Authorization: Bearer <token>

Response (200):

{
"totalInventoryValue": 15000.00,
"totalCostBasis": 8500.00,
"totalRevenue": 12000.00,
"totalProfit": 3500.00,
"itemsSold": 85,
"avgMargin": 0.41,
"showsCompleted": 12,
"avgViewers": 45,
"recentShows": [],
"topCategories": []
}

The CutX Companion extension (Manifest V3) adds functionality on whatnot.com:

POST /api/extension/sales
Authorization: Bearer <token>
Content-Type: application/json
{
"items": [
{ "item_name": "Pokemon Booster", "sale_price": 45.00, "buyer_username": "buyer123", "order_id": "WN-123" }
]
}
POST /api/extension/competitor
Authorization: Bearer <token>
Content-Type: application/json
{
"seller_name": "CompetitorSeller",
"category": "trading_cards",
"viewer_count": 150,
"items_sold": 23,
"total_sales": 890.50,
"top_items": [{ "name": "PSA 10 Charizard", "price": 250 }]
}