p-watermark
Check whether content carries a Pruna watermark and signed Content Credentials
p-watermark checks a file for the two marks Pruna adds to the content it generates:
- an invisible watermark, which survives common edits such as resizing and re-compression;
- a C2PA Content Credential, signed metadata that records the content as AI-generated by Pruna.
It returns what it found for each mark and a one-line verdict.
Rate Limit: 30 requests per minute
Category: Watermark Detection
Pricing: Free
Quickstart
Section titled “Quickstart”Upload the file to check
Section titled “Upload the file to check”curl -X POST "https://api.pruna.ai/v1/files" \ -H "apikey: YOUR_API_KEY" \ -F "content=@/path/to/your/file"Check it
Section titled “Check it”curl -X POST 'https://api.pruna.ai/v1/predictions' \ -H 'Content-Type: application/json' \ -H 'apikey: YOUR_API_KEY' \ -H 'Model: p-watermark' \ -H 'Try-Sync: true' \ -d '{ "input": { "media": "https://api.pruna.ai/v1/files/fqadqq42xq" } }'Without Try-Sync, the request returns a prediction ID to poll, like any other model.
Parameters
Section titled “Parameters”Required Parameters
Section titled “Required Parameters”| Parameter | Type | Description |
|---|---|---|
| media | string (URI) | The file to check. Accepts the formats Pruna models output (JPEG, PNG, WebP, MP4, MOV, WebM). |
Output
Section titled “Output”| Field | Type | Description |
|---|---|---|
| watermark_detected | boolean | Whether the invisible Pruna watermark was found |
| bit_accuracy | number | Share of watermark bits recovered, from 0 to 1 |
| p_value | number | Chance of this match on unmarked content; lower is stronger evidence |
| c2pa_present | boolean | Whether the file carries a C2PA Content Credential |
| c2pa_valid | boolean or null | Whether that credential's signature checks out; null when there is none |
| c2pa_signer | string or null | Who signed the credential |
| verdict | string | One-line summary of the result |
Verdicts
Section titled “Verdicts”| Verdict starts with | Meaning |
|---|---|
Verified Pruna content | A valid Content Credential signed by Pruna was found |
Expired Pruna signature | Pruna signed the credential, but its certificate has expired |
Pruna watermark detected | The watermark was found, but no valid Pruna credential (for example, the metadata was stripped) |
AI-generated | A valid credential marks the content as AI-generated, signed by someone other than Pruna |
no Pruna mark found | Neither mark was found |
The watermark on its own does not prove that Pruna generated the content. Only a valid Pruna-signed Content Credential does.
Limits
Section titled “Limits”- Very large files may not be checked for the watermark.
- Re-saving a file usually keeps the watermark but drops the Content Credential.