Documentation / Endpoints

Deepfake Detection API Endpoint Reference

Complete reference for all deepfake detection API endpoints. All requests require an Authorization: Bearer header.

POST/v1/detectSingle media detection

Analyze a single image, video, or audio file for deepfake manipulation. Supports direct file upload, base64-encoded data, and URL fetch.

Request Parameters

ParameterTypeRequiredDescription
mediafileYes*Media file (image, video, or audio)
urlstringYes*URL of media file to fetch and analyze
modestringNostandard | frame_analysis | heatmap
webhook_urlstringNoURL for async result delivery (video/audio)

* Either media or url is required.

Response

200 OK
{
  "id": "det_abc123xyz",
  "score": 0.97,
  "label": "deepfake",
  "confidence": "very_high",
  "manipulation": "face_swap",
  "media_type": "image",
  "heatmap_url": "https://deepfakedetectionapi.com/heatmaps/det_abc123xyz.png",
  "frames_analyzed": null,
  "processing_time_ms": 342,
  "created_at": "2026-01-15T10:30:00Z"
}
POST/v1/batchBatch processing

Submit multiple media files for batch deepfake analysis. Results are delivered via webhook. Requires Pro plan or higher.

Request Parameters

ParameterTypeDescription
urlsstring[]Array of media URLs to analyze (max 100)
webhook_urlstringURL for batch result delivery (required)
modestringAnalysis mode applied to all items

Response

202 Accepted
{
  "batch_id": "batch_xyz789",
  "status": "processing",
  "total_items": 25,
  "webhook_url": "https://yourapp.com/webhooks/deepfake",
  "estimated_completion_seconds": 120
}
GET/v1/usageAccount usage stats

Retrieve your current billing period usage statistics, including scan counts by media type.

Response

200 OK
{
  "plan": "pro",
  "period_start": "2026-02-01",
  "period_end": "2026-02-28",
  "scans_used": 12847,
  "scans_limit": 25000,
  "scans_by_type": {
    "image": 8234,
    "video": 3891,
    "audio": 722
  }
}

Webhook Configuration

For async video and audio processing, provide a webhook_url parameter. The API will POST results to your URL when processing is complete.

Webhook Payload
{
  "event": "detection.completed",
  "data": {
    "id": "det_abc123xyz",
    "score": 0.94,
    "label": "deepfake",
    "manipulation": "lip_sync",
    "media_type": "video",
    "frames_analyzed": 842,
    "processing_time_ms": 15230
  }
}

Error Codes

CodeStatusDescription
400Bad RequestInvalid parameters or unsupported media format
401UnauthorizedMissing or invalid API key
413Payload Too LargeFile exceeds maximum size (100MB)
429Rate LimitedMonthly scan limit exceeded
500Server ErrorInternal processing error — retry with exponential backoff