ScamAI raised $2.6M to combat AI-powered scams
scam.ai

~/docs cat reading-the-result.md

Reading the result

Every other field

Fields on every response
FieldMeaning
summaryOne sentence a person can read, matching the verdict. Safe to show as is.
credits_usedWhat this run actually cost. Prefer it over any estimate.
zero_charge_reasonOnly when nothing was charged: "sandbox" for a sandbox key, "duplicate" for the same file, byte for byte, from the same account within 30 days.
threshold_usedVideo. The line the per-frame scores were judged against on this run. Draw it on the chart.
frames[].causeVideo. Why a frame has no score, for example timeout or no_face. Only beside a null score.
segmentsAudio. One value per window of the recording; null on an abstained window, with reason_codes saying why.
source.truncatedLink. True only when just the front of the media was fetched and scored; a long video is sampled across its length instead.
idThe detection id. Keep it for retrieval, tracing and support.
statusAlways completed. The answer arrives in the same request.
created_atWhen the run finished. RFC 3339 with a Z.
mediaWhat was checked: type, filename, mime_type and bytes.
modelThe model that answered: Eva V1.6.

Turning scores into decisions

Branch on verdict. It is the decision the platform made for you, and it stays correct as the models change. If your flow needs its own cut-off, for example a stricter bar for high-value accounts, use score and set the line yourself; sort a review queue on it, highest first. For video, the per-frame scores are evidence about moments in the clip; the verdict is about the whole clip. Show the timeline to a reviewer, but decide on the verdict.