PREVIEW · CLOSED ACCESSAPI keys are issued under Studio contracts. Email the team

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

TABLE 01 · SCOPES
SCOPESCOPE_KEYCARRIES TO
creatorcr_…Every later dub for the creator profile: one per show, channel or person.
jobdub_…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

PATCH/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.

REQUEST + RESPONSE
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

GET/v1/decisions/memory?scope=creator&scope_key=cr_8f2k1q
200 · OK
{
  "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.

TABLE 02 · ENTRY FIELDS
FIELDTYPEDESCRIPTION
entry_idstringStable ID; DELETE keys on it.
kindstringThe decision kind, e.g. rendering · keep_original · on_screen_text.
sourcestringThe line, sound or item in the frame.
choicestringThe choice applied first next time.
scopestringcreator · job.
scope_keystringcreator_id or dub_id.
remembered_attimestampWhen the override was kept.

05.Forget

DELETE/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".

DECISION · FRAGMENT
{
  "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.