---
title: "Camera-Provenance Check"
method: POST
path: "/v1/tools/check_camera_provenance"
tags: ["TODO_TAGS_REVIEW", "TODO_AP2_EXPORT_REVIEW"]
---

# Camera-Provenance Check

`POST /v1/tools/check_camera_provenance`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/check_camera_provenance`
- Auth: none declared

Structural check on an IDV/KYC capture's C2PA manifest: claim well-formedness, hard-binding hash assertion, and claim-signature reference (art-123 reuse), plus a digitalSourceType read off the c2pa.actions assertion that flags trainedAlgorithmicMedia so a downstream reader knows the capture was declared AI-generated rather than a live camera capture. Structural check only, no trust-list or chain-of-trust claim. Feeds the session receipt builder's capture-chain field (art-359).

**Tool URL:** https://ainumbers.co/chaingraph/art-361-camera-provenance-check.html

## Request body

- object
  - `assertions` unknown[], required
    - unknown
  - `claim` unknown, required
  - `claim_generator` unknown, required
  - `manifest_digest` unknown, required
  - `signature` unknown, required

## Response `200`

Successful tool execution result

- object
  - `capture_chain_field` object
    - `label` string
    - `manifest_digest` string
    - `manifest_present` boolean
  - `digital_source_type` string
  - `has_actions` boolean
  - `has_hard_binding` boolean
  - `manifest_present` boolean
  - `manifest_valid` boolean
  - `missing_elements` unknown[]
    - unknown
  - `note` string
  - `provenance_label` string
  - `rejected` boolean
  - `trained_algorithmic_media_flagged` boolean

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
