TexaData

The manifest schema, in full.

Every collection is delivered with one row per asset and one column per field. This is that schema — all of it, with what each column means and what an empty cell signifies. The worked example in the field kit is these columns in this order, and so is the live export.

Columns
38
Field groups
6
Always populated
28
Collections
5

Manifest columns

Identity

ColumnTypeMeaning
asset_idstringStable public identifier. Never reissued, never reused after withdrawal.
filenamestringDelivered file name. Matches the asset ID, so a row and a file cannot be separated.
modalityenumvideo · audio · document · records

Media

ColumnTypeMeaning
duration_secintegerWhole seconds. Documents and records carry 0.
resolutionstringMay be emptyPixel dimensions as delivered, e.g. 3840x2160.
fpsdecimalMay be emptyFrame rate as captured. 30 standard, 60 on motion lines.
video_codecstringMay be emptyH.264 throughout. No HDR.
audio_channelsintegerMay be emptyChannel count as delivered. 2 where capture was channel-separated.
audio_sample_rateintegerMay be emptyHertz. 48000 on originated capture; archive reports its source rate.
file_size_bytesintegerMaster file size, not the proxy.

Capture

ColumnTypeMeaning
capture_datedateISO 8601 date, YYYY-MM-DD. The date of capture, not of ingest.
capture_time_localstring24-hour local start time, HH:MM. Time of day changes light, noise floor and who is present.
timezonestringCapture-local zone. WAT (UTC+1) across the corridor.
countrystringCountry of capture.
citystringCity or nearest town of capture.
location_typeenummarket · roadside · workshop · household · studio · archive
environment_tagstringFree tag for the specific setting, e.g. open-air-market.
camera_positionenumMay be emptyhead · chest · fixed · handheld
camera_modelstringMay be emptyBody and rig as used. Locked settings are identical within a lot.

Content

ColumnTypeMeaning
languagesstringSemicolon-separated. Every language present, not only the dominant one.
primary_taskstringWhat the operator was doing, in the vocabulary of the trade.
intentstringWhat they were trying to achieve — the layer a pixel cannot carry.
objects_handledstringMay be emptySemicolon-separated objects touched during the clip.
hands_visibleenumMay be emptyyes · partial · no
failure_retry_eventsintegerCount of points where the task failed and method changed. The field robotics buyers filter on first.
motion_levelenumstatic · low · moderate · high
lightingenumdaylight · overcast · mixed · artificial · low

Rights

ColumnTypeMeaning
subject_idsstringSemicolon-separated subject references. Each resolves to a consent record.
identifiable_personsintegerCount of identifiable people carrying an appearance release. 0 means nobody in frame is identifiable — the field a rights reviewer checks first.
consent_doc_refstringResolves to a signed consent instrument. Never blank on a published asset.
contributor_licence_refstringResolves to the contributor's licence. Never blank on a published asset.
rights_holderstringThe party warranting the grant.
exclusivityenumnon-exclusive · category · territory · term
ai_training_grantenumgranted · not_granted. Only granted rows are deliverable.
sublicensableenumyes · no. Aggregators reselling onward filter on this.

Settlement

ColumnTypeMeaning
payment_refstringResolves to a payment record. A cleared asset has a paid contributor.
payment_statusenumpaid · pending
notesstringMay be emptyAnything a buyer should know that no other column carries.

An empty cell means the field does not apply to the asset's modality — an audio asset has no frame rate. It never means the value was unavailable.

The rights columns are the point

Six of these columns exist so a reviewer never has to take a sentence on trust. Every published asset resolves through them to a signed instrument, a named rights holder and a paid contributor — and identifiable_persons states, per asset, whether an appearance release was required at all.

subject_idsidentifiable_personsconsent_doc_refcontributor_licence_refrights_holderexclusivityai_training_grantsublicensable
A tailor working over a bolt of printed cloth
Rights

Manifest export

Every published collection exports its manifest as CSV at a stable path. No key, no account, no sales conversation — a buyer evaluating provenance should be able to read the record before speaking to anyone.

Endpoint
/api/manifest/{slug}
Method
GET
Returns
text/csv; charset=utf-8, as a file attachment
Status codes
200 on a published collection. 404 where the slug is unknown or the collection is unpublished.

Name any asset ID in a manifest.

We will send you the signed agreement behind it.