Skip to content

GET /v3/user/my-auctions — tri-state

GET
/v3/user/my-auctions
curl --request GET \
--url 'https://api-ha-prod-p8.handbid.dev/v3/user/my-auctions?whitelabelId=%7B%7BwhitelabelId%7D%7D&limit=20' \
--header 'Authorization: Bearer <token>'

NEW (HAN-1587, 2026-05-19). Replaces V2 GET /user/my-auctions. Tri-state view: auctions the caller relates to across manager / bidder / guest roles, in a single response. Distinct from /v3/bidder/my-auctions (bidder-only).

Response: { auctions: [AuctionCard...], totalCount }. Each row is a standard AuctionCardSerializer card + userStatus extra field:

  • manager — caller has an organization_admin_user_relation row with roleId >= ROLE_ID_MANAGER (4).
  • bidder — caller has an auction_user_relation row with isBidder=1.
  • guest — caller has an auction_user_relation row with status='guest', isComing=1, isBidder=0 (matched by userId OR email).

Params:

  • whitelabelId — REQUIRED, scopes to one whitelabel.
  • organizationId — optional, narrows within the WL.
  • role OR permission_level — optional filter. Either name accepted; role takes precedence when both present. BOTH validated against {manager, bidder, guest} — invalid value on either → 400 with per-param error message.
  • role=bidder (or permission_level=bidder) INCLUDES manager rows — V2 quirk preserved (“managers can also bid”). Documented; may surprise callers expecting strict bidder-only.

V2-parity behaviors:

  • No statusId filter (sees auctions in any status, including setup/archived).
  • No isTestAuction filter (V2 doesn’t filter test auctions for manager UI).
  • itemCount uses an inline COUNT(items) subquery with customDonation exclusion to match V2 byte-for-byte.

Sort: timerEndTime DESC, id DESC.

Cache: per-{userId, whitelabelId, organizationId, role, limit, offset}, 15s TTL, tags V3CacheTags::userMyAuctions($userId) + V3CacheTags::whitelabel($wlId).

Errors: 401 anonymous, 400 missing/invalid whitelabelId, 400 invalid role / permission_level value.

whitelabelId
string

REQUIRED. Scopes to one whitelabel.

Example
{{whitelabelId}}
limit
integer

Default 20, range 1-100.

Example
20

Successful response

Media type application/json