Skip to main content
Protocol reference. The current sandbox uses fictional fixtures and deterministic decisions, not production prompt evaluation. The retention and production processing contract below does not establish that those production services are available. Use only synthetic test data. Start with the runnable quickstart and sandbox support matrix.
A check works best when it sees the request your model receives. Some prompts carry personal data about your users or other people, and some platforms cannot send prompt text at all. The check’s prompt_handling lets you choose how much text Reflections receives, and how long it keeps it.

The three modes

Reflections never claims to have read text it did not receive. Receipts state their assurance, and in withheld mode the check’s text-based rules are checked on the output instead.

Full

Send the text as is. Resolution finds talent by name, alias or indirect reference, and the license’s rules are checked against what the request asks for before you spend anything on generation. Use full unless you have a reason not to.

Redacted

Remove personal data about end users and third parties before you send the text. Keep everything the check needs: the talent’s name, the scene, the product, the words to be spoken. For example, “A birthday message from Maya Okafor to my son Tom Ellis at 14 Birch Lane” becomes “A birthday message from Maya Okafor to my son [person] at [address]”.
Keep the mapping from placeholders to values on your side; Reflections never receives it. The request_digest covers the text exactly as you sent it, so in this mode it covers the redacted form. See Bind the request. Cost: a rule that depends on what you removed cannot be checked at the check. The generation check still sees the output itself, and the transcript of a speech output, so rules about what was made are still checked there.

Withheld

Send no text at all. Send each text input with its role and the sha256 of its UTF-8 bytes, with media_type: "text/plain", in place of text, and name each talent the request invokes in talent. The planned protocol also accepts media files and URLs with digests. For the prompt “Maya Okafor holding our new trail shoe on a rocky ridge at sunrise”, its check body is:
The file reference below is planned and unsupported in test mode. The sandbox accepts media sha256 and media_type as digest metadata only; it never fetches URLs, resolves talent from media or evaluates its content. Use the quickstart for a supported check.
The digest then binds the exact text without Reflections seeing it: each text input enters the request_digest as { "role", "sha256", "media_type" }, like a media input. Cost:
  • Reflections cannot find talent by name in text it never receives. Send talent explicitly, and match prompts on your side with the name index so you know when to.
  • Rules that need the text, such as “Do not imply she endorses any product other than the one shown”, are checked on the output instead. You pay for a generation that may then be denied.
  • Indirect references in text are never resolved, because the check never reads the text. Outputs are not screened for them either: send talent for every person the request means.
withheld is a choice for the platform to make. The decisions stay exact about what was checked: the receipt never claims Reflections read the prompt.

Retention

Reflections deletes prompt text as soon as it can: With retention: "none", a reviewer of an escalated check cannot read the prompt later, and a dispute about a deny has only the digest to go on. The privacy page has the full retention table, including outputs and receipts.

End users and metadata

  • end_user.id is a stable ID scoped to your platform, such as usr_48213. Never send an email address, a phone number or a name. Reflections stores only an HMAC of it.
  • end_user.type is consumer (the default) or business.
  • metadata is for your own references. Never put personal data in it.
For prompts and outputs, Reflections processes data on your behalf under a data processing agreement. For talent identity data, such as face and voice templates, Reflections is the controller, acting for the talent.

Privacy

What is sent, what is kept, and for how long.

Bind the request

How the digest binds what the model receives.

Resolve talent

Explicit IDs and the local name index.

Privacy in the Standard

Data minimization requirements on both sides.