GET /v3/bidder/my-cart
const url = 'https://api-ha-prod-p8.handbid.dev/v3/bidder/my-cart?whitelabelKey=handbid&limit=20';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api-ha-prod-p8.handbid.dev/v3/bidder/my-cart?whitelabelKey=handbid&limit=20' \ --header 'Authorization: Bearer <token>'NEW (HAN-1849, 2026-05-21). Shopping-cart view. Unified post-close list of paid + unpaid purchases across the user’s visible auctions, with a totals block for the cart-icon badge. Replaces the shape of the legacy /v3/bidder/my-items endpoint (which used the wrong mental model).
Auth: required.
Response shape:
{
"items": [
{
// ItemCard base fields...
"itemType": "silent", // granular DB enum — sealedBid, ticket, forSale, etc.
"auctionName": "Spring Gala", // auction context (5 fields)
"auctionStatus": "closed",
"auctionEndTime": 1716232000,
"isCurrent": false, // a.statusId IN (2,3,4,5,8) = in-flight
"purchaseId": 998877,
"purchaseAmount": "250.00",
"purchasedAt": 1716230000,
"purchaseQuantity": 1,
"receiptId": 778899,
"isPaid": false
}
],
"totalCount": 12,
"totals": {
"unpaidAmount": "245.00",
"paidAmount": "180.00",
"currency": "USD"
}
}
No itemType filter (unlike /my-activity’s purchases[] which excludes auction-style types). Cart shows EVERYTHING: won silent items, ticket purchases, donations, raffles — anything the user has a purchases row for.
Sort: unpaid first (COALESCE(r.paid, 0) ASC), then purchasedAt DESC within each group. Action-required surfaces top of the list.
isCurrent flag: lets iOS visually segment the cart into “current auction(s)” vs “previous auctions still in checkout window” via disclosure UX.
Auction scope: same as /my-activity and /my-auctions — whitelabel-scoped, status visible, closed grace-bounded.
Empty-set guard: returns {items:[], totalCount:0, totals:{unpaidAmount:"0.00", paidAmount:"0.00", currency:"USD"}} without issuing SQL.
Multi-currency: totals.currency is MAX(a.currency) across the user’s visible auctions — v1 approximation. Acceptable for the common single-currency case.
Cache: 30s TTL (longer than my-activity’s 15s — cart changes less often). Tags: userMyItems, userMyAuctions, plus auction(:id) for every auctionId in the response set.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Defaults to ‘handbid’ when omitted. Legacy whitelabelId also accepted.
Example
handbidDefault reads from whitelabels.myActivityPageSize (typically 20); range 1-100
Example
20Responses
Section titled “ Responses ”Successful response