Skip to content

52 media types, three ways to attach a manifest

Images, audio and video that we decode can take a watermark and fingerprints. Further containers are signed without decoding. Documents, text, fonts and model files get a sidecar manifest.

52media types · capability snapshot

Embedded9 types

Decoded. The manifest goes inside the file; watermark and fingerprints are available.

  • AAC / M4A
  • MP3
  • WAV
  • AVIF
  • JPEG
  • PNG
  • TIFF
  • WebP
  • MP4

Structural11 types

Not decoded. The manifest is written into the container. Sign only.

  • FLAC
  • GIF
  • HEIC
  • HEIC seq
  • HEIF
  • HEIF seq
  • JPEG XL
  • SVG
  • DNG
  • MOV
  • AVI

Sidecar32 types

The bytes stay unchanged; a separate .c2pa manifest is published beside them.

  • EPUB
  • ONNX
  • oxps
  • PDF
  • ODT
  • DOCX
  • jax
  • keras
  • mlnet
  • mxnet
  • npy
  • openvino-ir+xml
  • openvino-weights
  • pickle
  • protobuf
  • pytorch
  • tensorflow
  • tensorflow-savedmodel
  • zip-based
  • xhtml+xml
  • xml
  • MPA
  • aac
  • riff-based
  • OTF
  • riff-based
  • tiff-based
  • HTML
  • TXT
  • xml
  • bmff-based
  • riff-based

watermark available · GET /v1/capabilities is the live authority

Embedded (decoded)

The manifest is embedded in the file. These types can also take an invisible watermark and fingerprints, depending on the recipe.

FormatMedia typeUpload limitSignWatermarkFingerprint
JPEGimage/jpeg25 MiBYesYesYes
PNGimage/png50 MiBYesYesYes
WebPimage/webp50 MiBYesYesYes
TIFFimage/tiff128 MiBYesYesYes
AVIFimage/avif50 MiBYesYesYes
WAVaudio/wav200 MiBYesYesYes
MP3audio/mpeg100 MiBYesYesYes
AAC / M4Aaudio/mp4256 MiBYesNoYes
MP4video/mp4256 MiBYesYesYes

AAC audio in MP4 takes a manifest and fingerprints, but no watermark.

Structural (not decoded)

The signing engine writes a manifest into the container without decoding the media. Sign only: no watermark and no fingerprint.

FormatMedia typeUpload limit
FLACaudio/flac200 MiB
GIFimage/gif50 MiB
HEICimage/heic50 MiB
HEIC sequenceimage/heic-sequence128 MiB
HEIFimage/heif50 MiB
HEIF sequenceimage/heif-sequence128 MiB
JPEG XLimage/jxl50 MiB
SVGimage/svg+xml16 MiB
DNGimage/x-adobe-dng128 MiB
QuickTime (MOV)video/quicktime256 MiB
AVIvideo/x-msvideo256 MiB

Sidecar manifest

The file's bytes are not changed. Its C2PA manifest is published beside it as a separate .c2pa file, which you keep next to the asset. Sign only.

KindMedia typesUpload limit
Documentsapplication/epub+zip, application/oxps, application/pdf, application/vnd.oasis.opendocument.text, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/x-zip-based32 MiB
Textapplication/xhtml+xml, application/xml, text/html, text/plain, text/xml32 MiB (HTML 4 MiB)
Fontsfont/otf32 MiB
ML modelsapplication/onnx, application/x-jax, application/x-keras, application/x-mlnet, application/x-mxnet, application/x-npy, application/x-openvino-ir+xml, application/x-openvino-weights, application/x-pickle, application/x-protobuf, application/x-pytorch, application/x-tensorflow, application/x-tensorflow-savedmodel32 MiB
Imageimage/x-riff-based, image/x-tiff-based32 MiB
Audioaudio/MPA, audio/aac, audio/x-riff-based32 MiB
Videovideo/x-bmff-based, video/x-riff-based32 MiB

Text has no watermark. Marking text under a rule such as EU AI Act Article 50(2) needs a separate solution.

Check at run time

These tables come from the capability snapshot the API is built with. A deployment can enable fewer types, so GET /v1/capabilities is the authority at run time. It lists, per media type, the recipes, watermark algorithms and fingerprints your key can use, and whether each is available now.

Not sure your format fits?

Tell us the media types you publish and we will show you which lane and recipe each one takes.