Skip to main content
Protocol reference. The sandbox can return example obligations for fictional licenses. Production delivery, deletion, usage reporting and provider enforcement described below are not supplied or certified by the sandbox. Start with the runnable quickstart and sandbox support matrix.
An allow is conditional. Obligations say what must happen for the use to stay licensed: pass rules to the model, submit outputs, hold them for release, label them, embed the receipt, keep material out of training, delete it, report usage. Each obligation is typed, so your code can meet it without reading prose.

Where obligations appear

Every obligation has a type and only the fields listed for that type. Any obligation can carry term, the address of the license term it comes from, such as license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.neverExtras.

Unknown types are unmet

The obligation types are a registry, extended by a published change to the Talent License Protocol. If a response carries a type your code does not know, treat it as unmet: do not generate, and do not deliver. Never skip an obligation because you do not recognize it.

generation_check

Fields: required (all or sampled), sample_rate (0 to 1). Submit outputs as generations before anyone sees them. With all, submit every output. With sampled, submit at least the share in sample_rate, chosen at random rather than by content. Deliver a submitted output only when its decision is allow.

hold_until_release

Fields: reviewer (talent, representative or reflections). A person releases each output. Its generation returns escalate with status: "held". Keep the clean output private, and deliver it only after generation.released. A held output that nobody reviews expires after 7 days and can never be released. See Escalation.

draft_watermark

No fields. Anything you show before release, such as a preview for the person who asked for it, carries a visible draft watermark. Without this obligation, show nothing before release. Deliver the clean output only after release.

generation_instructions

Fields: instructions (a list of strings). Include every instruction, as written, in what the model receives, for example in its system text. Instructions say what must stay (“Keep Maya Okafor the same person: face, skin tone and build unchanged.”) and what must not appear (“Do not show alcohol or tobacco.”). Do not paraphrase or drop any of them.

disclosure

Fields: level (licensed, brand or scope), text, placement (visible, metadata or both). Label the output with text, exactly as given. licensed says the person’s likeness is licensed; brand adds who licensed it; scope adds the use. With visible, show the label with the output wherever it appears; with metadata, write it into the file’s metadata; with both, do both. Embedding provenance shows where.

attribution

Fields: text. Show the credit line in text, as written, where the output appears.

c2pa_manifest

No fields. Before you deliver, add the generation’s c2pa object to the output’s C2PA manifest as an assertion under its label, ai.reflections.license. You stay the C2PA claim signer for your output; the receipt inside is signed by Reflections. See Provenance.

no_training

Fields: material (references, voice or outputs). Do not use the covered material to train or fine-tune any model, yours or a provider’s. A license can change this only with scope.training: "permitted".

delete_material

Fields: material (references, voice or outputs), within (an ISO 8601 duration). Delete the covered material, including copies held at model providers, within within, counted from the decision that carried the obligation. Copies at providers, such as a voice, are listed in the facet’s provider_bindings.

usage_report

Fields: units (outputs, seconds, characters, placements or impressions), within. Report usage in units with a usage record that names the generation or session. within is counted from the generation’s decision, or for a session from the session’s end.

Example: an image for Ridgeline

A check for a Ridgeline campaign image returns these obligations:
Northlight adds the three instructions to the model’s system text, submits all four candidates, and shows Ridgeline’s designer watermarked previews while Maya Okafor reviews them. When she releases one, Northlight embeds the receipt, writes the label into the file and shows it beside the image, keeps the output out of its training data, and reports each placement within 30 days.

Decisions

What an allow carries.

Obligations registry

The registered types and how new ones are added.

Submitting outputs

Uploads, candidates and findings.

Embedding provenance

The C2PA assertion and the disclosure label.