Inaudible watermarks for generated audio
Embed a watermark in the samples of WAV and MP3 files, then sign them with C2PA Content Credentials. A copy that lost its metadata can still be matched to your record.
- MANIFEST
- Embedded · valid
- WATERMARK
- In the pixels or samples
- RESULT
- Declared origin readable
Recovery is a lead back to your signed record, not cryptographic proof. Picture: AI-generated illustration.
Audio algorithms
| Algorithm | watermark_algorithm |
|---|---|
| Meta AudioSeal, streaming, quality-first (default) | audioseal-mm02-4 |
| Meta AudioSeal, streaming | audioseal |
Neither is on the C2PA soft-binding list today, so the watermark is a server-side recovery signal for your account rather than a binding written into the manifest.
Formats and limits
| Format | Upload limit | Watermark |
|---|---|---|
| WAV | 200 MiB | Yes |
| MP3 | 100 MiB | Yes |
| AAC in MP4 (M4A) | 256 MiB | No: sign and fingerprint |
| FLAC | 200 MiB | No: sign only |
Fingerprints for audio
Add fingerprints with "fingerprint": true next to "watermark": true. The default audio fingerprint is Chromaprint; audfprint and ISCC Audio-Code are selectable. See content fingerprinting.
Billing
One watermark unit per started second of audio, so 12.5 seconds is 13 units. Units are graduated per month, from $0.015 down to $0.0025. Signing is billed once per file.
Watermark and sign an audio file
# After the upload of a WAV or MP3 file is complete:
curl -sS -X POST "$OP_API/v1/sign" \
-H "Authorization: Bearer $OP_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d "{\"asset_id\": \"$ASSET_ID\", \"watermark\": true}"
# 202 returns a job. Poll GET /v1/jobs/{job_id}, or use webhooks.Mark the audio you generate
Create an API key and send a WAV or MP3 file with watermark set to true.

