Vieunite.Developers
Open quickstart

Reliability

Find the problem and the next step.

Start with the failing request’s status and response body. They tell you whether to fix the request, ask the editor to choose again, or retry later. Keep the request ID if you need help tracing it.

Problem Details

API errors return JSON with the content type application/problem+json. Use status and the code at the end of type in your handling logic. detail explains this particular failure; its wording can change.

400 responseJSON
{
  "type": "https://collection.vieunite.com/problems/invalid_request",
  "title": "Invalid request",
  "status": 400,
  "detail": "The cursor is invalid.",
  "request_id": "req_95afd55a160fbb748d1c69dc"
}

Every response also carries X-Request-ID. You may supply your own request ID header to connect Vieunite requests to CMS traces.

Error codes

StatusProblem codeRecommended handling
400invalid_requestFix parameters, cursor, origin or request semantics. Do not retry unchanged.
401unauthorizedCheck the environment, credential, expiry and revocation state.
403forbiddenCheck token type, scopes, plan, rights and origin.
404not_foundCheck the ID and environment. The record may also be hidden from this tenant.
409conflictRead detail. The session state or idempotency key conflicts with this request; do not retry it unchanged.
410goneThe Picker session or temporary code is no longer usable. Start a fresh selection.
422validation_errorCorrect the request shape or field constraints.
429rate_limit_exceededApply bounded exponential backoff and jitter.
5xxServer failureRetry safe operations with backoff and retain the request ID.

Retry policy

Retry safe reads

For a timeout, temporary 5xx or 429, wait before retrying and increase the delay between attempts. Honour Retry-After if present and set an attempt limit.

Retry redemption with the same key

If the response is uncertain, resend the same body and Idempotency-Key. Generate neither a new key nor a parallel redemption request.

Do not retry unchanged

400, 401, 403, 404, 409, 410 and 422. Correct state or request data first.

A timed-out write may already have succeeded. Only retry a write automatically when that operation documents idempotency. A new Picker session starts a new selection flow; it does not recover the result of an earlier redemption.

These API errors are separate from image-host responses. If a signed image URL has expired, ask your backend for a fresh URL and inspect any item-level denial. The image host may return 403, not an API Problem Details response.

Important limits

AreaLimit
Common page size1–100 items; endpoint defaults vary.
Batch catalogue request100 IDs.
Reference resolve or validate100 references.
Signed asset request100 requested artwork items.
Picker session lifetime60–900 seconds.
Picker selection countA configured cap of 1–100, or 0 in multiple mode. Completion accepts at most 1,000 references; resolve and asset calls still need batches of 100.
Signed asset URL request lifetime60–3,600 seconds.
Picker redemption idempotency key191 characters.

Troubleshoot by symptom

What you seeCheck firstWhat to change
Picker never opensThe CMS session request in the Network panel.Fix login or CSRF errors, then check that the JSON contains data.session_id and data.picker_url.
invalid_picker_originThe launch URL and SDK pickerOrigin.Use the same Test or Production origin for the backend API, SDK and Picker. Check protocol and port too.
Selection fails on confirmationThe CMS redeem response and its upstream request ID.Check session ownership and expiry. For an uncertain network response, retry on the backend with the original idempotency key.
Expected artwork is missingSearch filters, current availability and credit-display support.Resolve the ID from your backend. Keep credit_display false unless your product can actually show attribution.
Image loads the wrong versionThe saved rendition and returned version_key.Request the saved key explicitly; do not replace it with the response’s physical variant.
Batch returns 200 but an image is missingEach resolve result’s status, or the asset response’s denied array.Keep successful items and handle the failed item by its reason. Ask for a new selection if the rendition is unavailable.

When asking for support, include the environment, endpoint, HTTP status, problem type and X-Request-ID. Leave out tokens, launch URLs, selection codes and signed URL query strings.

Search documentation

Start with “Picker”, “rendition”, or an endpoint path.
    Case study screenshot

    Screenshot preview