Score media with your Pro key. Same engines as Check. Same Express path. Optionally issue a verifiable report anyone can open at https://dotcheck.ai/v/{reportId}. Confirm is first-party only — not via this API.
Mint and revoke keys on Check with Google. Keys never appear on this page.
Score
Image and text success bodies are a JSON array — one object per input — not a wrapper. Read probability and clean_hash from each element. Video, audio, and document return a JSON object.
Image
POST/analyze-image
Body {"image_urls":["https://…"]} (HTTPS or data URLs). Paid batch cap 30. JSON array of rows.
Body {"texts":["…"]}. One string is one Check. Latin from 520 characters; Simplified Chinese from 120. Express packs hops inside the string. Pastes above 60,000 characters return truncated: true. English, Chinese, Spanish, French, Portuguese, German, Italian, Dutch. Unsupported language returns unsupported_language on that element (no Check burn). Paid batch cap 30. JSON array.
curl -X POST "https://dotcheck-server-c221c1f32c68.herokuapp.com/analyze-text" \
-H "Authorization: Bearer dc_live_…" \
-H "Content-Type: application/json" \
-d '{"texts":["Sample paragraph to score."]}'
Body video_url (stable locator: HTTPS media, YouTube, or xvid: / x: — never /home) plus frames you extract (max 12). JSON object with aggregated probability, composite clean_hash, and frame_results. Scores the frames you send; it does not capture a live soundtrack.
Multipart field document (PDF / DOCX / PPTX / TXT). One Check per scored item. Count-weighted probability, sourceSha256, checksBilled, and markSignal geometry. This API does not return a marked file.
HTTP 201. Freezes the server-held score for that clean_hash (never send a client %). JSON body: clean_hash (or sourceSha256) + kind. Optional multipart: same fields plus file (native MP4 or GIF) so video can Verify as hashBasis: file. Response includes hashBasis, stampCount (video, 1–12), and reportFormatVersion (v2). Text stays derived (link/ID). Construct https://dotcheck.ai/v/{reportId} (no verifyUrl field). List: GET /reports. Public lookup: GET /report/:id (no key). File match: POST /report/verify multipart media. Withdraw: POST /report/:id/withdraw. Confirm is first-party only (403 confirm_first_party_only).