Provenance marking of API outputs is being rolled out. The signing and
watermarking pipeline is dark-launched — built and staged behind a flag — and
applies to delivered raster files once it goes live. The behavior described here is
the intended state at go-live; until the flag is flipped, API-delivered files are
not yet marked.
What gets marked
Once provenance marking is live, every raster image the API delivers — generation, Magic Edit, img2img, variations, resize, upscale, and background removal — carries two markers:- A C2PA manifest. An industry-standard, cryptographically signed Content Credentials record embedded in the file, stating that the image is AI-generated or AI-modified and how it was produced.
- An invisible watermark. A durable, imperceptible mark carried in the image itself, so provenance survives a screenshot or a metadata strip that would remove the C2PA manifest.
AI-generated vs AI-modified
The provenance record reflects how the image was produced, derived from the operation:The visual EU AI Act marking a viewer sees is applied when an image is downloaded
in the Samsa app — it is a presentation-layer label, and it is not applied to
the files the API delivers. The API returns the asset with its embedded C2PA
manifest and watermark; adding a visible on-image label for your own end users is
your integration’s choice.
Verifying a file
The C2PA manifest is readable with any standard Content Credentials tool — nothing Samsa-specific is required:- Content Credentials Verify — the web verifier at contentcredentials.org/verify: drop in an image to inspect its manifest.
c2patool— the open-source C2PA command-line tool for reading and validating manifests in a pipeline.
SVG: an Art. 50(2) scope-out
Vectorization produces an SVG, which cannot carry a C2PA manifest or an embedded watermark. SVG output is therefore a documented EU AI Act Art. 50(2) scope-out: vector files are delivered unsigned and unwatermarked. Because that output cannot be marked, a vectorization request must acknowledge the scope-out withsvg_acceptance: true:
Two independent gates apply, and both reject before any credits are charged:
Accept the current Terms of Service and Acceptable Use Policy, then retry; the
server-verified acceptance record — not the request flag — is what unlocks delivery.
See also
Vectorization
The SVG operation and its
svg_acceptance request contract.Image operations
The six operations behind these outputs.
Errors
The error envelope and status codes.
Pricing
What each operation costs.

