snapwonders-com Analyse API
**Analyse images and videos for forensic integrity.** Detects faces, text regions, watermarks, and manipulation artefacts. Returns a per-file forensic grade (A–F) with detailed counts. All endpoints require `X-Api-Key`. **Workflow — 6 steps:** **Step 1 — Create a session** `POST /api/analyse/session` Returns `upload_uid` — include it in every upload for this session. **Step 2 — Upload files to analyse** `POST /api/upload` · headers `X-Upload-Uid`, `X-Filename`, `Content-Type`, file as the body. One request per file. Large files or unreliable connections: TUS `POST /api/tus` with `Upload-Metadata: upload_uid ,step MQ==` instead. **Step 3 — Verify all uploads are complete** `GET /api/analyse/session/{uid}/files` All files must show `"status":"completed"` before proceeding. **Step 4 — Start the analysis job** `POST /api/analyse/job` · Required: `upload_uid` Optional: `face_detection`, `text_detection`, `face_sensitivity`, `expiry` Watermark detection and forensic analysis are always enabled. Returns `{"status":"queued", "job_uid": "..."}`. **Step 5 — Poll until done** `GET /api/analyse/job/{uid}` — repeat every few seconds. Watch `status`: `queued` → `processing` → `completed` (or `partial` / `failed`). **Step 6 — Read results** `GET /api/analyse/job/{uid}/results` Returns `result_items` with per-file `overall_grade` (A–F), `face_count`, `text_region_count`, and `watermark_flagged`. Also returns `result_html_url` (browser result page) and `result_json_url` (machine-readable JSON result). **Step 6b — Fetch results as JSON (optional)** `GET /api/analyse/result/{job_uid}` Returns the same result data as clean JSON — file names, grades, and detection counts only. No internal fields.