> ## Documentation Index
> Fetch the complete documentation index at: https://docs.samsa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Content verification

> The free, unauthenticated public API for checking whether an image or video was made with Samsa.

<Info>
  This API is **separate from the Samsa REST API**. It has its own base URL, takes no
  API key, and spends no credits — so none of the
  [API reference conventions](/api-reference/introduction) (bearer auth, scopes, the
  error envelope, credit accounting) apply to it.
</Info>

Samsa marks its AI-generated content with machine-readable techniques so it can be
detected later. This API is how you read those marks back: upload an image or a video,
and it reports what each technique found.

It is Samsa's public detection mechanism under **Article 50(2) of the EU AI Act**, and
it is free for anyone to use — platforms, newsrooms, researchers, regulators, or
anyone who has an asset and wants to check it.

## Base URL

```
https://detect.samsa.ai
```

No `Authorization` header, no API key, no credits.

## Endpoints

| Endpoint                                                                     | Purpose                                                                      |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [`POST /v1/public/detect`](/content-verification/detect)                     | Check one uploaded image or video.                                           |
| [`GET /v1/public/detect/info`](/content-verification/info)                   | Machine-readable description of each marking technique and how to detect it. |
| [`GET /v1/public/detect/result/{request_id}`](/content-verification/results) | Signed PDF of a past result.                                                 |
| `GET /v1/public/detect/health`                                               | Service status and version — see [Service health](#service-health).          |

## How the verdict is decided

The response reports each technique separately, and one top-level `detected` verdict.
**The verdict comes from C2PA manifest verification**, which is authoritative.
Watermark techniques are corroboration only: they can add attribution when no manifest
is present, but they never override the C2PA verdict.

| Technique                | Role                            | Applies to       | Hosted decode in the Samsa API                                                                                                                                           |
| ------------------------ | ------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| C2PA Content Credentials | Authoritative provenance layer  | Images and video | **Live.** Served by the Samsa public API and by any independent C2PA validator. Attribution of a manifest to Samsa becomes available once production signing is enabled. |
| TrustMark Q              | Image watermark · corroboration | Images           | **Not yet available.** Hosted watermark decode is scheduled before 2 February 2027.                                                                                      |
| Meta Video Seal          | Video watermark · corroboration | Video            | **Not yet available.** Hosted watermark decode is scheduled before 2 February 2027.                                                                                      |

<Warning>
  Because hosted watermark decode is not yet available, the API reports both watermark
  techniques as `not_checked`, never as a false “no watermark”. A `not_checked`
  technique was **never evaluated** — it is not a finding that no watermark is present.
  See [Reading the techniques breakdown](/content-verification/detect#reading-the-techniques-breakdown).
</Warning>

<Card title="How detection works" icon="fingerprint" href="https://detect.samsa.ai/how-detection-works">
  The canonical, per-technique description: algorithm IDs, pinned model artifact
  hashes, the per-lane soft-binding label mapping, decoders, and trust anchoring. It is
  Samsa's public Measure 3.4(b) information for the European Commission and other
  stakeholders. The same content is available as JSON from
  [`GET /v1/public/detect/info`](/content-verification/info).
</Card>

## Retention

Uploads are processed **in memory and never retained**. They are never persisted and
never logged. Only a no-PII audit row — a request reference, a coarse region bucket,
and the verdict facts — is recorded. Where a signed result PDF is issued, it stays
downloadable for **24 hours**.

## Service health

`GET /v1/public/detect/health` returns a minimal status and version payload. It reads
no client data and echoes no PII — use it for uptime probes.

<CodeGroup>
  ```bash curl theme={null}
  curl https://detect.samsa.ai/v1/public/detect/health
  ```

  ```json Response theme={null}
  {
    "status": "healthy",
    "service": "daku-detect",
    "version": "0.1.0",
    "timestamp": "2026-07-25T06:32:42.089977+00:00"
  }
  ```
</CodeGroup>

## Errors

This service does **not** use the Samsa REST API's [error envelope](/guides/errors).
Failures return the plain shape below, and you should branch on the HTTP status:

```json theme={null}
{
  "detail": "Unsupported media type: expected an image or video."
}
```

A `503` additionally carries a `Retry-After` header. Per-endpoint status codes are
listed on each endpoint page.

## Verify independently

You never have to take Samsa's word for a C2PA result. The manifest travels with the
asset, so any independent validator reads the same evidence.

<CardGroup cols={2}>
  <Card title="Content Credentials Verify" icon="badge-check" href="https://verify.contentauthenticity.org">
    Drop the asset into the public C2PA validator and inspect its manifest yourself.
  </Card>

  <Card title="Detection info endpoint" icon="code" href="/content-verification/info">
    The same technique-by-technique information as JSON, including decoder pointers.
  </Card>
</CardGroup>
