Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

Your secret key, rk_test_… or rk_live_…, sent as Authorization: Bearer <key>. Keep it on your server. Restricted keys carry only the scopes you give them.

Headers

Reflections-Version
string

The dated API version. Defaults to the version your account is pinned to.

Example:

"2026-10-15"

Idempotency-Key
string

A unique key for this operation, up to 255 characters. In test mode, POST keys are scoped to your account and mode and bind the endpoint and body for 24 hours. A different endpoint or body with the same key is refused.

Initial live check and generation creation require a nonempty key. Each operation has a separate account-scoped namespace; retain the same API key, body and idempotency key for retries within 24 hours of creation. A pending check returns 202 with status: "checking". Completed checks replay their sealed response; successful generation POSTs replay the original accepted 202, so use GET for current state. Live verification is a read-only query that returns a fresh verification ID on each call, without exact response caching.

The broader delegated-account contract also scopes keys to Reflections-Account; delegated requests and the other planned live POST operations remain unsupported.

Maximum string length: 255

Path Parameters

draft_id
string
required

The draft's ID.

Pattern: ^ldr_[0-9a-hjkmnp-tv-z]{26}$

Response

The discarded draft.

id
string
required

The draft's ID, ldr_….

Pattern: ^ldr_[0-9a-hjkmnp-tv-z]{26}$
object
string
required

Always license_draft.

Allowed value: "license_draft"
livemode
boolean
required

true in live mode, false in test mode.

status
enum<string>
required

open until the signer signs or declines it, it is discarded, or it passes expires_at.

Available options:
open,
signed,
declined,
discarded,
expired
kind
enum<string>
required

What signing creates. issue: a new license. change_request: a new revision answering a request of kind change. amend: new terms for license. renew: a new window for license.

Available options:
issue,
change_request,
amend,
renew
talent
string
required

The talent the license is for.

Pattern: ^tal_[0-9a-hjkmnp-tv-z]{26}$
licensee
string
required

The account that holds or will hold the license. It accepts what is signed on its hosted acceptance page.

Pattern: ^acct_[0-9a-hjkmnp-tv-z]{26}$
scope
object
required

The full terms the signer will see, with the current revision's values filled in.

terms_digest
string
required

The terms_digest the revision will carry if it is signed as drafted. Compare it with the signed revision's to see whether the signer changed anything.

Pattern: ^sha256:[0-9a-f]{64}$
signer
enum<string>
required

Who signs. talent: the talent, in the Talent Portal. representative: a person at your account with issue_licenses.

Available options:
talent,
representative
created_by
string
required

The representative account that prepared the draft.

Pattern: ^acct_[0-9a-hjkmnp-tv-z]{26}$
expires_at
string<date-time>
required

When the draft can no longer be signed. 30 days after it was created, unless you set an earlier time.

created_at
string<date-time>
required

When you created the draft.

license
string | null

The license this draft changes, or, once an issue draft is signed, the license it became.

Pattern: ^lic_[0-9a-hjkmnp-tv-z]{26}$
license_request
string | null

The license request this draft answers. null when it answers none.

Pattern: ^lrq_[0-9a-hjkmnp-tv-z]{26}$
signing_url
string<uri> | null

The Talent Portal page where the signer reads and signs the draft with a passkey. Present while open.

signed_as_drafted
boolean | null

Once signed, false when the signer changed terms before signing.

license_revision
string | null

The revision that signing created.

Pattern: ^lrv_[0-9a-hjkmnp-tv-z]{26}$
decision_note
string | null

The signer's note when they declined.

note
string | null

Shown to the licensee on the acceptance page. null when you sent none.

signed_at
string<date-time> | null

When the signer signed. null unless signed.

declined_at
string<date-time> | null

When the signer declined. null unless declined.

metadata
object

Keys and values of your own.