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

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

All requests require an API key:

1Authorization: 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.

Agentpreset_idWorkflowManaged tier
Investigate Social Media Contentinvestigate_social_contentDecide whether suspicious social content should remain availableinvestigation
Review an Insurance Claimreview_insurance_claimDetermine whether submitted claim evidence is credibleinvestigation
Verify Breaking News Mediaverify_breaking_newsAuthenticate and source-trace footage before publishinginvestigation
Verify a Document or Receiptverify_documentDetermine whether a submitted record is genuineforensic
Verify Submitted Evidenceverify_evidenceProduce an explainable forensic findingforensic
Verify an IDverify_idVerify an identity document and the person presenting itforensic

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 and select the agent that matches your verification workflow.
  2. Save its uuid agent identifier and run an investigation 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.

1interface DetectAgent {
2 uuid: string; // Stable agent identifier; currently the same as preset_id
3 name: string;
4 description: string | null;
5 preset_id: string;
6 tier: "triage" | "investigation" | "forensic";
7 memory_preview: string;
8 capabilities: {
9 media: boolean;
10 reverse_search: boolean;
11 identity: boolean;
12 grounding: boolean;
13 structured: boolean;
14 tools: boolean;
15 knowledge: boolean;
16 };
17 tagline: string | null;
18 created_at: string | null;
19 updated_at: string | null;
20}

The 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.

1interface DetectAgentRun {
2 uuid: string;
3 status: "running" | "completed" | "error";
4 result: {
5 verdict?: { forced?: boolean; excerpt?: string };
6 recommended_action?: string | null;
7 confidence?: number | null;
8 label?: string | null;
9 score?: number | null;
10 agent_ran?: boolean | null;
11 };
12 inputs: {
13 query?: string;
14 url?: string;
15 filename?: string;
16 check_urls?: string;
17 };
18 has_media: boolean;
19 created_at: string | null;
20 updated_at: string | null;
21 transcript?: Array<Record<string, unknown>>;
22 config_snapshot?: Record<string, unknown>;
23 memory_before?: string;
24 memory_after?: string;
25 error?: string | null;
26 media_url?: string | null;
27}

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