List derived facts for a media item, with quotes for what is missing
The enhancement menu. `facts` is everything expensive we have already computed about this source — subject tracks, mattes — with its status, a small summary a caller can act on without fetching the artifact, and `charge` (what it was billed; absent when it cost nothing, e.g. a matte produced as a side effect of a compose you already paid for, or one delivered below the behind-subject presence floor). `offers` is what is NOT present yet, with a real server quote. A matte is offered ONLY when you pass `startSec`+`endSec` — the clip's SOURCE window — because a matte's price is a function of its duration and a whole-source quote for a three-second clip is not a price. Pass the window from the editor and you get a per-clip matte quote plus the status of that window's matte; omit it from the library and you get everything except the matte.
API key auth. Prefix cf_live_ for production orgs, cf_test_ for sandbox.
In: header
Path Parameters
Query Parameters
Resolve one exact editor prerequisite. Requires startSec and endSec; the response includes the server-selected exact result.
Value in
- "subjectTrack"
- "matte"
Source-in of the clip's trim, in seconds. Must be sent WITH endSec — one without the other is a 400, never a silent whole-source default.
Source-out of the clip's trim, in seconds. Must be sent WITH startSec.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/media/string/facts"{ "facts": [ { "kind": "transcript", "intent": { "kind": "whole", "hash": "string", "window": { "startSec": 0, "endSec": 0 } }, "producerId": "string", "status": "pending", "summary": { "presenceFraction": 0, "faceCount": 0, "language": "string", "wordCount": 0, "durationSec": 0 }, "charge": { "usd": 0 }, "error": { "code": "string", "message": "string" }, "readyAt": 0 } ], "offers": [ { "kind": "transcript", "quotedUsd": 0, "available": true, "reason": "string" } ], "exact": { "kind": "subjectTrack", "scope": { "startSec": 0, "endSec": 0 }, "state": "pending", "fact": { "kind": "transcript", "intent": { "kind": "whole", "hash": "string", "window": { "startSec": 0, "endSec": 0 } }, "producerId": "string", "status": "pending", "summary": { "presenceFraction": 0, "faceCount": 0, "language": "string", "wordCount": 0, "durationSec": 0 }, "charge": { "usd": 0 }, "error": { "code": "string", "message": "string" }, "readyAt": 0 } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "x402Version": 2, "accepts": [ {} ], "error": "string"}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}List media items GET
Paginated library list. Filter with ?kind= (video|audio|image|gif|asset|source|stock), ?source= (upload|generated|import-url|stock), ?tag= (exact tag) so a real library isn't an undifferentiated soup.
Buy a derived fact (subject track or behind-subject matte) POST
Purchases one enhancement for this source. `matte` REQUIRES `intent:{startSec,endSec}` — the clip's SOURCE window — because a matte's cost scales with its duration. For `subjectTrack` the same `intent` is OPTIONAL: give the clip's source window to buy the track the render will look up for THAT clip (and pay only for its duration); omit it for the whole source. If the fact already exists (pending or ready) this returns it with `alreadyExisted:true` and charges nothing. Charging happens on DELIVERY, never here: a job that never lands is never billed.