Opening Final Frame
Verifying your credentialsEstablishing an encrypted sessionPreparing your workspace
Secured by WorkOS
This is taking longer than usual. Your connection may be slow.

Rights and availability

A right is a node in a tree, not a word in a list. The taxonomy has fifteen categories (theatrical, non-theatrical, transport and hospitality, physical, television, transactional, streaming, mobile and social, clips and footage, promotional, allied, interactive, derivative, AI and data, secondary), groups under them, and the leaves a deal actually grants. Granting a node grants its descendants. GET /v1/reference/rights returns the whole tree with definitions, synonyms, EMA Avails types and the regions.

What a work holds

PositionMeaning
ownedAn ownership holding is recorded: every right, worldwide, in perpetuity unless narrowed.
licensed_inHoldings that came in under contract, for some rights, places and term. Inbound deals imply these automatically.
mixedBoth of the above.
not_recordedNothing recorded. Not available, and not "not held" either: nobody has said. Rights out still show.

Availability

Availability is rights in, less exclusive rights out, less restrictions, worked out per leaf right and per country over intervals of time, then rolled up to the cell asked about. Non-exclusive rights out remove exclusive availability only.

StateMeaning
availableHeld, nothing sold or restricting; exclusive possible.
available_non_exclusiveNon-exclusive rights out exist, so only shared availability remains.
partialAvailable for part of the window; the free intervals are returned.
licensed_exclusiveAn exclusive grant covers it; the licensee is named.
held_backA holdback or restriction covers it, with the date it lifts.
not_heldHoldings exist, but not for this right, place or time.
not_held_exclusivelyOnly non-exclusive rights in, and exclusivity was asked for.
not_recordedNo rights-in record for the work.
assumedThe organisation opted to treat unrecorded works as owned; never plain available.
unknownA relevant record lacks dates, so the answer is not a guess.
GET https://app.final-frame.com/api/v1/rights/availability?identity=<work>&right=svod&territory=GB&from=2027-01-01&to=2027-12-31&match=cover

Shows, seasons and episodes

A season has an identity of its own, cut from the show's: the show's identity plus #s2; an episode's adds e3. Every rights endpoint accepts them. What the show holds and licenses applies to every season; a deal whose copy of the show carries only some seasons binds those seasons; a holding or a restriction recorded against one season or episode applies there alone. GET /rights/works/{identity}/children returns the seasons and their episodes, each with its own position and cells.

GET https://app.final-frame.com/api/v1/rights/works/<show>/children?territory=DE&from=2027-01-01&rights=svod,avod
GET https://app.final-frame.com/api/v1/rights/works/<show>%23s2            # Season 2 on its own
GET https://app.final-frame.com/api/v1/rights/availability?identity=<show>%23s2e3&right=svod&territory=GB&from=2027-01-01

The map

GET /rights/map?right=svod answers one right for every country at once: how many works are available there in the window, how many are licensed out (shared or exclusively) and to whom, how many are held back or not held. With identity it answers for one work instead, giving each country's state. Country codes are ISO 3166-1 alpha-2. The product's map tab draws this same answer.

Release windows

A release plan is a set of windows per work: theatrical, premium transactional, transactional, physical, airline and hotel, Pay-1 and Pay-2, free television, AVOD and FAST, each tied to a right in the vocabulary, with a start, an end or open, and a status (projected, proposed, confirmed, actual, cancelled). A work with a release date and no plan is projected from a profile (studio-wide, 45-day Pay-1, independent, streaming-first, television series). GET /rights/works/{identity}/windows reads a plan with its projection; PUT replaces it; PUT .../release sets the release date, status and profile.

match decides how the window must be met: cover (the whole window, the default), overlap (any of it), start_within (what opens up), end_within (what expires). minWindowDays ignores slivers. Every answer names the deal, holding or restriction behind it.