Skip to main content
Planned protocol reference. Usage records, reconciliation, statements and payment recording are not served by the current Talent API sandbox. The examples below cannot yet be run against it. Start with the runnable quickstart and sandbox support matrix.
Licenses that pay the talent per output, per second or per impression are settled from the usage you report. Reflections reconciles your reports against its own record of checks and generations, and issues a monthly statement per license. Reflections never moves money; the licensee pays the talent’s payee and records the payment.

Know what to report

A usage_report obligation on a check, generation or session says which unit to report and how soon:
Report each subject within within, counted from the generation’s decision or the session’s end. Each record names one subject: the generation (gen_…) or session (ses_…) it settles. The account that knows the number reports it. The platform reports outputs, seconds and characters. Placements and impressions are usually known to the licensee, who reports them, or the platform does when it publishes for the licensee. Send Reflections-Account when you report for a connected licensee. A record counts against one license. When a generation or session was decided under several licenses, as with two talent in one output, send one record per license and set license on each. With one license, license is optional.

Send a batch

Send up to 1,000 records per call to POST /v1/usage_records. Give each batch its own Idempotency-Key, derived from your batch ID, so a retry never counts twice.
Each record is accepted or rejected on its own. The response lists them in the order you sent:

Handle rejections

An outside_scope placement means the output was used where the license does not cover it. The rejection does not undo the placement; take it down.

Correct a record

Records never change. To fix one, send a new record with correction_of set to the record it replaces. The new record replaces the old one in reconciliation.

Reconciliation and statements

Reflections records what it observed: every allowed generation, every session’s duration, every script’s length. Each statement line shows reported (yours), observed (Reflections’) and billable, the greater of the two. Under-reporting is visible without trusting either side.
reconciliation.result is matched, under_reported or over_reported. When a statement is final for the month, the licensee receives statement.issued. The licensee pays the talent’s payee directly, then records it with POST /v1/statements/{statement_id}/payments. The statement becomes paid when confirmed payments reach amount_due, or disputed if the talent’s side disputes it. Daily test statements are a proposed test capability. The current sandbox does not generate statements or accept usage records.

What can go wrong

Reported usage, statements and payments are kept for 7 years, so the talent and their representatives can audit every license.

Usage and settlement

Usage records, reconciliation, statements and audit.

Report usage

The endpoint reference.

Brands and agencies

Reading statements and recording payments.

Real-time sessions

Ending a session and reporting its seconds.