Skip to main content
The main quickstart is the runnable image path: use your test key, check Maya, submit a supplied inline PNG, retrieve its receipt and verify the JWS. It needs no paid model or SDK package. Run it before extending your integration.

Several candidates

Set execution.candidates to the number of outputs you intend to submit. Each candidate gets its own generation body with candidate_index from 0 through candidates - 1, and its own persisted idempotency key. A retry keeps that candidate’s body and key unchanged. Require the check’s decision to be allow before producing any candidate. Submit each output as artifact.data (base64), artifact.sha256 (the digest of the original bytes) and artifact.media_type. Require each generation’s decision to be allow before continuing. Do not release every candidate because one passed. For example, this four-candidate check includes the original and rewritten prompts. Submit it with a fresh persisted check key, then use its returned ID for each candidate:

Holds and denials

Use Jonah Reyes in a new check to exercise a held generation. It returns escalate and remains held until you resolve its escalation. Use Iris Calder or Dev Marlow to exercise a denied check. No generation should follow either denial. The sandbox uses fictional fixtures and deterministic decisions; it does not evaluate whether an uploaded image depicts the person or follows real signed terms. A test receipt is not a license for real content.

Planned production integration

File uploads, licensed reference downloads, model evaluation, webhooks and verification of an embedded C2PA manifest are not served by the current sandbox. Their output and provenance guides describe the target contract. Sandbox owns current availability and size limits.