Verifications

Get Verification

Retrieve detailed results for a specific photo verification.

Get the complete verification report including authenticity analysis results, processing status, and all metadata comparisons for a single verification.

Authentication Required: Valid API key or JWT token

Path Parameters:

  • verification_id: Unique identifier for the verification

Response: Returns a verification object containing:

  • id: Verification unique identifier
  • name: Original filename of the image
  • status: Current processing status (pending, queued, in_progress, completed, failed)
  • result: Authenticity determination (true = authentic, false = not authentic, null = pending)
  • created_at/updated_at: Timestamps
  • results: Array of detailed analysis results from each verification algorithm
  • account_id: Your account identifier
  • rendition_info: Processing transformation details
  • image_thumbnail_url: CDN URL for verification thumbnail
  • raw_metadata/image_metadata: EXIF and technical metadata

Verification Results Include:

  • SSIM similarity scores between RAW and JPEG
  • Perceptual hash comparisons
  • EXIF metadata analysis
  • Sensor signature verification
  • Color histogram comparisons
  • Processing chain validation

Status Codes:

  • 200: Verification found and returned
  • 404: Verification not found or access denied
  • 401: Authentication required
get/v1/verifications/{verification_id}

Request

  • Base URL: https://api.lumethic.com
  • URL: https://api.lumethic.com/v1/verifications/{verification_id}
  • Auth: OAuth2PasswordBearer (a scheme the document does not define)

Path parameters

verification_idstring required

Headers

X-API-Keystring nullable

Response

Verification details returned

idstring uuid required

Unique identifier for the verification

status'pending' | 'queued' | 'in_progress' | 'completed' | 'failed' required

Processing status of a photo verification.

  • pending: Verification created, awaiting processing
  • queued: Added to processing queue
  • in_progress: Actively being analyzed
  • completed: Analysis finished (check result field for outcome)
  • failed: Analysis failed due to an error
failure_reasonstring nullable

Why a failed verification failed, in client terms: sandbox_rejected (the RAW sandbox rejected the file; its message is in raw_metadata.raw_validation_error), attempts_exhausted (every processing attempt died the same way, e.g. timed out on a very large RAW; a plain retry will not help) or processing_error (ours; worth a retry). Null unless status is failed. Decoder refusals do not fail: they complete as unrated_unsupported_format with the variant named.

resultboolean nullable required

Overall authenticity determination: true = authentic, false = not authentic, null = pending

result_confidencenumber nullable required

Legacy 0.0-1.0 score. NOT a probability of authenticity: for pair verifications it is the plain mean of the six non-informational checks (RAW_AUTHENTICITY, RECAPTURE, SSIM, IMAGEHASH, HISTOGRAM, FACES; EXIF, C2PA and image forensics are excluded). SSIM, IMAGEHASH and HISTOGRAM measure how closely the JPEG matches a neutral render of the RAW, so cropping, grading and resizing lower it; FACES contributes a fixed 0.8 when neither file has a face and RECAPTURE a fixed 0.9 when clean, so an unedited camera JPEG scores about 0.95. An abstaining check contributes 0.0. For image-only verifications it is the C2PA check's own confidence. Key on assurance_level; do not present this value as a percentage of certainty.

assurance_level'verified' | 'provisional' | 'provenance' | 'unrated' | 'flagged'

Graded authenticity outcome (replaces the flat pass/fail).

  • verified: RAW+JPEG pair, capture forensically verified, zero abstentions.
  • provisional: pair, capture verified with one incidental abstention.
  • provenance: JPEG-only, C2PA capture-claim from a trusted device signer; provenance only, capture NOT forensically verified.
  • unrated: no usable evidence (see the accompanying reason code). Image-only screening that raises advisory forensic flags also lands here (unrated_indeterminate) — the flags stay in results[].details but, being uncalibrated, they do not brand the photo or demand human review.
  • flagged: checks failed / tampering indicators.

Only verified and provisional set capture_verified=True.

assurance_reasonstring nullable

Qualifier for the level, e.g. 'unrated_no_evidence' or 'unrated_unsupported_format'

verdict'ai_declared' | 'modified_after_signing' | 'provenance_verified' | 'self_declared_ai' | 'unrated'

Evidence-report verdict category (EVIDENCE_REPORT_BACKEND_SPEC §3).

Additive to AssuranceLevel: the legacy level is derived from the verdict by a fixed mapping, so the two fields can never contradict. Exactly one verdict applies, decided by precedence over fact/declaration findings only — observations never participate.

verdict_reason'watermark_detected' | 'c2pa_generative_declared' | 'tampered' | 'invalid_signature' | 'c2pa_trusted_capture' | 'untrusted_signer_generative' | 'iptc_digital_source_type' | 'generator_metadata' | 'container_signature' | 'untrusted_signer' | 'trust_unverified' | 'no_capture_claim' | 'no_trusted_timestamp' | 'unlisted_actions_present' | 'computational_capture_only' | 'unrated_indeterminate' | 'unrated_reviewed_clean' | 'unrated_no_evidence'

Machine-readable refinement of the verdict (EVIDENCE_REPORT_BACKEND_SPEC §3).

A closed enum so the frontend can pre-translate every value. Includes codes for checks that ship in later phases (watermarks, IPTC) — additive rollout without a schema change.

verification_mode'raw_pair' | 'image_only'

Which inputs a verification was run against.

  • raw_pair: RAW + JPEG pair through the full comparison pipeline.
  • image_only: single JPEG through the dedicated C2PA-only flow.
capture_verifiedboolean

True only when optical capture was forensically verified (verified/provisional). Integrators should treat this as the authoritative 'passed' signal.

raw_metadataobject nullable required

EXIF and technical metadata from the RAW file

image_metadataobject nullable required

EXIF and technical metadata from the JPEG file

raw_photo_hashstring nullable required

SHA-256 hash of the RAW file for integrity verification

image_photo_hashstring nullable required

SHA-256 hash of the JPEG file for integrity verification

image_thumbnail_urlstring nullable required

CDN URL for the verification thumbnail image

namestring nullable required

User-provided name or original filename

request_idstring uuid nullable

The verification request this record answers, when it came in through a request link

pipeline_buildstring nullable

CI image tag of the pipeline that produced the result; a build identifier

comment_countinteger

Number of internal comments on this verification

account_idstring uuid required

Account that owns this verification

updated_atstring date-time required

ISO 8601 timestamp of last update

created_atstring date-time required

ISO 8601 timestamp when verification was created

security_scorenumber nullable

Device security score from 0.0 to 1.0 if attestation was provided. Higher = more trustworthy.

attestation_validatedboolean

Whether device attestation was provided and validated

device_fingerprint_idstring uuid nullable

Unique identifier for the device that captured the photo

camera_fingerprint_idstring uuid nullable

Unique identifier for the camera hardware used

sequence_numberinteger nullable

Sequential capture number from the app session for tamper detection

integrity_scorenumber nullable

App integrity score from attestation (0.0 to 1.0)

jailbreak_indicatorsstring[] nullable

List of detected jailbreak/root indicators on the device

capture_gps_latitudenumber nullable

GPS latitude at time of capture

capture_gps_longitudenumber nullable

GPS longitude at time of capture

Changes

No recorded changes to this operation across all 1 revision of this API.