Skip to main content

1. Start in Test Mode

Create an isolated anonymous session with no signup or copied API key:
The token is a short-lived secret. The Batch Relay CLI performs this bootstrap and secure local storage automatically when its first stateful command runs. For durable CI or account-owned sandbox records, create a key with print_orders:write and print_orders:read in the developer dashboard. Test API keys use the br_test_ prefix. Live API keys use br_. Send both to https://api.batchrelay.com. The durable credential record selects Test Mode or Live Mode after authentication; a request field cannot change it. See Keyless Test Mode for the raw HTTP session flow.

2. Preview provider compatibility

Use a provider-neutral prepared order. The image is already prepared in its required orientation. This sample uses print-5x7, whose template_requirement is optional. You may submit prepared artwork directly or use a render first. Designed products require a succeeded Batch Relay render. Do not send a legacy composite product as a fulfillment line.
Each print-order asset accepts exactly one of url or asset_id. The compatibility route is read-only. Quote creation copies a URL into managed storage; an existing asset_id is reused in place.
Compatibility returns one provider and one result per line. Batch Relay never splits an order or substitutes another lab.

3. Create a quote

Send the same wrapper to POST /v1/print-orders/quote with an Idempotency-Key when any asset uses url. The response freezes the provider, selection source, capability revision, recipe revision, price, expiry, and managed asset bindings. Save its id. The source URL can disappear after the quote succeeds without breaking the accepted order.

4. Submit the frozen quote

POST /v1/print-orders requires quote_id, the matching order, and an Idempotency-Key. It cannot change the provider selected at quote time. See the canonical OpenAPI document for the complete request and response schemas.