: "${REFLECTIONS_KEY:?Set REFLECTIONS_KEY before running this example}"
curl --fail-with-body --max-time 30 'https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10' \
-H "Authorization: Bearer $REFLECTIONS_KEY" \
-H "Reflections-Version: 2026-10-15"import { env, exit } from "node:process";
const apiKey = env.REFLECTIONS_KEY;
if (!apiKey) throw new Error("Set REFLECTIONS_KEY before running this example");
const response = await fetch("https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10", {
method: "GET",
headers: {
Authorization: `Bearer ${apiKey}`,
"Reflections-Version": "2026-10-15",
},
signal: AbortSignal.timeout(30_000),
});
const responseBody = await response.text();
if (!response.ok) {
console.error(`HTTP ${response.status}: ${responseBody}`);
exit(1);
}
console.log(responseBody);
import os
from urllib.error import HTTPError
from urllib.request import Request, urlopen
apiKey = os.environ["REFLECTIONS_KEY"]
if not apiKey:
raise ValueError("Set REFLECTIONS_KEY before running this example")
headers = {
"Authorization": f"Bearer {apiKey}",
"Reflections-Version": "2026-10-15",
}
request = Request("https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10",
method="GET", headers=headers)
try:
with urlopen(request, timeout=30) as response:
print(response.read().decode("utf-8"))
except HTTPError as error:
error_body = error.read().decode("utf-8")
raise RuntimeError(f"HTTP {error.code}: {error_body}") from error
package main
import (
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
apiKey := os.Getenv("REFLECTIONS_KEY")
if apiKey == "" {
panic("Set REFLECTIONS_KEY before running this example")
}
request, err := http.NewRequest("GET", "https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10", nil)
if err != nil {
panic(err)
}
request.Header.Set("Authorization", "Bearer " + apiKey)
request.Header.Set("Reflections-Version", "2026-10-15")
client := &http.Client{Timeout: 30 * time.Second}
response, err := client.Do(request)
if err != nil {
panic(err)
}
defer response.Body.Close()
responseBody, err := io.ReadAll(response.Body)
if err != nil {
panic(err)
}
if response.StatusCode < 200 || response.StatusCode >= 300 {
panic(fmt.Sprintf("HTTP %d: %s", response.StatusCode, responseBody))
}
fmt.Print(string(responseBody))
}
{
"object": "list",
"data": [
{
"id": "lrv_5ecwa673wbbej5a0zkz2vxnk49",
"object": "license_revision",
"livemode": true,
"license": "lic_k5zba2q8v1m3n7p4r6s9t0wxyh",
"number": 3,
"status": "current",
"source_kind": "change_request",
"terms": {
"releasePolicy": "perOutputTalentReview",
"adjustments": {
"reframe": true,
"backgroundExtension": true,
"lighting": true,
"textOverlay": true,
"bodyAndAge": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skinRetouch": false,
"endorsement": false
},
"channels": [
"social",
"web",
"tv"
],
"territories": [
"US",
"CA"
],
"startsAt": "2026-10-01T00:00:00-04:00",
"endsAt": "2027-03-31T00:00:00-04:00",
"windowTimeZone": "America/New_York",
"requiredAttributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"prohibitedChanges": [
"bodyAndAge",
"expression",
"hair",
"pose",
"skinRetouch",
"endorsement"
],
"neverExtras": [
"Do not show alcohol or tobacco."
],
"finalDeliverables": 24,
"isExclusive": false
},
"terms_digest": "sha256:5ddb67c82d7c5ed7217a95a48a6659c94d5a12eb6a740fa88d8323872f40d3cf",
"canonicalization": "tlp-json-1",
"scope": {
"facets": [
"fct_5zba2q8v1m3n7p4r6s9t0wxyhk"
],
"modalities": [
"image"
],
"kinds": [
"depiction"
],
"purposes": [
"advertising"
],
"commercial": true,
"channels": [
"social",
"web",
"tv"
],
"territories": [
"US",
"CA"
],
"window": {
"starts_at": "2026-10-01T00:00:00-04:00",
"ends_at": "2027-03-31T00:00:00-04:00",
"time_zone": "America/New_York"
},
"adjustments": {
"reframe": true,
"background_extension": true,
"lighting": true,
"text_overlay": true,
"body_and_age": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skin_retouch": false,
"endorsement": false
},
"prohibited_changes": [
"body_and_age",
"expression",
"hair",
"pose",
"skin_retouch",
"endorsement"
],
"required_attributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"rules": {
"never": [
"Do not show alcohol or tobacco."
],
"always": [],
"brief": null
},
"release_policy": "per_output_review",
"escalation_window": "P7D",
"final_deliverables": 24,
"sessions": {
"permitted": false
},
"material_access": [],
"platforms": {
"mode": "any_connected",
"accounts": []
},
"sublicense": "none",
"training": "prohibited",
"disclosure": "brand",
"attribution": null,
"post_revocation": {
"policy": "retain"
},
"exclusivity": {
"exclusive": false,
"category": null
},
"conflicts": [],
"compensation": {
"type": "per_unit",
"per_unit": {
"units": "placements",
"rate": {
"amount": 25000,
"currency": "usd"
},
"per": 1
},
"minimum": {
"amount": 500000,
"currency": "usd"
},
"schedule": "monthly"
}
},
"enforcement": [
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.channels",
"enforcement": "checked",
"stage": [
"check"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.requiredAttributes",
"enforcement": "checked",
"stage": [
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.neverExtras",
"enforcement": "checked",
"stage": [
"check",
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.isExclusive",
"enforcement": "recorded",
"stage": []
}
],
"signatures": [
{
"party": "talent",
"account": null,
"name": "Maya Okafor",
"method": "passkey",
"signed_at": "2026-10-20T15:30:00Z"
},
{
"party": "licensee",
"account": "acct_2q8v1m3n7p4r6s9t0wxyhk5zba",
"name": "Ridgeline",
"method": "passkey",
"signed_at": "2026-10-21T13:05:00Z"
}
],
"document_url": "https://app.reflections.ai/l/K7Q4M2/revisions/3",
"created_at": "2026-10-20T15:30:00Z"
},
{
"id": "lrv_p89j65tg7m6zby4b3pt3rd6dmh",
"object": "license_revision",
"livemode": true,
"license": "lic_k5zba2q8v1m3n7p4r6s9t0wxyh",
"number": 2,
"status": "declined",
"source_kind": "amend",
"terms": {
"releasePolicy": "perOutputTalentReview",
"adjustments": {
"reframe": true,
"backgroundExtension": true,
"lighting": true,
"textOverlay": true,
"bodyAndAge": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skinRetouch": false,
"endorsement": false
},
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"startsAt": "2026-10-01T00:00:00-04:00",
"endsAt": "2027-03-31T00:00:00-04:00",
"windowTimeZone": "America/New_York",
"requiredAttributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"prohibitedChanges": [
"bodyAndAge",
"expression",
"hair",
"pose",
"skinRetouch",
"endorsement"
],
"neverExtras": [
"Do not show alcohol or tobacco.",
"Do not show her running on roads or near traffic."
],
"finalDeliverables": 24,
"isExclusive": false
},
"terms_digest": "sha256:be28cb06d4af05a49be01483327a363afbd352a032d265a37283855f7bd8710a",
"canonicalization": "tlp-json-1",
"scope": {
"facets": [
"fct_5zba2q8v1m3n7p4r6s9t0wxyhk"
],
"modalities": [
"image"
],
"kinds": [
"depiction"
],
"purposes": [
"advertising"
],
"commercial": true,
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"window": {
"starts_at": "2026-10-01T00:00:00-04:00",
"ends_at": "2027-03-31T00:00:00-04:00",
"time_zone": "America/New_York"
},
"adjustments": {
"reframe": true,
"background_extension": true,
"lighting": true,
"text_overlay": true,
"body_and_age": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skin_retouch": false,
"endorsement": false
},
"prohibited_changes": [
"body_and_age",
"expression",
"hair",
"pose",
"skin_retouch",
"endorsement"
],
"required_attributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"rules": {
"never": [
"Do not show alcohol or tobacco.",
"Do not show her running on roads or near traffic."
],
"always": [],
"brief": null
},
"release_policy": "per_output_review",
"escalation_window": "P7D",
"final_deliverables": 24,
"sessions": {
"permitted": false
},
"material_access": [],
"platforms": {
"mode": "any_connected",
"accounts": []
},
"sublicense": "none",
"training": "prohibited",
"disclosure": "brand",
"attribution": null,
"post_revocation": {
"policy": "retain"
},
"exclusivity": {
"exclusive": false,
"category": null
},
"conflicts": [],
"compensation": {
"type": "per_unit",
"per_unit": {
"units": "placements",
"rate": {
"amount": 25000,
"currency": "usd"
},
"per": 1
},
"minimum": {
"amount": 500000,
"currency": "usd"
},
"schedule": "monthly"
}
},
"enforcement": [
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.channels",
"enforcement": "checked",
"stage": [
"check"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.requiredAttributes",
"enforcement": "checked",
"stage": [
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.neverExtras",
"enforcement": "checked",
"stage": [
"check",
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.isExclusive",
"enforcement": "recorded",
"stage": []
}
],
"signatures": [
{
"party": "representative",
"account": "acct_6m8n0p2q4r6s8t0v2w4x6y8z0b",
"name": "Lena Brooks",
"method": "passkey",
"signed_at": "2026-10-18T10:20:00Z"
}
],
"document_url": "https://app.reflections.ai/l/K7Q4M2/revisions/2",
"created_at": "2026-10-18T10:20:00Z"
},
{
"id": "lrv_p4r6s9t0wxyhk5zba2q8v1m3n7",
"object": "license_revision",
"livemode": true,
"license": "lic_k5zba2q8v1m3n7p4r6s9t0wxyh",
"number": 1,
"status": "superseded",
"source_kind": "issue",
"terms": {
"releasePolicy": "perOutputTalentReview",
"adjustments": {
"reframe": true,
"backgroundExtension": true,
"lighting": true,
"textOverlay": true,
"bodyAndAge": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skinRetouch": false,
"endorsement": false
},
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"startsAt": "2026-10-01T00:00:00-04:00",
"endsAt": "2027-03-31T00:00:00-04:00",
"windowTimeZone": "America/New_York",
"requiredAttributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"prohibitedChanges": [
"bodyAndAge",
"expression",
"hair",
"pose",
"skinRetouch",
"endorsement"
],
"neverExtras": [
"Do not show alcohol or tobacco."
],
"finalDeliverables": 24,
"isExclusive": false
},
"terms_digest": "sha256:39f18c8bef02b5226b9feaa92e526ed30b81b91650d8a10b503281b169f44431",
"canonicalization": "tlp-json-1",
"scope": {
"facets": [
"fct_5zba2q8v1m3n7p4r6s9t0wxyhk"
],
"modalities": [
"image"
],
"kinds": [
"depiction"
],
"purposes": [
"advertising"
],
"commercial": true,
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"window": {
"starts_at": "2026-10-01T00:00:00-04:00",
"ends_at": "2027-03-31T00:00:00-04:00",
"time_zone": "America/New_York"
},
"adjustments": {
"reframe": true,
"background_extension": true,
"lighting": true,
"text_overlay": true,
"body_and_age": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skin_retouch": false,
"endorsement": false
},
"prohibited_changes": [
"body_and_age",
"expression",
"hair",
"pose",
"skin_retouch",
"endorsement"
],
"required_attributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"rules": {
"never": [
"Do not show alcohol or tobacco."
],
"always": [],
"brief": null
},
"release_policy": "per_output_review",
"escalation_window": "P7D",
"final_deliverables": 24,
"sessions": {
"permitted": false
},
"material_access": [],
"platforms": {
"mode": "any_connected",
"accounts": []
},
"sublicense": "none",
"training": "prohibited",
"disclosure": "brand",
"attribution": null,
"post_revocation": {
"policy": "retain"
},
"exclusivity": {
"exclusive": false,
"category": null
},
"conflicts": [],
"compensation": {
"type": "per_unit",
"per_unit": {
"units": "placements",
"rate": {
"amount": 25000,
"currency": "usd"
},
"per": 1
},
"minimum": {
"amount": 500000,
"currency": "usd"
},
"schedule": "monthly"
}
},
"enforcement": [
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.channels",
"enforcement": "checked",
"stage": [
"check"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.requiredAttributes",
"enforcement": "checked",
"stage": [
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.neverExtras",
"enforcement": "checked",
"stage": [
"check",
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.isExclusive",
"enforcement": "recorded",
"stage": []
}
],
"signatures": [
{
"party": "talent",
"account": null,
"name": "Maya Okafor",
"method": "passkey",
"signed_at": "2026-09-27T11:15:00Z"
},
{
"party": "licensee",
"account": "acct_2q8v1m3n7p4r6s9t0wxyhk5zba",
"name": "Ridgeline",
"method": "passkey",
"signed_at": "2026-09-28T16:02:00Z"
}
],
"document_url": "https://app.reflections.ai/l/K7Q4M2/revisions/1",
"created_at": "2026-09-27T11:15:00Z"
}
],
"has_more": false,
"next_cursor": null
}{
"type": "https://docs.reflections.ai/errors/parameter_invalid",
"title": "A parameter is invalid",
"status": 400,
"code": "parameter_invalid",
"param": "use.territories[1]",
"detail": "\"UK\" is not an ISO 3166-1 alpha-2 code. Use \"GB\".",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/invalid_api_key",
"title": "The API key is not valid",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/account_not_connected",
"title": "The licensee has not connected your platform",
"status": 403,
"code": "account_not_connected",
"detail": "acct_2q8v1m3n7p4r6s9t0wxyhk5zba has no active connection with your account.",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/resource_not_found",
"title": "No such object",
"status": 404,
"code": "resource_not_found",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "invalid_request",
"request_id": "<string>",
"detail": "<string>",
"param": "<string>",
"doc_url": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "invalid_request",
"request_id": "<string>",
"detail": "<string>",
"param": "<string>",
"doc_url": "<string>"
}List license revisions
Test mode available. Live mode unavailable. Uses fictional sandbox data only. See Sandbox for the supported forms and limits.
Lists every signed revision of a license, newest first, including a pending or declined
one; status tells them apart. A revision’s terms never change.
Restricted keys need licenses:read.
: "${REFLECTIONS_KEY:?Set REFLECTIONS_KEY before running this example}"
curl --fail-with-body --max-time 30 'https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10' \
-H "Authorization: Bearer $REFLECTIONS_KEY" \
-H "Reflections-Version: 2026-10-15"import { env, exit } from "node:process";
const apiKey = env.REFLECTIONS_KEY;
if (!apiKey) throw new Error("Set REFLECTIONS_KEY before running this example");
const response = await fetch("https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10", {
method: "GET",
headers: {
Authorization: `Bearer ${apiKey}`,
"Reflections-Version": "2026-10-15",
},
signal: AbortSignal.timeout(30_000),
});
const responseBody = await response.text();
if (!response.ok) {
console.error(`HTTP ${response.status}: ${responseBody}`);
exit(1);
}
console.log(responseBody);
import os
from urllib.error import HTTPError
from urllib.request import Request, urlopen
apiKey = os.environ["REFLECTIONS_KEY"]
if not apiKey:
raise ValueError("Set REFLECTIONS_KEY before running this example")
headers = {
"Authorization": f"Bearer {apiKey}",
"Reflections-Version": "2026-10-15",
}
request = Request("https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10",
method="GET", headers=headers)
try:
with urlopen(request, timeout=30) as response:
print(response.read().decode("utf-8"))
except HTTPError as error:
error_body = error.read().decode("utf-8")
raise RuntimeError(f"HTTP {error.code}: {error_body}") from error
package main
import (
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
apiKey := os.Getenv("REFLECTIONS_KEY")
if apiKey == "" {
panic("Set REFLECTIONS_KEY before running this example")
}
request, err := http.NewRequest("GET", "https://app.reflections.ai/v1/licenses/lic_k5zba2q8v1m3n7p4r6s9t0wxyh/revisions?limit=10", nil)
if err != nil {
panic(err)
}
request.Header.Set("Authorization", "Bearer " + apiKey)
request.Header.Set("Reflections-Version", "2026-10-15")
client := &http.Client{Timeout: 30 * time.Second}
response, err := client.Do(request)
if err != nil {
panic(err)
}
defer response.Body.Close()
responseBody, err := io.ReadAll(response.Body)
if err != nil {
panic(err)
}
if response.StatusCode < 200 || response.StatusCode >= 300 {
panic(fmt.Sprintf("HTTP %d: %s", response.StatusCode, responseBody))
}
fmt.Print(string(responseBody))
}
{
"object": "list",
"data": [
{
"id": "lrv_5ecwa673wbbej5a0zkz2vxnk49",
"object": "license_revision",
"livemode": true,
"license": "lic_k5zba2q8v1m3n7p4r6s9t0wxyh",
"number": 3,
"status": "current",
"source_kind": "change_request",
"terms": {
"releasePolicy": "perOutputTalentReview",
"adjustments": {
"reframe": true,
"backgroundExtension": true,
"lighting": true,
"textOverlay": true,
"bodyAndAge": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skinRetouch": false,
"endorsement": false
},
"channels": [
"social",
"web",
"tv"
],
"territories": [
"US",
"CA"
],
"startsAt": "2026-10-01T00:00:00-04:00",
"endsAt": "2027-03-31T00:00:00-04:00",
"windowTimeZone": "America/New_York",
"requiredAttributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"prohibitedChanges": [
"bodyAndAge",
"expression",
"hair",
"pose",
"skinRetouch",
"endorsement"
],
"neverExtras": [
"Do not show alcohol or tobacco."
],
"finalDeliverables": 24,
"isExclusive": false
},
"terms_digest": "sha256:5ddb67c82d7c5ed7217a95a48a6659c94d5a12eb6a740fa88d8323872f40d3cf",
"canonicalization": "tlp-json-1",
"scope": {
"facets": [
"fct_5zba2q8v1m3n7p4r6s9t0wxyhk"
],
"modalities": [
"image"
],
"kinds": [
"depiction"
],
"purposes": [
"advertising"
],
"commercial": true,
"channels": [
"social",
"web",
"tv"
],
"territories": [
"US",
"CA"
],
"window": {
"starts_at": "2026-10-01T00:00:00-04:00",
"ends_at": "2027-03-31T00:00:00-04:00",
"time_zone": "America/New_York"
},
"adjustments": {
"reframe": true,
"background_extension": true,
"lighting": true,
"text_overlay": true,
"body_and_age": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skin_retouch": false,
"endorsement": false
},
"prohibited_changes": [
"body_and_age",
"expression",
"hair",
"pose",
"skin_retouch",
"endorsement"
],
"required_attributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"rules": {
"never": [
"Do not show alcohol or tobacco."
],
"always": [],
"brief": null
},
"release_policy": "per_output_review",
"escalation_window": "P7D",
"final_deliverables": 24,
"sessions": {
"permitted": false
},
"material_access": [],
"platforms": {
"mode": "any_connected",
"accounts": []
},
"sublicense": "none",
"training": "prohibited",
"disclosure": "brand",
"attribution": null,
"post_revocation": {
"policy": "retain"
},
"exclusivity": {
"exclusive": false,
"category": null
},
"conflicts": [],
"compensation": {
"type": "per_unit",
"per_unit": {
"units": "placements",
"rate": {
"amount": 25000,
"currency": "usd"
},
"per": 1
},
"minimum": {
"amount": 500000,
"currency": "usd"
},
"schedule": "monthly"
}
},
"enforcement": [
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.channels",
"enforcement": "checked",
"stage": [
"check"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.requiredAttributes",
"enforcement": "checked",
"stage": [
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.neverExtras",
"enforcement": "checked",
"stage": [
"check",
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.isExclusive",
"enforcement": "recorded",
"stage": []
}
],
"signatures": [
{
"party": "talent",
"account": null,
"name": "Maya Okafor",
"method": "passkey",
"signed_at": "2026-10-20T15:30:00Z"
},
{
"party": "licensee",
"account": "acct_2q8v1m3n7p4r6s9t0wxyhk5zba",
"name": "Ridgeline",
"method": "passkey",
"signed_at": "2026-10-21T13:05:00Z"
}
],
"document_url": "https://app.reflections.ai/l/K7Q4M2/revisions/3",
"created_at": "2026-10-20T15:30:00Z"
},
{
"id": "lrv_p89j65tg7m6zby4b3pt3rd6dmh",
"object": "license_revision",
"livemode": true,
"license": "lic_k5zba2q8v1m3n7p4r6s9t0wxyh",
"number": 2,
"status": "declined",
"source_kind": "amend",
"terms": {
"releasePolicy": "perOutputTalentReview",
"adjustments": {
"reframe": true,
"backgroundExtension": true,
"lighting": true,
"textOverlay": true,
"bodyAndAge": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skinRetouch": false,
"endorsement": false
},
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"startsAt": "2026-10-01T00:00:00-04:00",
"endsAt": "2027-03-31T00:00:00-04:00",
"windowTimeZone": "America/New_York",
"requiredAttributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"prohibitedChanges": [
"bodyAndAge",
"expression",
"hair",
"pose",
"skinRetouch",
"endorsement"
],
"neverExtras": [
"Do not show alcohol or tobacco.",
"Do not show her running on roads or near traffic."
],
"finalDeliverables": 24,
"isExclusive": false
},
"terms_digest": "sha256:be28cb06d4af05a49be01483327a363afbd352a032d265a37283855f7bd8710a",
"canonicalization": "tlp-json-1",
"scope": {
"facets": [
"fct_5zba2q8v1m3n7p4r6s9t0wxyhk"
],
"modalities": [
"image"
],
"kinds": [
"depiction"
],
"purposes": [
"advertising"
],
"commercial": true,
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"window": {
"starts_at": "2026-10-01T00:00:00-04:00",
"ends_at": "2027-03-31T00:00:00-04:00",
"time_zone": "America/New_York"
},
"adjustments": {
"reframe": true,
"background_extension": true,
"lighting": true,
"text_overlay": true,
"body_and_age": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skin_retouch": false,
"endorsement": false
},
"prohibited_changes": [
"body_and_age",
"expression",
"hair",
"pose",
"skin_retouch",
"endorsement"
],
"required_attributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"rules": {
"never": [
"Do not show alcohol or tobacco.",
"Do not show her running on roads or near traffic."
],
"always": [],
"brief": null
},
"release_policy": "per_output_review",
"escalation_window": "P7D",
"final_deliverables": 24,
"sessions": {
"permitted": false
},
"material_access": [],
"platforms": {
"mode": "any_connected",
"accounts": []
},
"sublicense": "none",
"training": "prohibited",
"disclosure": "brand",
"attribution": null,
"post_revocation": {
"policy": "retain"
},
"exclusivity": {
"exclusive": false,
"category": null
},
"conflicts": [],
"compensation": {
"type": "per_unit",
"per_unit": {
"units": "placements",
"rate": {
"amount": 25000,
"currency": "usd"
},
"per": 1
},
"minimum": {
"amount": 500000,
"currency": "usd"
},
"schedule": "monthly"
}
},
"enforcement": [
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.channels",
"enforcement": "checked",
"stage": [
"check"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.requiredAttributes",
"enforcement": "checked",
"stage": [
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.neverExtras",
"enforcement": "checked",
"stage": [
"check",
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.isExclusive",
"enforcement": "recorded",
"stage": []
}
],
"signatures": [
{
"party": "representative",
"account": "acct_6m8n0p2q4r6s8t0v2w4x6y8z0b",
"name": "Lena Brooks",
"method": "passkey",
"signed_at": "2026-10-18T10:20:00Z"
}
],
"document_url": "https://app.reflections.ai/l/K7Q4M2/revisions/2",
"created_at": "2026-10-18T10:20:00Z"
},
{
"id": "lrv_p4r6s9t0wxyhk5zba2q8v1m3n7",
"object": "license_revision",
"livemode": true,
"license": "lic_k5zba2q8v1m3n7p4r6s9t0wxyh",
"number": 1,
"status": "superseded",
"source_kind": "issue",
"terms": {
"releasePolicy": "perOutputTalentReview",
"adjustments": {
"reframe": true,
"backgroundExtension": true,
"lighting": true,
"textOverlay": true,
"bodyAndAge": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skinRetouch": false,
"endorsement": false
},
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"startsAt": "2026-10-01T00:00:00-04:00",
"endsAt": "2027-03-31T00:00:00-04:00",
"windowTimeZone": "America/New_York",
"requiredAttributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"prohibitedChanges": [
"bodyAndAge",
"expression",
"hair",
"pose",
"skinRetouch",
"endorsement"
],
"neverExtras": [
"Do not show alcohol or tobacco."
],
"finalDeliverables": 24,
"isExclusive": false
},
"terms_digest": "sha256:39f18c8bef02b5226b9feaa92e526ed30b81b91650d8a10b503281b169f44431",
"canonicalization": "tlp-json-1",
"scope": {
"facets": [
"fct_5zba2q8v1m3n7p4r6s9t0wxyhk"
],
"modalities": [
"image"
],
"kinds": [
"depiction"
],
"purposes": [
"advertising"
],
"commercial": true,
"channels": [
"social",
"web"
],
"territories": [
"US",
"CA"
],
"window": {
"starts_at": "2026-10-01T00:00:00-04:00",
"ends_at": "2027-03-31T00:00:00-04:00",
"time_zone": "America/New_York"
},
"adjustments": {
"reframe": true,
"background_extension": true,
"lighting": true,
"text_overlay": true,
"body_and_age": false,
"expression": false,
"hair": false,
"pose": false,
"wardrobe": true,
"objects": true,
"skin_retouch": false,
"endorsement": false
},
"prohibited_changes": [
"body_and_age",
"expression",
"hair",
"pose",
"skin_retouch",
"endorsement"
],
"required_attributes": [
"identity.samePerson",
"appearance.bodyAndAge",
"appearance.expression",
"appearance.hair",
"appearance.pose",
"appearance.skinRetouch",
"context.endorsement"
],
"rules": {
"never": [
"Do not show alcohol or tobacco."
],
"always": [],
"brief": null
},
"release_policy": "per_output_review",
"escalation_window": "P7D",
"final_deliverables": 24,
"sessions": {
"permitted": false
},
"material_access": [],
"platforms": {
"mode": "any_connected",
"accounts": []
},
"sublicense": "none",
"training": "prohibited",
"disclosure": "brand",
"attribution": null,
"post_revocation": {
"policy": "retain"
},
"exclusivity": {
"exclusive": false,
"category": null
},
"conflicts": [],
"compensation": {
"type": "per_unit",
"per_unit": {
"units": "placements",
"rate": {
"amount": 25000,
"currency": "usd"
},
"per": 1
},
"minimum": {
"amount": 500000,
"currency": "usd"
},
"schedule": "monthly"
}
},
"enforcement": [
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.channels",
"enforcement": "checked",
"stage": [
"check"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.requiredAttributes",
"enforcement": "checked",
"stage": [
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.neverExtras",
"enforcement": "checked",
"stage": [
"check",
"generation"
]
},
{
"term": "license:lic_k5zba2q8v1m3n7p4r6s9t0wxyh/terms.isExclusive",
"enforcement": "recorded",
"stage": []
}
],
"signatures": [
{
"party": "talent",
"account": null,
"name": "Maya Okafor",
"method": "passkey",
"signed_at": "2026-09-27T11:15:00Z"
},
{
"party": "licensee",
"account": "acct_2q8v1m3n7p4r6s9t0wxyhk5zba",
"name": "Ridgeline",
"method": "passkey",
"signed_at": "2026-09-28T16:02:00Z"
}
],
"document_url": "https://app.reflections.ai/l/K7Q4M2/revisions/1",
"created_at": "2026-09-27T11:15:00Z"
}
],
"has_more": false,
"next_cursor": null
}{
"type": "https://docs.reflections.ai/errors/parameter_invalid",
"title": "A parameter is invalid",
"status": 400,
"code": "parameter_invalid",
"param": "use.territories[1]",
"detail": "\"UK\" is not an ISO 3166-1 alpha-2 code. Use \"GB\".",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/invalid_api_key",
"title": "The API key is not valid",
"status": 401,
"code": "invalid_api_key",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/account_not_connected",
"title": "The licensee has not connected your platform",
"status": 403,
"code": "account_not_connected",
"detail": "acct_2q8v1m3n7p4r6s9t0wxyhk5zba has no active connection with your account.",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/resource_not_found",
"title": "No such object",
"status": 404,
"code": "resource_not_found",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "https://docs.reflections.ai/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"request_id": "req_8f2k4m6p8r0t2v4x6z8b0d2f4h"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "invalid_request",
"request_id": "<string>",
"detail": "<string>",
"param": "<string>",
"doc_url": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "invalid_request",
"request_id": "<string>",
"detail": "<string>",
"param": "<string>",
"doc_url": "<string>"
}Authorizations
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
The dated API version. Defaults to the version your account is pinned to.
"2026-10-15"
Act for a connected licensee. The value is the licensee's account ID. Requires an active connection between that account and yours.
^acct_[0-9a-hjkmnp-tv-z]{26}$Path Parameters
The license's ID.
^lic_[0-9a-hjkmnp-tv-z]{26}$Query Parameters
Only revisions with this status, such as pending_acceptance.
pending_acceptance: signed on the talent's side, waiting for the licensee. current: in
force; the license's current_revision. superseded: a later revision became current.
declined: the licensee declined it.
pending_acceptance, current, superseded, declined Number of objects to return, 1 to 100.
1 <= x <= 100The next_cursor from the previous page.