Skip to main content
Use the API reference for complete parameter, response field, and status code details. See Understand quality metrics for plain-language definitions or Build a quality-control check for a concrete pipeline example. Get a bearer token from the Authentication guide, then set the API host and token:

1. Check access

Response
Confirm that the scope names your organization and capabilities contains view_data.

2. Choose a dataset

Response
Use a returned dataset value in later requests. The metrics array shows which quality metric families are available.

3. Read content diversity

Response (abridged)
axis narrows the response to one independent concept axis — environments, objects, or action_verbs. Omit it and all three summaries come back, environments first. Exact activity contexts remain available as task_contexts in the paginated quality-clip response. The object_actions relationship distribution is returned either way. If every axis comes back empty while analyzed_clip_count is not, the dataset has not been analysed enough times for anything to be published yet. See Content diversity for how to read the distribution and what the interaction block separates out.

4. Read video characteristics and hand activity

Video characteristics reports how much of a dataset is visibly damaged, and in what way. Request chart-ready clip distributions when you need them:
Response (abridged)
Each percent is taken over the footage in the same object, weighted by duration — so 8.5% crushed shadows across 71.0 hours is six hours of footage crossing the dark-end gate. The denominators differ slightly between measurements because each defect is scored over the footage its own instrument could see, so multiply by the assessed_hours next to the percentage rather than the one at the top. unreadable counts clips instead and reports assessed_clips. With include=distribution, every available duration metric also has the same seven duration-weighted percentiles and all ten fixed histogram bins. Plot footage_percent by affected-percentage bin, or use p0/p25/p50/p75/p100 as a weighted box plot. unreadable has no distribution because failed clips have no assessed duration to use as a weight. Omit include when you only need the headline percentages. blurry is judged by a model. unstable uses camera-motion measurements when available and a model as a fallback. Either is null when the needed assessment has not been run. The measurements can overlap, so read them one at a time instead of adding them up. See Video characteristics for what each measurement means and Build a quality-control check for turning them into a decision. When the measured view is egocentric, get hand-visibility, manipulation, and hand-object-contact percentages:
Response (abridged)
Review coverage_percent before using a metric. It describes measurement completeness, not the percentage of footage classified as good. Every hand percentage is taken over assessed_seconds, so multiplying one by that duration converts it into footage: here 49% of 255,600s is 34.8 hours of active manipulation out of 71.0 hours assessed. See Hand activity for what each measurement means and which one to read first.

Handle errors

Check the HTTP status before parsing the body. Most handled errors return:
Branch on the error code, not the message. Every response includes an x-request-id; send your own value to correlate one request across your logs and ours.