> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reflections.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The OpenAPI document at /api-reference/openapi.yaml defines the target contract. Its x-reflections-availability field and each operation's availability notice identify supported test and live forms. Do not infer implementation from a schema or code sample. Live keys support account details, reads of the licenses the calling account holds as licensee or issued as talent (GET /v1/licenses?role=issuer), and GET /v1/generations?license=… for the state of outputs under such a license (summaries only: no prompt, reference, bytes or metadata). Live image checks, submissions and receipts are built but not activated: until activation, a live POST /v1/checks or /v1/generations returns 403 live_not_activated, which must not be retried. Discovery and JWKS are at the origin root (https://app.reflections.ai/.well-known/...), not under /v1.
> Three rules hold everywhere: a decision is never an error (deny and escalate are 200 responses, and a live check still evaluating is a 202 with status checking); generate nothing for a named talent without an allow; deliver nothing until the generation is allow.
> The sandbox accepts personal rk_test_ keys. Persist a separate Idempotency-Key and body for each logical /v1 POST; retry an unknown outcome with the same key and body. OAuth and Talent API MCP remain planned.

# Image quickstart

> Run the supported image sandbox and test candidate and hold behavior.

The [main quickstart](/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:

```json theme={null}
{
  "inputs": [
    {"role":"prompt","text":"Maya Okafor lacing up trail shoes on a rocky ridge at sunrise"},
    {"role":"rewritten_prompt","text":"Photoreal, Maya Okafor kneeling to lace grey trail shoes, rocky ridge, golden-hour light, wide shot"}
  ],
  "use": {"modality":"image","kind":"depiction","purpose":"advertising","commercial":true,"channels":["social"],"territories":["US"]},
  "end_user": {"id":"usr_48213"},
  "execution": {"provider":"example-image-provider","model":"image-model-3","candidates":4}
}
```

## 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](/sandbox#resolve-an-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](/build/submitting-outputs) and [provenance](/build/embedding-provenance) guides describe
the target contract. [Sandbox](/sandbox) owns current availability and size limits.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.