Detect Watermark
Detect a watermark in an audio, image, or video file. Audio detection checks both Perth v1 and Perth v2; image/video detection is reported as Perth v2. All three modalities also receive an auxiliary SynthID check.
POST https://app.resemble.ai/api/v2/watermark/detect
Request parameters
For image/video, use the same custom_message that was used when the watermark was applied.
Headers
Examples
Detect an audio watermark
Detect an image watermark synchronously
Detect a video watermark
Initial response
Without Prefer: wait, the API returns the queued job with metrics set to null.
Audio detect jobs do not have a single top-level model_version; each checked version is reported in metrics.model_results. Image/video detect jobs include model_version: "perth_v2".
Fetch detection result
Retrieve the current detection result using its UUID.
GET https://app.resemble.ai/api/v2/watermark/detect/{uuid}/result
Audio detection response
The following result detected a Perth v1 watermark and received a successful negative result from Perth v2:
Interpret the audio verdict
coverage_complete is true only when both versions completed successfully. A positive result remains present if the other detector is unavailable, but coverage_complete will be false.
synthid is an independent boolean returned by SynthID. It does not change overall_status, coverage_complete, or the Perth results. If the SynthID request is unavailable or does not return a valid boolean, the field is omitted; clients must not treat omission as false.
Temporary timeout, connection, rate-limit, and server errors are retried once per detector. If a detector is still unavailable, its model result has this shape:
If both audio detectors are unavailable, the job fails. A successful detector is not repeated when only the other detector needs a retry.
Image/video detection response
Image and video detection returns one public model result identified as perth_v2.
Image/video overall_status can be present, degraded, absent, or inconclusive, based on the available Resemble detection score. Both present and degraded indicate detected Resemble watermark signal. The optional synthid boolean is returned independently for both image and video.
Response fields
Results for jobs created before the versioned audio response was introduced can contain historical flat metrics without overall_status or model_results. Clients reading stored results should tolerate both shapes.
Error handling
Invalid input returns an error response, for example:
The source must be publicly accessible over HTTPS and remain available while processing. Audio and image sources are limited to 25 MB; video sources are limited to 100 MB.
