Reading a verdict
Every endpoint returns a check object. Its result depends on the kind of check; the rest is the same for all.
The check object
| Field | Meaning |
|---|---|
id |
chk_…. Use it with GET /v1/checks/{id}. |
object |
Always check. |
mode |
live or test, from the key. |
source |
Where it came from: api, sdk, mcp, watch, comfyui or web. |
label |
Your label, if you sent one. |
created_at, finished_at |
ISO 8601, UTC. |
kind |
check, rank, keyframe, preflight, extend or preview. |
state |
queued, running, done or error. |
verdict |
Once done: pass, fail or unsure. For a ranking, the verdict of the best take. |
headline |
One sentence, e.g. "Don't use this take: 2 problems found." |
result |
What was found (below). |
cost |
What it cost: {"usd": 0.04, "display": "$0.04"}. Test checks cost 0. |
seconds |
Seconds of video checked. |
report_url |
An HTML report with evidence frames, kept for your retention period. |
signed |
The signed record: record, signature, kid. See Signed verdicts. |
error |
If state is error: {type, message, fix}. You weren't charged. |
review |
Set from the review screen: approved, rejected, escalated or null. |
Status
- pass: usable. There may be
warnfindings worth a glance (e.g. black frames at the very start, which are a trim, not a defect); they don't fail the take. - fail: don't use it as is. At least one problem was found with confidence of 60% or more.
- unsure: there's a possible problem below 60% confidence. Raccord says "not sure, take a look" rather than guessing. Show the take to a person.
Findings
result.findings is a list, worst first.
| Field | Meaning |
|---|---|
check |
Which check found it (table below). |
severity |
fail or warn. |
title |
One plain sentence a producer understands. |
fix |
The one change most likely to resolve it. |
start, end |
Seconds into the clip. A finding covering the whole clip has start 0 and end equal to the clip length. |
confidence |
0 to 1. How the stated confidence holds up is measured on the accuracy page. |
evidence |
Frames that show it: frame, time, caption, and a region (x, y, w, h from 0 to 1) when it's about part of the frame. source names a reference photo when the evidence is one; crop is true when only the region is shown. |
What each check catches
check |
Finds |
|---|---|
blank_frames |
Black or single-colour frames. At the very start or end it's a warn (a trim). |
frozen_frames |
The picture holding still when it should move, and stutter. |
flicker |
Brightness flickering across the frame or in one area. Camera shake is removed first. |
delivery_spec |
Wrong resolution or frame rate against the size and fps you sent, and variable frame rate. |
identity |
Nobody matching the references, the wrong person, or a face that changes partway (drift). Needs reference[NAME]. |
wardrobe |
A character's outfit changing colour partway, or not matching the costume photos you sent as costume[NAME]. |
result also repeats status and headline, and includes checks_run (which checks ran), engine_version, elapsed_seconds, clip (resolution, frame rate, length, codec and the file's SHA-256, matching signed.record.inputs) and identity: for each character, how closely their face matched over time (times, scores, match_threshold).
Other kinds
- rank:
result.takesbest first, each withrank,path(your file name),status,reason, ascore(only the order matters) and its fullverdict.result.top_twonames up to two takes to use, passing takes only, so it's empty when none passes.result.errorslists files that couldn't be read. - preflight:
result.findingsabout the prompt and photos;result.characterscounts usable photos per character. - preview:
result.stop(true or false),headline,reasons, and the rawsignals.