GET /v3/vendor/products/:id — product detail
const url = 'https://api-ha-prod-p8.handbid.dev/v3/vendor/products/5001';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/vendor/products/5001 \ --header 'Authorization: Bearer <token>'Full detail for one package in your vendor catalog. Superset of the list-card summary fields plus the long-form redemption content.
Detail-only fields: finePrint, redemptionInstructions, validityDetails, restrictions, location, reservationAuctionCount (how many auctions currently hold a reservation on this package).
Errors: 404 not_found — the id is not in your catalog. A package belonging to another vendor is deliberately indistinguishable from absent (same 404, same message), so a foreign id never leaks existence. 401 / 403 as elsewhere.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Example
5001Responses
Section titled “ Responses ”The package detail.
object
Example
{ "id": 5001, "productCode": "WIN-1", "name": "Napa Getaway", "status": "available", "isPublic": true, "cost": 2000, "retailValue": 4500, "inventoryQuantity": 3, "reservedCount": 1, "taxonomyId": 12, "imageUrl": null, "finePrint": "Blackout dates apply around major holidays.", "redemptionInstructions": "Email concierge@winspire.com with two preferred travel windows.", "validityDetails": "Redeem within 18 months of purchase.", "restrictions": "Not combinable with other offers.", "location": "Napa Valley, CA", "reservationAuctionCount": 1}No or invalid Bearer token.
Unified error envelope. retryAfter is present only on transient (429 / 503) responses.
object
Stable machine-readable error code (e.g. unauthorized, forbidden, not_found, validation_error, unavailable).
Human-readable explanation.
Seconds to wait before retrying. Present on 429 and 503.
Example
{ "error": "unauthorized", "message": "A valid Bearer token is required."}The token’s organization is not a marketplace vendor.
Unified error envelope. retryAfter is present only on transient (429 / 503) responses.
object
Stable machine-readable error code (e.g. unauthorized, forbidden, not_found, validation_error, unavailable).
Human-readable explanation.
Seconds to wait before retrying. Present on 429 and 503.
Example
{ "error": "forbidden", "message": "Your organization is not a marketplace vendor."}Not found in your catalog (or belongs to another vendor).
Unified error envelope. retryAfter is present only on transient (429 / 503) responses.
object
Stable machine-readable error code (e.g. unauthorized, forbidden, not_found, validation_error, unavailable).
Human-readable explanation.
Seconds to wait before retrying. Present on 429 and 503.
Example
{ "error": "not_found", "message": "Product not found in your catalog."}