> ## 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.

# Support

> How to reach Reflections, what to send with a question, and what never to send.

Email [developers@reflections.ai](mailto:developers@reflections.ai) for help with your integration:
errors you cannot explain, decisions you think are wrong, rate limit increases, and anything this
documentation does not answer.

The Talent API serves the fictional [sandbox](/sandbox) and three
[live account/license reads](/api-reference/introduction#test-and-live-mode). Start with the
[quickstart](/quickstart) for the test journey. Hosted conformance runs are not available.
No support response time or SLA is promised on this page.

## Before you write

* Check [status.reflections.ai](https://status.reflections.ai) for a current incident.
* Look up the error `code` in [Errors](/api-reference/errors), or the decision's `reasons[].code`
  in [Reason codes](/api-reference/reason-codes).
* For a sandbox problem, reproduce it with a supported endpoint and fictional inputs. For live
  reads, send request and object IDs without copying private license terms.

## What to send

| Include | Example |
| - | - |
| Request IDs, from the `Request-Id` header or `request_id` | `req_8f2k4m6p8r0t2v4x6z8b0d2f4h` |
| The IDs of the objects involved | `chk_3m7p4r6s9t0wxyhk5zba2q8v1n`, `gen_6s9t0wxyhk5zba2q8v1m3n7p4r`, `rvk_s9t0wxyhk5zba2q8v1m3n7p4r6` |
| Your account ID, and the licensee's if you sent `Reflections-Account` | `acct_7p4r6s9t0wxyhk5zba2q8v1m3n` |
| Mode and the `Reflections-Version` you sent | Test, `2026-10-15` |
| The endpoint, the HTTP status and the error `code` | `POST /v1/generations`, `409`, `generation_already_submitted` |
| When it happened, with the time zone | `2026-10-17T18:06:03Z` |
| What you expected, and what happened instead | "Expected `allow`; got `deny` with `identity_not_preserved`." |

Request IDs help trace a report. Use fictional prompts and artifacts in the sandbox and send IDs
instead of their contents.

The documented production privacy policy remains: for a `deny` or an escalation, the
prompt text is kept for 30 days for review and disputes, so there is no need to send it again,
unless the check sent `prompt_handling.retention: "none"`. For an `allow`, the text was deleted once
the check was decided; the receipt keeps its digest.

## What never to send

<Warning>
  Never send a secret key (`rk_live_…` or `rk_test_…`), a webhook secret (`whsec_…`), or an end
  user's personal data: names, email addresses, phone numbers, or prompts and outputs that contain
  them. Send request and object IDs instead. If you sent a secret by mistake, revoke or rotate it at
  once.
</Warning>

Do not send whole authorization or session tokens. The check or session ID identifies them.

## Rate limit increases

The proposed limits per account for a future live service are 200 checks per second, 50
generations per second, 1,000 concurrent sessions and 50 requests per second for everything else.
They are not current sandbox capacity guarantees or an offer of live access. For a sandbox limit
question, write with your account ID, the limit you need, your current peak, and when you expect it. See
[Rate limits](/api-reference/rate-limits).

## Decisions you disagree with

Sandbox decisions are simulated. Report an unexpected fixture result with its request ID.
For future live integrations, support can explain a decision and fix an evaluation defect. It cannot change a
license, widen it, or decide an escalation: those belong to the talent, their representatives, and
the reviewer named on the escalation. To ask for a wider license, use the `license_request` or
`license_change` remedy with [`POST /v1/license_requests`](/api-reference/license-requests/request-a-license).

## Security reports

Report vulnerabilities to [security@reflections.ai](mailto:security@reflections.ai), not to
developer support. See [Security](/production/security).

## Related

<Columns cols={2}>
  <Card title="Monitoring" icon="chart-line" href="/production/monitoring">
    Request IDs, alerts and the status page.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/api-reference/errors">
    Every error code and what it means.
  </Card>
</Columns>


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