multipart/form-data. The response carries one
top-level detected verdict plus a per-technique breakdown. No authentication, no
credits. The upload is processed in memory and never retained.
Request
Send exactly one file part namedfile. The part must carry a filename in its
Content-Disposition header — a plain form field without one is not a file part.
JPEG/PNG/WebP/GIF and MP4/QuickTime are recognised by magic bytes, so a wrong or
generic part
Content-Type (for example application/octet-stream) does not break
detection for those formats. WebM has no magic-byte branch and is accepted only
when the part declares Content-Type: video/webm.Response
200 OK. An image or video that carries a valid, trusted Samsa C2PA manifest:
Response
result_pdf_url may be null. When it is present, follow it exactly as returned
rather than assembling the URL yourself — the returned URL and the
documented result endpoint serve the identical
signed PDF.The detected verdict
The verdict comes from C2PA manifest verification, which is authoritative. Watermark
techniques are corroboration: they can supply attribution when no manifest is present,
but they never override a manifest verdict.
Reading the techniques breakdown
techniques[] always starts with the single metadata entry (the authoritative C2PA
layer), followed by the watermark techniques applicable to the asset’s modality.
The metadata technique
C2PA manifest verification is live: it is 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.
Watermark techniques
Because hosted watermark decode is not yet live, every watermark entry currently comes
back as
not_checked with confidence: null. Watermark entries carry no technique
name of their own — for the algorithm IDs, pinned model artifact hashes, per-lane
soft-binding labels, and open-source decoders behind each technique, read
How detection works or
GET /v1/public/detect/info.
Errors
Errors return{"detail": "…"} — not the Samsa REST API
error envelope.

