Skip to content

GET /v3/vendor/products/:id — product detail

GET
/v3/vendor/products/{productId}
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.

productId
required
integer
Example
5001

The package detail.

Media type application/json
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.

Media type application/json

Unified error envelope. retryAfter is present only on transient (429 / 503) responses.

object
error
required

Stable machine-readable error code (e.g. unauthorized, forbidden, not_found, validation_error, unavailable).

string
message
required

Human-readable explanation.

string
retryAfter

Seconds to wait before retrying. Present on 429 and 503.

integer
Example
{
"error": "unauthorized",
"message": "A valid Bearer token is required."
}

The token’s organization is not a marketplace vendor.

Media type application/json

Unified error envelope. retryAfter is present only on transient (429 / 503) responses.

object
error
required

Stable machine-readable error code (e.g. unauthorized, forbidden, not_found, validation_error, unavailable).

string
message
required

Human-readable explanation.

string
retryAfter

Seconds to wait before retrying. Present on 429 and 503.

integer
Example
{
"error": "forbidden",
"message": "Your organization is not a marketplace vendor."
}

Not found in your catalog (or belongs to another vendor).

Media type application/json

Unified error envelope. retryAfter is present only on transient (429 / 503) responses.

object
error
required

Stable machine-readable error code (e.g. unauthorized, forbidden, not_found, validation_error, unavailable).

string
message
required

Human-readable explanation.

string
retryAfter

Seconds to wait before retrying. Present on 429 and 503.

integer
Example
{
"error": "not_found",
"message": "Product not found in your catalog."
}