template_requirement: "optional" accept finished artwork
directly. Memory Mates and magazine covers have
template_requirement: "required", so their artwork must come from a
succeeded Batch Relay render. A render output follows the normal fulfillment
path; it is not a legacy composite product.
Availability
Send Test and Live requests tohttps://api.batchrelay.com. The stored API-key
record selects the lane. A render requires a published template owned by the API
account’s studio; an unknown or unpublished template fails without dispatching
work.
Create a render
POST /v1/templates/{template_id}/renders requires a studio-owned API account,
print_orders:write, and an Idempotency-Key. Inputs are keyed by immutable
slot IDs. Every input contains exactly one of asset_id or value; the API
never infers input order from a template label.
Omit revision_id to use the latest published revision. The response always
returns the exact immutable template.revision_id chosen for this job. Save it
to repeat the same edition later; pass it explicitly when you must pin a render.
asset_id is a managed private asset reference. Create or resolve one with
POST /v1/assets/ingest, then reuse that ID instead of re-supplying its original
URL for each render. URL ingestion copies bytes into private temporary
fulfillment storage; ingesting an existing asset_id reuses its bytes without a
copy. Raw R2 keys and private delivery lease URLs are never render inputs.
Each returned render artifact is a managed asset_id. Once the render reaches
succeeded, a standard print may place that ID in the matching print-order
asset role. A double-sided output must attach both the front and back
artifacts.
For a Memory Mate or magazine-cover order, place the succeeded artifact’s
asset_id in the artwork role and include the matching render’s render_id
as template_render_id. A raw URL or an unrelated managed asset does not meet
that product’s required template contract.
Poll the render and use all surfaces
ReadGET /v1/renders/{render_id} with print_orders:read. artifacts is
always an array: a normal print commonly returns one artwork member, while a
double-sided product can return front and back atomically. Treat surface_id
as the output identity and fulfillment_role as the placement contract.