Skip to main content
Encypher Logo
Signing your content is free. See it on your own words in two minutes.Start free

C2PA Supported Media Types

77 file and media formats signed and verified with C2PA provenance embedding. One API, one key, every content type you publish.
15
Images
7
Audio
9
Video
29
Documents
3
Fonts

The tiles above count the container formats. Text adds 14 more, for 77 file and media formats in all. Of those, 20 are covered by Encypher's official C2PA conformance record. That record is a separate and narrower measure, and the two numbers never mean the same thing. Counts come from the signing and verification matrix the API publishes. The tables below list the formats with a detail page of their own.

How Embedding Differs by Format

C2PA uses container-native embedding methods for each format type. The manifest data is placed in the format-standard location for extension data, ensuring compatibility with existing tools that process each format.

Images

15 image formats with JUMBF manifest embedding

FormatMIME TypeEmbedding Method
JPEGimage/jpegJUMBF box appended to file after EOI marker, per C2PA specification
PNGimage/pngJUMBF data stored in a custom PNG chunk, per C2PA specification
WebPimage/webpJUMBF data stored in a RIFF-based WebP container chunk
TIFFimage/tiffJUMBF box stored in TIFF IFD structure, per C2PA specification
AVIFimage/avifJUMBF box in ISO BMFF container (AVIF uses HEIF container)
HEICimage/heicJUMBF box in ISO BMFF/HEIF container
HEIC Sequenceimage/heic-sequenceJUMBF box in ISO BMFF/HEIF sequence container
HEIFimage/heifJUMBF box in ISO BMFF/HEIF container
HEIF Sequenceimage/heif-sequenceJUMBF box in ISO BMFF/HEIF sequence container
SVGimage/svg+xmlJUMBF data encoded and stored in SVG metadata element
DNGimage/x-adobe-dngJUMBF box stored in TIFF/EP IFD structure (DNG is TIFF-based)
GIFimage/gifJUMBF data stored in GIF application extension block
JPEG XLimage/jxlCustom JUMBF/COSE structural embedding (c2pa-python does not yet natively support JXL)

Audio

7 audio formats across RIFF, ID3, and ISO BMFF containers

FormatMIME TypeEmbedding Method
WAVaudio/wavJUMBF data stored in a RIFF chunk within the WAV container
MP3audio/mpegJUMBF data stored in an ID3v2 GEOB (General Encapsulated Object) frame
M4Aaudio/mp4JUMBF data stored in an ISO BMFF uuid box within the MP4/M4A container
AACaudio/aacJUMBF data stored in an ISO BMFF uuid box (AAC in MP4/M4A container)
FLACaudio/flacCustom JUMBF/COSE structural embedding (c2pa-python does not yet natively support FLAC)
MPAaudio/mpaJUMBF data stored in MPEG audio frame structure

Video

9 video formats with ISO BMFF, Matroska, MXF, and RIFF embedding

FormatMIME TypeEmbedding Method
MP4video/mp4JUMBF data stored in an ISO BMFF uuid box within the MP4 container
MOVvideo/quicktimeJUMBF data stored in a QuickTime uuid atom within the MOV container
M4Vvideo/x-m4vJUMBF data stored in an ISO BMFF uuid box within the M4V container
AVIvideo/x-msvideoJUMBF data stored in a RIFF chunk within the AVI container

Documents

29 document formats with custom JUMBF/COSE embedding

FormatMIME TypeEmbedding Method
PDFapplication/pdfCustom JUMBF/COSE structural embedding with two-pass manifest insertion (c2pa-python does not yet natively support PDF embedding)
EPUBapplication/epub+zipCustom JUMBF/COSE structural embedding within the EPUB ZIP container
DOCXapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentCustom JUMBF/COSE structural embedding within the OOXML ZIP container
ODTapplication/vnd.oasis.opendocument.textCustom JUMBF/COSE structural embedding within the ODF ZIP container
OXPSapplication/oxpsCustom JUMBF/COSE structural embedding within the OpenXPS ZIP container

Fonts

3 font formats with custom JUMBF/COSE embedding

FormatMIME TypeEmbedding Method
OTFfont/otfCustom JUMBF/COSE structural embedding in OpenType font tables
TTFfont/ttfCustom JUMBF/COSE structural embedding in TrueType font tables
SFNTfont/sfntCustom JUMBF/COSE structural embedding in SFNT font container tables

Text Content

Unstructured text - articles, social posts, email, and any plain text - is covered by the C2PA standard for unstructured text, which Encypher contributed to the specification. Text does not have a file container, so provenance is embedded using invisible Unicode characters within the text itself.

Text is not included in the MIME type table because it does not have a single MIME type - it covers text/plain, text/html content bodies, and any unstructured text context. See Text Content Provenance and the C2PA text-provenance standard for details.

Verification Pipeline

Encypher uses two verification pipelines depending on format:

  • c2pa-python-native

    Formats natively supported by the c2pa-python library: the image formats, most audio formats (WAV, MP3, M4A, AAC), and the ISO BMFF video formats. The c2pa-python library handles manifest extraction and signature verification directly.

  • custom-jumbf-cose

    Formats requiring custom implementation: FLAC, JPEG XL, the document formats, and the font formats. Encypher implements JUMBF embedding and COSE signing directly for these formats. Verification uses the same cryptographic primitives with custom manifest extraction.

Signing via the API

Every supported media type is accessible through a single signing endpoint. Format detection is automatic based on file content, not file extension:

# Sign any media file - format auto-detected

curl -X POST https://api.encypher.com/api/v1/sign/media \

-H "Authorization: Bearer ey_your_key_here" \

-F "file=@content.pdf"

Related resources

77 formats in one API

One API key, all media types. Free tier includes unlimited signing for normal publishing use. Verification is always free.
Start free

Related