API REFERENCE · DECISIONS
Decision memory
A choice made once follows the next episode: remembered overrides apply first on the next dub for that creator.
01.A choice made once
Decision memory (in the works) carries a settled override to the next dub for the same creator. The catchphrase your creative directors kept in the original follows episode 2 without a second review.
It applies when the same line, term, name, chant, sign or face comes back. The remembered choice is applied first; every other decision is made as usual.
02.The scopes
| SCOPE | SCOPE_KEY | CARRIES TO |
|---|---|---|
creator | cr_… | Every later dub for the creator profile: one per show, channel or person. |
job | dub_… | That dub only, in every language. |
Narrower wins, as with the other two scopes. Do Not Translate and Context are standing decisions you set before the dub; the decision record holds the ones the model made during it.
03.Remember an override
/v1/dubs/{dub_id}/decisions/{decision_id}Add remember (in the works) to any override: "creator" or "job", default none. The choice is kept once the decision is settled.
curl -X PATCH https://api.thefamiliarlab.com/v1/dubs/dub_31xk9m/decisions/dec_7h2k0b \
-H "Authorization: Bearer $FAMILIAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keep_original": true,
"remember": "creator"
}'
{
"id": "dec_7h2k0b",
"type": "audio",
"kind": "keep_original",
"source": "crowd chant",
"chosen": "opt_1",
"chosen_by": "you",
"status": "settled",
"memory": null
}The default on the dub
decisions.memory on POST /v1/dubs (in the works) sets where overrides on that dub are kept: creator or job (default job). A remember on the PATCH sets the scope for that one decision.
04.Read what is remembered
/v1/decisions/memory?scope=creator&scope_key=cr_8f2k1q{
"data": [
{
"entry_id": "mem_4tq81c",
"kind": "keep_original",
"source": "crowd chant",
"choice": "keep in Korean",
"scope": "creator",
"scope_key": "cr_8f2k1q",
"remembered_at": "2026-10-28T14:02:11Z"
},
{
"entry_id": "mem_4tq81d",
"kind": "rendering",
"source": "사과하려고 사과 사 왔어.",
"choice": "Apples. I'm sorry, right down to the core.",
"scope": "creator",
"scope_key": "cr_8f2k1q",
"remembered_at": "2026-10-28T14:05:47Z"
}
],
"has_more": false
}The list endpoint is in the works. Both query parameters are required together.
| FIELD | TYPE | DESCRIPTION |
|---|---|---|
entry_id | string | Stable ID; DELETE keys on it. |
kind | string | The decision kind, e.g. rendering · keep_original · on_screen_text. |
source | string | The line, sound or item in the frame. |
choice | string | The choice applied first next time. |
scope | string | creator · job. |
scope_key | string | creator_id or dub_id. |
remembered_at | timestamp | When the override was kept. |
05.Forget
/v1/decisions/memory/{entry_id}Forgetting an entry is in the works. Removal applies to the next dub.
06.How it shows in the record
A decision carried from memory reads chosen_by: "memory", and its memory object names the scope it came from. Override it like any other decision; the PATCH sets chosen_by: "you".
{
"id": "dec_9m3p2a",
"type": "audio",
"kind": "keep_original",
"source": "crowd chant",
"chosen": "opt_1",
"chosen_by": "memory",
"status": "open",
"memory": { "scope": "creator", "scope_key": "cr_8f2k1q" }
}07.Access
The API is enterprise-only: private access under a Studio contract, with volume pricing, raised limits, ProRes masters on request, and a named point of contact. Book a call and your key is issued with the contract.