Appearance
Inspect
Read a file's metadata — grouped by container — without running a job. Read-only and fast: nothing is stored or enqueued. See the Inspecting metadata guide.
These routes require authentication with a key that carries the inspect:read scope (secret keys have it by default; management keys do not) and have their own per-account rate limit (see Rate limits).
Inspect an upload
POST /inspectRead the metadata of an uploaded file. Accepts multipart/form-data. SDK: inspect() (TypeScript) / inspect() (Python).
Body
| Field | Type | Required | Notes |
|---|---|---|---|
image | file | yes | The file to inspect (JPEG, PNG, WebP, TIFF, HEIC, AVIF, MP4, MOV). |
Response — 200 OK
json
{
"groups": {
"EXIF (IFD0)": { "Make": "Apple", "Model": "iPhone 15 Pro" },
"GPS": { "GPSLatitude": "37.7749 N" }
},
"tagCount": 84,
"format": "jpeg",
"dimensions": { "width": 4032, "height": 3024 }
}| Field | Type | Notes |
|---|---|---|
groups | object | container label → { tag: value }. |
tagCount | integer | Total tags across all groups. |
format | string | Detected container (jpeg, heic, png, …). |
dimensions | object | { width, height } when resolvable. |
Errors
| Status | error | When |
|---|---|---|
400 | bad_request | No file, or an unsupported file type. |
429 | rate_limited | Over the inspect limit. |
Inspect a variant
GET /inspect/result/{id}/{variant}Read the metadata of a finished variant (0-based) of one of your jobs. The API reads the produced object server-side, so you can diff source-vs-result without a cross-origin fetch. Returns the same grouped shape as above. SDK: inspectResult(jobId, index) (TypeScript) / inspect_result(job_id, index) (Python).
Errors
| Status | error | When |
|---|---|---|
404 | not_found | No such job/variant, or not yours. |
Other inspect routes
| Route | SDK method (TypeScript / Python) |
|---|---|
POST /inspect/forensics (field image) | inspectForensics() / inspect_forensics() |
POST /inspect/compare (fields original, variant) | inspectCompare() / inspect_compare() |
Forensics is described in the Inspecting metadata guide. Compare takes the two files and returns { detectionRisk, band, visual, matchThreshold }: a 0-100 risk, its band (low, medium or high), the perceptual-hash distances in visual, and the PDQ match threshold. The SDKs need version 2.1.0 or newer.