Protocol reference. The sandbox represents fictional talent and licenses under your test
account. OAuth delegation, mandates and production account roles described below are not
available through the current Talent API.
Start with the runnable quickstart and sandbox support matrix.
The chain
A talent, or a representative acting for them, signs a license with a licensee. The licensee connects the platforms it generates on. The platform runs checks, each attributed to one end user.Talent
A talent is a person whose name, likeness and voice are protected through Reflections. The talent sets their public posture, signs or declines licenses, reviews escalations, and revokes consent. See Talent and facets.Representatives
A representative is an account that acts for a talent under a mandate: an agency, a manager, an estate, a union or a legal representative. The mandate lists the representative’s powers:
A talent’s representatives appear in
talent.representation[], with role and powers. The
talent can end a mandate at any time. Ending one is a revocation with
scope: "mandate".
Representatives work in the Talent Portal or through the talent side of the API, which reads
their mandates and checks each call against them. See
Talent representatives.
Licensees
A licensee is the account that holds a license. Every check names exactly one licensee incheck.licensee. There are two kinds of license, and the difference is who the licensee is.
A platform license covers end users only when its terms say so:
scope.sublicense is
end_users_personal, which allows personal, non-commercial outputs. A platform cannot use its own
license for a customer’s commercial work.
Platforms
A platform is the account that generates and calls the API:POST /v1/checks,
POST /v1/generations, POST /v1/sessions. Every check names exactly one platform in
check.platform. A license can limit which platforms may run checks under it with
scope.platforms: any_connected, or listed with account IDs.
A platform acts for a licensee through a connection. The licensee approves it through OAuth
2.0 (authorization code with PKCE), seeing the platform’s display_name, the scopes and which
licenses it may use (all or listed). The platform receives connection.created and then sends
Reflections-Account with the licensee’s ID. Without an active connection, the call fails with
403 account_not_connected. Either side can end a connection, and Reflections can too
(revoked_by). See Authentication.
End users
An end user is the person your product acts for. Sendend_user.id on every check made for a
person. End users are attributed on checks, but they are never licensees and never hold licenses.
Send a stable ID scoped to your platform, never an email or a name. Reflections stores only an HMAC of it. See
Privacy.
Reflections
Reflections runs the license server. It decides checks, generations and session samples against the signed license revision, signs receipts, and reviews escalations under platform licenses. It cannot sign, accept or widen a license.Accounts
Brands, agencies, studios, platforms and representatives all use oneaccount object. Its
types describe the account to talent and give no permission. Its capabilities, such as
hold_licenses, run_checks, act_for_licensees or represent_talent, are what the account may
do, and Reflections approves each one. Read yours with
GET /v1/account.
Example: Northlight checks for Ridgeline
Ridgeline holds licenseK7Q4M2 from Maya Okafor and has connected Northlight. A Ridgeline
designer, usr_48213 on Northlight, asks for a campaign image. Northlight sends the check with its
own key and Ridgeline’s account ID:
deny.
Who answers for what
Related
Licenses
Signed revisions, statuses and terms.
Brands and agencies
Hold licenses and connect the platforms you use.
Talent representatives
Mandates, reviews, revocation and audits.
Authentication
Keys, scopes,
Reflections-Account and OAuth.