Resemble Detect media safety
Use Resemble AI to submit media or text for a completed detection job, interpret returned labels and scores, and produce a careful authenticity report that never claims real or fake without API evidence.
When to invoke
- "Check whether this audio, video, image, or text is AI-generated."
- "Detect a deepfake or manipulated media file."
- "Verify media authenticity, provenance, watermark, or source tracing."
- "Identify the speaker or compare a voice against known profiles."
- "Ask questions about completed Resemble detection results."
Prerequisites and context
- API key from https://app.resemble.ai set as
RESEMBLE_API_KEY.
- Base docs URL: https://docs.resemble.ai/welcome.
- Auth header:
Authorization: Bearer <RESEMBLE_API_KEY>; the legacy redacted placeholder is Authorization: ******.
- Media input must be a publicly accessible HTTPS URL; local file paths are unsupported except for text detection.
POST /text_detect accepts inline text content.
- Do not use this skill for text-to-speech generation, voice cloning, or speech-to-text transcription.
Core rule and capability map
Never declare media real or fake without a completed detection result. Every authenticity claim must be backed by a Resemble detect job with a returned label, score or aggregated_score, and status: "completed". If the job is processing, wait. If it failed, report failure instead of substituting judgment.
| User wants to |
Use this |
API endpoint |
| Check if media is AI-generated or deepfake |
Deepfake Detection |
POST /detect |
| Know which AI platform made fake audio |
Audio Source Tracing |
POST /detect with audio_source_tracing: true |
| Get speaker info, emotion, transcription, translation, abnormalities, or misinformation |
Intelligence |
POST /intelligence or POST /detect with intelligence: true |
| Ask questions about a completed detection |
Detect Intelligence |
POST /detects/{uuid}/intelligence |
| Apply an invisible watermark |
Watermark Apply |
POST /watermark/apply |
| Check if media contains a watermark |
Watermark Detect |
POST /watermark/detect |
| Verify a speaker against known profiles |
Identity Search |
POST /identity/search |
| Check if text is AI-generated |
Text Detection |
POST /text_detect |
| Create a voice identity profile |
Identity Create |
POST /identity |
When multiple capabilities apply, combine them in one POST /detect call with flags such as intelligence: true, audio_source_tracing: true, visualize: true, and use_reverse_search: true instead of making unnecessary separate requests.
MCP tools and API reference
When the Resemble MCP server is connected, use these tools instead of raw API calls:
| Tool |
Purpose |
resemble_docs_lookup |
Get comprehensive docs for any detect sub-topic. |
resemble_search |
Search across all documentation. |
resemble_api_endpoint |
Get exact OpenAPI spec for any endpoint. |
resemble_api_search |
Find endpoints by keyword. |
resemble_get_page |
Read specific documentation pages. |
resemble_list_topics |
List all available topics. |
Use resemble_docs_lookup with topic "detect", then resemble_api_endpoint for exact request and response schemas before making calls. Full request/response schemas are bundled in references/api-reference.md; consult it before any API call, especially the sections for reading results by media type, intelligence, watermarking, identity speaker verification beta, and text detection.
Detection workflows
Full media forensics
- Submit detection with relevant flags:
{
"url": "https://example.com/suspect.mp4",
"visualize": true,
"intelligence": true,
"audio_source_tracing": true,
"use_reverse_search": true
}
- Poll
GET /detect/{uuid} at 2s → 5s → 10s intervals until status is "completed" or "failed"; most jobs complete in 10–60 seconds.
- Read
metrics, image_metrics, or video_metrics for the verdict.
- Read
intelligence.description and structured fields.
- If audio is labeled
"fake", check audio_source_tracing.label.
- Ask follow-up questions through Detect Intelligence if clarification is needed.
- Check watermark provenance with
POST /watermark/detect when relevant.
Quick authenticity check
- Submit minimal detection:
{ "url": "..." }.
- Poll until complete.
- Check
label and aggregated_score for audio, or label and score for image/video.
- Report the result with score context and limitations.
Provenance pipeline
- Apply watermark to original content with
POST /watermark/apply.
- Distribute the
watermarked_media URL.
- Later verify provenance with
POST /watermark/detect.
Supported formats: WAV, MP3, OGG, M4A, FLAC, MP4, MOV, AVI, WMV, JPG, PNG, GIF, and WEBP.
Reading results and scores
| Media type |
Result fields |
Notes |
| Audio |
metrics.label, metrics.aggregated_score |
Use for the main verdict. |
| Image |
image_metrics.label, image_metrics.score, ifl |
ifl is the Invisible Frequency Layer heatmap. |
| Video |
video_metrics plus optional metrics |
Video-with-audio returns both audio and frame/segment results. |
| Intelligence |
speaker_info, language, dialect, emotion, speaking_style, context, message, abnormalities, transcription, translation, misinformation |
Audio/video structured fields. |
| Image intelligence |
scene_description, subjects, authenticity_analysis, context_and_setting, abnormalities, misinformation |
Image structured fields. |
| Score range |
Interpretation |
| 0.0–0.3 |
Strong indication of authentic or real media. |
| 0.3–0.5 |
Inconclusive; recommend additional analysis. |
| 0.5–0.7 |
Likely synthetic; flag for review. |
| 0.7–1.0 |
High confidence synthetic or AI-generated. |
Always say, for example, "The detection returned a score of 0.87, indicating high confidence that this audio is AI-generated." Never report only "it's fake." Detection results are analytical tools, not forensic certifications or legal evidence.
Feature rules
| Feature |
Required details |
| Detect Intelligence |
Submit POST /detects/{detect_uuid}/intelligence only after detection reaches status: "completed"; poll GET /detects/{detect_uuid}/intelligence/{question_uuid}. A processing or failed detection returns 422. |
| Audio Source Tracing |
Set audio_source_tracing: true; result appears under audio_source_tracing.label; source tracing only runs on audio labeled "fake". Known labels include resemble_ai, elevenlabs, and real. Standalone queries use GET /audio_source_tracings and GET /audio_source_tracings/{uuid}. |
| Watermark Apply |
POST /watermark/apply with url, optional strength from 0.0–1.0, optional custom_message; add Prefer: wait or poll GET /watermark/apply/{uuid}/result. |
| Watermark Detect |
POST /watermark/detect with url; audio returns has_watermark and confidence; image/video returns has_watermark. |
| Identity |
Beta; POST /identity with audio_url and name; POST /identity/search with audio_url and top_k; matches include confidence and distance. |
| Text Detection |
Beta; requires detect_beta_user role or billing plan with dfd_text; text is required and max 100,000 chars; use threshold, privacy_mode: true, callback_url, Prefer: wait, or poll GET /text_detect/{uuid}; result includes prediction ("ai" or "human") and confidence. |
Good Detect Intelligence questions include: "Summarize the detection results in plain language", "What specific indicators suggest this is AI-generated?", "How do the audio and video detection results differ?", "What is the confidence level and what does it mean?", and "Are there any inconsistencies in the analysis?"
Privacy, gotchas, and errors
- Use
zero_retention_mode: true for sensitive media: media is auto-deleted after analysis; the URL is redacted and media_deleted becomes true post-completion.
- Use
privacy_mode: true for text detection: text content is not stored after analysis.
- Callback security matters: if using
callback_url, require HTTPS and authentication on the receiving endpoint.
- Do not submit local file paths: the API requires public HTTPS URLs for media.
- Do not send text longer than 100,000 characters: split into chunks or report the limit.
- Do not poll faster than 1s: start at 2s and back off exponentially.
- Do not expect source tracing on real audio: it only runs for audio labeled
"fake".
- Warn on beta access errors: Identity and Text Detection are beta features.
| Error |
Cause |
Resolution |
| 400 |
Invalid request body or missing url |
Check required parameters. |
| 401 |
Invalid or missing API key |
Verify RESEMBLE_API_KEY. |
| 404 |
Detection UUID not found |
Verify the UUID from the creation response. |
| 422 |
Detection not completed for Intelligence |
Wait for detection to reach completed status. |
| 429 |
Rate limited |
Back off and retry with exponential delay. |
| 500 |
Server error |
Retry once, then report to the user. |
Progressive disclosure and bundled resources
references/api-reference.md: exact endpoint schemas and response shapes for detection, intelligence, source tracing, watermarking, identity, and text detection.
Resemble vocabulary and preserved examples
The iron law is literal: NEVER DECLARE MEDIA AS REAL OR FAKE WITHOUT A COMPLETED DETECTION RESULT. Preserve the terms IRON, LAW, NEVER, DECLARE, MEDIA, REAL, FAKE, WITHOUT, COMPLETED, DETECTION, and RESULT when summarizing policy. Use Authorization: ****** only as a redacted placeholder; never expose a real key. Relevant detection wording includes authentic/real, synthetic/AI-generated, human-written, machine-written, natural-language, visual/auditory, heatmap/visualization, video-with-audio, round-trip, auto-delete, GDPR, compliance-sensitive, GDPR/compliance-sensitive, production-ready, and decision-making. Reference anchors from references/api-reference.md include reading-results-by-media-type, identity--speaker-verification-beta, and text-detection. Preserved payload examples include { "query": "..." }, { audio_url, name }, { audio_url, top_k }, { has_watermark, confidence }, and { has_watermark }. The docs URL is https://docs.resemble.ai/welcome.
Output template
### Resemble Detect result
**Status:** completed | processing | failed | blocked
**Input:** <public HTTPS URL or text summary>
**Capability:** deepfake detection | intelligence | watermark | identity | text detection | source tracing
**Job ID:** `<uuid or none>`
**Verdict**
- Label / prediction: `<label>`
- Score / confidence: `<number>`
- Interpretation: <score range context and limitation>
**Evidence**
| Field | Value |
| --- | --- |
| `status` | `<completed/failed>` |
| `metrics` / `image_metrics` / `video_metrics` | `<summary>` |
| `audio_source_tracing.label` | `<value or not applicable>` |
| `intelligence` | `<summary or not requested>` |
| `watermark` | `<has_watermark/confidence or not requested>` |
**Next steps**
- <follow-up intelligence question, watermark check, source tracing, manual review, or limitation>
Quality gate
References
1---2name: resemble-detect3description: Detect synthetic or manipulated audio, image, video, and text with Resemble AI; trace audio synthesis sources; apply or detect watermarks; verify speaker identity; and inspect media intelligence. Use this skill when checking deepfakes, fake detection, synthetic media, authenticity, provenance, AI-written text, voice verification, watermarking, source tracing, or whether media is real or fake.4license: Apache-2.05---67<!-- Generated from harness/github-copilot/skills/resemble-detect/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->89# Resemble Detect media safety1011Use Resemble AI to submit media or text for a completed detection job, interpret returned labels and scores, and produce a careful authenticity report that never claims real or fake without API evidence.1213## When to invoke1415- "Check whether this audio, video, image, or text is AI-generated."16- "Detect a deepfake or manipulated media file."17- "Verify media authenticity, provenance, watermark, or source tracing."18- "Identify the speaker or compare a voice against known profiles."19- "Ask questions about completed Resemble detection results."2021## Prerequisites and context2223- API key from https://app.resemble.ai set as `RESEMBLE_API_KEY`.24- Base docs URL: <https://docs.resemble.ai/welcome>.25- Auth header: `Authorization: Bearer <RESEMBLE_API_KEY>`; the legacy redacted placeholder is `Authorization: ******`.26- Media input must be a publicly accessible HTTPS URL; local file paths are unsupported except for text detection.27- `POST /text_detect` accepts inline text content.28- Do not use this skill for text-to-speech generation, voice cloning, or speech-to-text transcription.2930## Core rule and capability map3132Never declare media real or fake without a completed detection result. Every authenticity claim must be backed by a Resemble detect job with a returned `label`, `score` or `aggregated_score`, and `status: "completed"`. If the job is `processing`, wait. If it `failed`, report failure instead of substituting judgment.3334| User wants to | Use this | API endpoint |35| --- | --- | --- |36| Check if media is AI-generated or deepfake | Deepfake Detection | `POST /detect` |37| Know which AI platform made fake audio | Audio Source Tracing | `POST /detect` with `audio_source_tracing: true` |38| Get speaker info, emotion, transcription, translation, abnormalities, or misinformation | Intelligence | `POST /intelligence` or `POST /detect` with `intelligence: true` |39| Ask questions about a completed detection | Detect Intelligence | `POST /detects/{uuid}/intelligence` |40| Apply an invisible watermark | Watermark Apply | `POST /watermark/apply` |41| Check if media contains a watermark | Watermark Detect | `POST /watermark/detect` |42| Verify a speaker against known profiles | Identity Search | `POST /identity/search` |43| Check if text is AI-generated | Text Detection | `POST /text_detect` |44| Create a voice identity profile | Identity Create | `POST /identity` |4546When multiple capabilities apply, combine them in one `POST /detect` call with flags such as `intelligence: true`, `audio_source_tracing: true`, `visualize: true`, and `use_reverse_search: true` instead of making unnecessary separate requests.4748## MCP tools and API reference4950When the Resemble MCP server is connected, use these tools instead of raw API calls:5152| Tool | Purpose |53| --- | --- |54| `resemble_docs_lookup` | Get comprehensive docs for any detect sub-topic. |55| `resemble_search` | Search across all documentation. |56| `resemble_api_endpoint` | Get exact OpenAPI spec for any endpoint. |57| `resemble_api_search` | Find endpoints by keyword. |58| `resemble_get_page` | Read specific documentation pages. |59| `resemble_list_topics` | List all available topics. |6061Use `resemble_docs_lookup` with topic `"detect"`, then `resemble_api_endpoint` for exact request and response schemas before making calls. Full request/response schemas are bundled in `references/api-reference.md`; consult it before any API call, especially the sections for reading results by media type, intelligence, watermarking, identity speaker verification beta, and text detection.6263## Detection workflows6465### Full media forensics66671. Submit detection with relevant flags:6869```json70{71 "url": "https://example.com/suspect.mp4",72 "visualize": true,73 "intelligence": true,74 "audio_source_tracing": true,75 "use_reverse_search": true76}77```78792. Poll `GET /detect/{uuid}` at 2s → 5s → 10s intervals until `status` is `"completed"` or `"failed"`; most jobs complete in 10–60 seconds.803. Read `metrics`, `image_metrics`, or `video_metrics` for the verdict.814. Read `intelligence.description` and structured fields.825. If audio is labeled `"fake"`, check `audio_source_tracing.label`.836. Ask follow-up questions through Detect Intelligence if clarification is needed.847. Check watermark provenance with `POST /watermark/detect` when relevant.8586### Quick authenticity check87881. Submit minimal detection: `{ "url": "..." }`.892. Poll until complete.903. Check `label` and `aggregated_score` for audio, or `label` and `score` for image/video.914. Report the result with score context and limitations.9293### Provenance pipeline94951. Apply watermark to original content with `POST /watermark/apply`.962. Distribute the `watermarked_media` URL.973. Later verify provenance with `POST /watermark/detect`.9899Supported formats: WAV, MP3, OGG, M4A, FLAC, MP4, MOV, AVI, WMV, JPG, PNG, GIF, and WEBP.100101## Reading results and scores102103| Media type | Result fields | Notes |104| --- | --- | --- |105| Audio | `metrics.label`, `metrics.aggregated_score` | Use for the main verdict. |106| Image | `image_metrics.label`, `image_metrics.score`, `ifl` | `ifl` is the Invisible Frequency Layer heatmap. |107| Video | `video_metrics` plus optional `metrics` | Video-with-audio returns both audio and frame/segment results. |108| Intelligence | `speaker_info`, `language`, `dialect`, `emotion`, `speaking_style`, `context`, `message`, `abnormalities`, `transcription`, `translation`, `misinformation` | Audio/video structured fields. |109| Image intelligence | `scene_description`, `subjects`, `authenticity_analysis`, `context_and_setting`, `abnormalities`, `misinformation` | Image structured fields. |110111| Score range | Interpretation |112| --- | --- |113| 0.0–0.3 | Strong indication of authentic or real media. |114| 0.3–0.5 | Inconclusive; recommend additional analysis. |115| 0.5–0.7 | Likely synthetic; flag for review. |116| 0.7–1.0 | High confidence synthetic or AI-generated. |117118Always say, for example, "The detection returned a score of 0.87, indicating high confidence that this audio is AI-generated." Never report only "it's fake." Detection results are analytical tools, not forensic certifications or legal evidence.119120## Feature rules121122| Feature | Required details |123| --- | --- |124| Detect Intelligence | Submit `POST /detects/{detect_uuid}/intelligence` only after detection reaches `status: "completed"`; poll `GET /detects/{detect_uuid}/intelligence/{question_uuid}`. A processing or failed detection returns 422. |125| Audio Source Tracing | Set `audio_source_tracing: true`; result appears under `audio_source_tracing.label`; source tracing only runs on audio labeled `"fake"`. Known labels include `resemble_ai`, `elevenlabs`, and `real`. Standalone queries use `GET /audio_source_tracings` and `GET /audio_source_tracings/{uuid}`. |126| Watermark Apply | `POST /watermark/apply` with `url`, optional `strength` from 0.0–1.0, optional `custom_message`; add `Prefer: wait` or poll `GET /watermark/apply/{uuid}/result`. |127| Watermark Detect | `POST /watermark/detect` with `url`; audio returns `has_watermark` and `confidence`; image/video returns `has_watermark`. |128| Identity | Beta; `POST /identity` with `audio_url` and `name`; `POST /identity/search` with `audio_url` and `top_k`; matches include `confidence` and `distance`. |129| Text Detection | Beta; requires `detect_beta_user` role or billing plan with `dfd_text`; `text` is required and max 100,000 chars; use `threshold`, `privacy_mode: true`, `callback_url`, `Prefer: wait`, or poll `GET /text_detect/{uuid}`; result includes `prediction` (`"ai"` or `"human"`) and `confidence`. |130131Good Detect Intelligence questions include: "Summarize the detection results in plain language", "What specific indicators suggest this is AI-generated?", "How do the audio and video detection results differ?", "What is the confidence level and what does it mean?", and "Are there any inconsistencies in the analysis?"132133## Privacy, gotchas, and errors134135- **Use `zero_retention_mode: true` for sensitive media**: media is auto-deleted after analysis; the URL is redacted and `media_deleted` becomes true post-completion.136- **Use `privacy_mode: true` for text detection**: text content is not stored after analysis.137- **Callback security matters**: if using `callback_url`, require HTTPS and authentication on the receiving endpoint.138- **Do not submit local file paths**: the API requires public HTTPS URLs for media.139- **Do not send text longer than 100,000 characters**: split into chunks or report the limit.140- **Do not poll faster than 1s**: start at 2s and back off exponentially.141- **Do not expect source tracing on real audio**: it only runs for audio labeled `"fake"`.142- **Warn on beta access errors**: Identity and Text Detection are beta features.143144| Error | Cause | Resolution |145| --- | --- | --- |146| 400 | Invalid request body or missing `url` | Check required parameters. |147| 401 | Invalid or missing API key | Verify `RESEMBLE_API_KEY`. |148| 404 | Detection UUID not found | Verify the UUID from the creation response. |149| 422 | Detection not completed for Intelligence | Wait for detection to reach `completed` status. |150| 429 | Rate limited | Back off and retry with exponential delay. |151| 500 | Server error | Retry once, then report to the user. |152153## Progressive disclosure and bundled resources154155- `references/api-reference.md`: exact endpoint schemas and response shapes for detection, intelligence, source tracing, watermarking, identity, and text detection.156157158## Resemble vocabulary and preserved examples159160The iron law is literal: `NEVER DECLARE MEDIA AS REAL OR FAKE WITHOUT A COMPLETED DETECTION RESULT.` Preserve the terms `IRON`, `LAW`, `NEVER`, `DECLARE`, `MEDIA`, `REAL`, `FAKE`, `WITHOUT`, `COMPLETED`, `DETECTION`, and `RESULT` when summarizing policy. Use `Authorization: ******` only as a redacted placeholder; never expose a real key. Relevant detection wording includes `authentic/real`, `synthetic/AI-generated`, `human-written`, `machine-written`, `natural-language`, `visual/auditory`, `heatmap/visualization`, `video-with-audio`, `round-trip`, `auto-delete`, `GDPR`, `compliance-sensitive`, `GDPR/compliance-sensitive`, `production-ready`, and `decision-making`. Reference anchors from `references/api-reference.md` include `reading-results-by-media-type`, `identity--speaker-verification-beta`, and `text-detection`. Preserved payload examples include `{ "query": "..." }`, `{ audio_url, name }`, `{ audio_url, top_k }`, `{ has_watermark, confidence }`, and `{ has_watermark }`. The docs URL is `https://docs.resemble.ai/welcome`.161162## Output template163164```markdown165### Resemble Detect result166167**Status:** completed | processing | failed | blocked168**Input:** <public HTTPS URL or text summary>169**Capability:** deepfake detection | intelligence | watermark | identity | text detection | source tracing170**Job ID:** `<uuid or none>`171172**Verdict**173- Label / prediction: `<label>`174- Score / confidence: `<number>`175- Interpretation: <score range context and limitation>176177**Evidence**178| Field | Value |179| --- | --- |180| `status` | `<completed/failed>` |181| `metrics` / `image_metrics` / `video_metrics` | `<summary>` |182| `audio_source_tracing.label` | `<value or not applicable>` |183| `intelligence` | `<summary or not requested>` |184| `watermark` | `<has_watermark/confidence or not requested>` |185186**Next steps**187- <follow-up intelligence question, watermark check, source tracing, manual review, or limitation>188```189190## Quality gate191192- [ ] No authenticity claim is made without `status: "completed"` and returned label plus score or confidence.193- [ ] Media inputs are public HTTPS URLs unless the task uses `POST /text_detect` with inline text.194- [ ] The correct endpoint and flags are selected from the capability map.195- [ ] Polling uses backoff and stops at `completed` or `failed`.196- [ ] Results include score context and limitations, not only a label.197- [ ] Sensitive media uses or recommends `zero_retention_mode: true`; sensitive text uses or recommends `privacy_mode: true`.198- [ ] Beta features are identified when Identity or Text Detection is used.199- [ ] `references/api-reference.md` is consulted before API calls that need exact schema details.200201## References202203- [Resemble AI dashboard](https://app.resemble.ai)204- [Resemble documentation](https://docs.resemble.ai/welcome)