> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.resemble.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.resemble.ai/_mcp/server.

# Detect Agents

Detect Agents are six managed, ready-to-run media-authenticity investigators. Each agent is designed for a specific verification workflow and combines Resemble Detect evidence with an evidence-based assessment.

Choose a Detect Agent, submit uploaded media or a public URL, and consume the investigation as a Server-Sent Events (SSE) stream. Completed and failed investigations are persisted so you can retrieve their results later.

## Base URL

```text
https://app.resemble.ai/api/v2
```

All requests require an API key:

```http
Authorization: Bearer YOUR_API_KEY
```

Your account must have Detect Agents access. An authenticated account without access receives `403 Forbidden`.

## Available Detect Agents

We offer 6 Detect Agents that you can use out of the box.

| Agent                            | `preset_id`                  | Workflow                                                         | Managed tier    |
| -------------------------------- | ---------------------------- | ---------------------------------------------------------------- | --------------- |
| Investigate Social Media Content | `investigate_social_content` | Decide whether suspicious social content should remain available | `investigation` |
| Review an Insurance Claim        | `review_insurance_claim`     | Determine whether submitted claim evidence is credible           | `investigation` |
| Verify Breaking News Media       | `verify_breaking_news`       | Authenticate and source-trace footage before publishing          | `investigation` |
| Verify a Document or Receipt     | `verify_document`            | Determine whether a submitted record is genuine                  | `forensic`      |
| Verify Submitted Evidence        | `verify_evidence`            | Produce an explainable forensic finding                          | `forensic`      |
| Verify an ID                     | `verify_id`                  | Verify an identity document and the person presenting it         | `forensic`      |

Agent profiles are managed by Resemble. `GET /agents` always returns all six profiles. When a team runs a profile for the first time, its backing state is initialized automatically.

## Public API Scope

The first public release is a read-and-run API. Detect Agents and their configurations are managed by Resemble.

You can:

* List all six Detect Agents available to your team
* Run an investigation with a Detect Agent
* List an agent's investigation runs
* Retrieve a specific investigation run

The supported public contract does not include creating, updating, archiving, or deleting Detect Agents. Agent configuration, tier, and memory are also outside the supported public contract.

## Typical Workflow

1. [List Detect Agents](/detect/agents/list) and select the agent that matches your verification workflow.
2. Save its `uuid` agent identifier and [run an investigation](/detect/agents/run) against a file or public URL.
3. Consume the SSE stream for live evidence and the final assessment.
4. Use the returned `run_id` to retrieve the persisted run, or list the agent's recent runs.

## Detect Agent Shape

`GET /agents` returns read-only metadata for all six Detect Agents. Agent names, capabilities, and ordering are controlled by Resemble and may evolve over time, so use the API response as the source of truth.

```ts
interface DetectAgent {
  id: string; // Stable agent identifier; currently the same as uuid and preset_id
  uuid: string;
  name: string;
  description: string | null;
  preset_id: string;
  tier: "triage" | "investigation" | "forensic";
  memory_preview: string;
  capabilities: {
    media: boolean;
    reverse_search: boolean;
    identity: boolean;
    grounding: boolean;
    structured: boolean;
    tools: boolean;
    knowledge: boolean;
  };
  tagline: string | null;
  activated: boolean;
  created_at: string | null;
  updated_at: string | null;
}
```

> **Note**
>
> The `id`, `uuid`, and `preset_id` fields currently contain the same stable agent identifier, such as `verify_id`. The `tier`, capabilities, and memory-related fields are informational and cannot be changed through the public API.

## Investigation Run Shape

Run-list responses return compact summaries. A run-detail response also includes the replay transcript and audit snapshots recorded during the investigation.

```ts
interface DetectAgentRun {
  uuid: string;
  status: "running" | "completed" | "error";
  result: {
    verdict?: { forced?: boolean; excerpt?: string };
    recommended_action?: string | null;
    confidence?: number | null;
    label?: string | null;
    score?: number | null;
    agent_ran?: boolean | null;
  };
  inputs: {
    query?: string;
    url?: string;
    filename?: string;
    check_urls?: string;
  };
  has_media: boolean;
  created_at: string | null;
  updated_at: string | null;
  transcript?: Array<Record<string, unknown>>;
  config_snapshot?: Record<string, unknown>;
  memory_before?: string;
  memory_after?: string;
  error?: string | null;
  media_url?: string | null;
}
```

> **Note**
>
> Token and cost accounting is retained internally for billing but is never returned in run summaries, run-detail transcripts, or the live SSE stream.

## Endpoints

* [`GET /agents`](/detect/agents/list) — List all six Detect Agents
* [`POST /agents/{uuid}/run`](/detect/agents/run) — Stream an investigation
* [`GET /agents/{uuid}/runs`](/detect/agents/list-runs) — List an agent's recent runs
* [`GET /agents/{uuid}/runs/{run_id}`](/detect/agents/get-run) — Get a persisted run