Skip to content

GET /v3/vendor/products/:id/pull-preview — dry-run a pull

GET
/v3/vendor/products/{productId}/pull-preview
curl --request GET \
--url 'https://api-ha-prod-p8.handbid.dev/v3/vendor/products/5001/pull-preview?emergency=0' \
--header 'Authorization: Bearer <token>'

Dry run — no mutation. Preview what pulling this package would do: which reservations are withdrawable now, which are protected by the notice window, and any bidConflicts / soldConflicts that would block a clean pull. noticeDays is the standard notice window (60).

Pass emergency=1 to preview an emergency pull (bypasses the notice window).

Errors: 404 not_found (not in your catalog), 401 / 403 as elsewhere.

productId
required
integer
Example
5001
emergency
integer

0 = standard preview (default), 1 = preview an emergency pull.

Example
0

Dry-run pull preview (no state was changed).

Media type application/json
object
Example
{
"noticeDays": 60,
"withdrawable": [],
"protected": [],
"bidConflicts": [],
"soldConflicts": []
}

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.

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."
}