---
title: "Get analyse job results"
method: GET
path: "/api/analyse/job/{uid}/results"
tags: ["Analyse"]
---

# Get analyse job results

`GET /api/analyse/job/{uid}/results`

## Request

- Base URL: `https://snapwonders.com`
- URL: `https://snapwonders.com/api/analyse/job/{uid}/results`
- Auth: API key in header `X-Api-Key`

Returns per-item analysis results once a job is complete. Results include an overall forensic grade (A–F), face count, text region count, and watermark detection flag. Use the `job_uid` to call `GET /api/analyse/result/{job_uid}` for a clean summary-only JSON response. **Authentication:** `X-Api-Key` header required.

## Path parameters

- `uid` string, uuid, required

## Response `200`

Job results

- object
  - `upload_uid` string, uuid
  - `job_uid` string, uuid: Pass to `GET /api/analyse/result/{job_uid}` with the same `X-Api-Key` to retrieve clean summary JSON.
  - `status` 'queued' | 'processing' | 'completed' | 'partial' | 'failed' | 'terminated'
  - `result_files` object[]: One entry per input file. Analysis fields are null while the job is still processing.
    - `uid` string, uuid
    - `name` string
    - `status` 'queued' | 'processing' | 'completed' | 'failed'
    - `overall_grade` 'A' | 'B' | 'C' | 'D' | 'F', nullable: AUTHENTICITY grade (since 2026-09-27): the weakest of the Origin, Manipulation and AI-generation grades, softened one step at medium confidence and two at low, but never to `A` over a finding. It answers "was this edited, generated or re-encoded?" - privacy findings (GPS, faces, text) are in `exposure_grade`, never mixed in. Rows graded before 2026-09-27 hold the earlier all-category overall. `A` = no significant finding: no real-weight check fired (trace-weight checks may still be listed). Since 2026-09-30 (regime gse-v9) any finding, at any confidence, holds the grade at `B` or worse. Read the per-check findings to see what drove it.
    - `exposure_grade` 'A' | 'B' | 'C' | 'D' | 'F', nullable: EXPOSURE grade (since 2026-09-27): the weakest of the Privacy and Security grades, softened by confidence the same way and likewise never to `A` over a finding - what the file gives away (location, identity, hidden data). A face or text found always means `B` or worse. Never combined with overall_grade. `null` on rows graded before the change, or when withheld.
    - `exposure_confidence` 'low' | 'medium' | 'high', nullable: Confidence of the category that decided exposure_grade. Ordinal, never a percentage.
    - `confidence` 'low' | 'medium' | 'high', nullable: How much to lean on the grade: the confidence of the category that decided it - how reliable the checks that fired are, how many applicable checks actually ran, and whether any disagreed. `null` means nothing could be assessed - which is NOT the same as low confidence. Ordinal by design, never a percentage: a number would claim a calibration that does not exist.
    - `face_count` integer, nullable: Number of faces detected. `null` if face detection was disabled or not yet complete.
    - `text_region_count` integer, nullable: Number of text regions detected. `null` if text detection was disabled or not yet complete.
    - `watermark_flagged` boolean, nullable: `true` if the watermark check fired, `false` if not, `null` if not yet analysed. This bare flag does NOT say which kind of firing it was — read the `steganography` verdict for that: `generator_watermark_matched` is a recovered payload from a known image generator and is conclusive, while `watermark_pattern_unconfirmed` is the older blind bit-decode and is not.
    - `error` string, nullable

## Other responses

- `401`: Not authenticated. `error` names the exact cause: `missing_api_key`, `malformed_api_key`, `invalid_api_key` (key unknown/revoked/expired), or — when the key itself is valid — `account_not_verified` / `account_inactive`.
- `404`: Job not found
- `410`: Session expired — sessions are valid for 24 hours from creation

---

[API](https://skmtc.dev/snapwonders/apis/snapwonders-api-mcp.md) · [All operations](https://skmtc.dev/snapwonders/apis/snapwonders-api-mcp/llms.txt) · [OpenAPI document](https://skmtc.dev/snapwonders/apis/snapwonders-api-mcp/revisions/645bbccc9550?raw)
