Quickstart

This guide takes you from sign in to your first provenance check. You need a terminal with curl, or any HTTP client.

Create an API key

  1. Open the sign in page and enter your email address.
  2. Open the sign in link that we send you.
  3. The dashboard creates your first key and shows it once. Copy it now.

If you lose a key, revoke it in the dashboard and create a new one. We store only a hash of each key, so we cannot show a key again.

Make your first request

Send a POST request to /v1/detect with the URL of a public image. The API downloads the file, runs every check, and returns the results.

POST
/v1/detect
curl -X POST https://api.provenance.pixellab.nz/v1/detect \
  -H "Authorization: Bearer pv_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/photo.jpg"}'

Read the response

Each entry in matches is one check. The result field has one of three values. found means the marker is present. not_found means the check ran and did not find the marker. unavailable means the check could not run on this file.

Response

{
  "id": "chk_01J5K3W9M2ZC7Q0V4A8B6N1DXY",
  "media": {
    "type": "image/jpeg",
    "bytes": 184320,
    "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
  },
  "matches": [
    {
      "check": "c2pa",
      "result": "found",
      "confidence": 1.0,
      "issuer": "OpenAI",
      "claims": {
        "claim_generator": "ChatGPT",
        "assertions": ["c2pa.actions", "c2pa.hash.data"],
        "signature_verified": false
      }
    },
    {
      "check": "synthid",
      "result": "unavailable",
      "confidence": 0.0,
      "reason": "This check is planned but not available yet."
    },
    { "check": "apple_reference", "result": "not_found", "confidence": 0.8 }
  ],
  "checks_run": [
    "c2pa",
    "synthid",
    "gemini",
    "meta_content_seal",
    "apple_reference"
  ],
  "duration_ms": 412
}

Choose the checks

If you only need some checks, name them in the checks field. The request still costs one API call.

cURL

curl -X POST https://api.provenance.pixellab.nz/v1/detect \
  -H "Authorization: Bearer pv_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/photo.jpg", "checks": ["c2pa"]}'

What is next

Was this page helpful?