Live keys can read the licenses the calling account holds as licensee, and their current signed
revision digests. Licenses the account issued as a talent are not listed yet. Sandbox licenses and revisions are fictional fixtures. The broader lifecycle and
revision contract below remains planned for live mode.
Start with the runnable quickstart and sandbox support matrix.
Live license reads
GET /v1/licenses and
GET /v1/licenses/{license_id} return real licenses
only when the calling account is their sole licensee. Delegated connections and representative
access remain planned. Use the IDs returned by your list call; another account’s license is not found.
current_revision, revision_number and terms_digest identify the current signed revision.
The digest covers the full signed terms, not the partial scope returned here. Live revision
retrieval is unavailable, so this response cannot reconstruct the signed document.
Live scope returns window, required_attributes, release_policy and final_deliverables, plus
external_creation only when that grant is explicitly signed.
Signed channel and territory labels do not safely map to protocol enums and are omitted. Omitted
fields grant nothing. No private reference IDs or source media are returned.
external_creation: "images.v1" records prospective permission for still images made in the
licensee’s tools with inputs it lawfully holds, subject to request and output checks and mandatory
talent release. It does not permit exporting private references. Older licenses without this
signed term do not acquire it from make, a creation profile or offPlatformProduction. This is
reader support only: no issuance route can add the term yet, and live checks, output submission
and receipts remain unavailable.
An accepted license is scheduled before its window, active within it and expired at or after
its end. Issued licenses are pending_acceptance; declined, revoked and void are preserved.
These reads do not run a precheck, evaluate an output or issue a live receipt.
What a license holds
When several licenses could cover a use, a check uses the narrowest one that allows it. Name one
with
license on the check to choose.
Statuses
The planned lifecycle sends webhooks:
license.issued,
license.accepted,
license.suspended,
license.resumed,
license.expired,
license.declined and
license.revoked.
Revisions
Each signed version of a license is a license revision, and a revision’s terms never change. Changing a license means signing a new revision:source_kind is issue, change_request,
amend or renew. A revision carries signatures, each with the party (talent,
representative or licensee), the signer’s name, method: "passkey" and signed_at, and a
document_url for the document as a person reads it. Its status is pending_acceptance,
current, superseded or declined.
Both sides sign every revision; the first is signed with the license itself. When the talent’s
side signs a later one, the license’s pending_revision names it and the licensee receives
license.revision_pending. The licensee
accepts or declines it at acceptance_url, and current_revision stays in force until it accepts.
On acceptance, current_revision moves to the new revision and you receive
license.revised. New checks use it at once.
Authorizations already issued keep the revision they name. If the licensee declines, you receive
license.revision_declined and the license
keeps its current revision. To narrow a license without waiting, the talent’s side suspends or
revokes it.
On the talent’s side, a representative can prepare terms as a
license draft. A draft grants nothing: a person
signs it with a passkey on a hosted page, and only then does it become a license or a revision.
Terms and scope
A revision returns the license twice:termsis the signed document exactly as signed, with its own camelCase field names. This is what the talent signed and whatterms_digestcovers.scopeis the same terms in normalized, snake_case form, generated fromtermsso your code can read them. When the two disagree,termswins.
scope also carries facets, modalities, kinds, purposes, commercial, platforms,
sessions, material_access, sublicense, training, disclosure, attribution,
escalation_window, post_revocation and compensation. Reasons and findings point at terms by
address, such as license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.channels.
The terms digest
terms_digest is sha256: followed by the lowercase hex SHA-256 of the terms object in its
tlp-json-1 canonical form: UTF-8 JSON, object keys sorted by Unicode code point, no insignificant
whitespace, numbers in shortest round-trip form, and no duplicate keys. Every check, receipt and
authorization carries the digest of the revision it relied on, so you can prove which document a
decision rests on. Recompute it to confirm you hold that document:
terms, never scope.
Checked and recorded terms
Every term is eitherchecked (Reflections enforces it at the check, the generation or a session
sample) or recorded (signed and shown, not enforced). A revision’s enforcement list states which,
term by term, with the stage where each checked term is enforced. Exclusivity and conflicts are
recorded. See What we enforce.
After a revocation
post_revocation.policy says what happens to outputs already released if the license is revoked:
See Revocation.
Compensation
compensation says what the licensee owes the talent: type is none, flat, per_unit or
revenue_share. A per_unit rate names its units (outputs, seconds, characters,
placements or impressions), a rate and per. A license can set a minimum and a schedule
(on_acceptance, monthly or quarterly). Amounts are integers in the currency’s smallest unit,
with a lowercase ISO 4217 code. Reflections computes statements from it and never moves money. See
Usage and settlement.
Example: Ridgeline’s license K7Q4M2
The signed revision, withscope trimmed to the fields above. terms is complete, so its
tlp-json-1 digest is the terms_digest shown:
Related
Decisions
How a check is decided against a revision.
What we enforce
Checked terms, recorded terms and assurance.
Retrieve a license revision
The revision object in the reference.
Brands and agencies
Requesting, accepting and holding licenses.