Threat Intelligence API

Expose Veyon's biometric detection capabilities to your own platform. Scan faces, voices, and videos across 25+ platforms. Initiate automated DMCA takedowns. Monitor identity threats in real time.

Overview

The Veyon API is available on Pro tier and above. Base URL:

https://www.veyon.ai/api/v1

All requests and responses use JSON. Generate your API key from the dashboard under Settings → API Keys.

Authentication

Pass your API key as a Bearer token in the Authorization header:

Authorization: Bearer vyn_your_api_key_here
Your raw API key is shown once at creation time. Store it in an environment variable — it cannot be retrieved again.

Rate Limits

Pro
100 req/day
Enterprise
Custom

Rate limits reset every 24 hours. When exceeded, you receive a 429 response with a resets_at timestamp.

Error Format

All errors return JSON with an error field and an optional hint:

{
  "error": "Daily rate limit exceeded",
  "limit": 100,
  "used": 100,
  "resets_at": "2026-05-11T08:00:00.000Z"
}
StatusMeaning
200Success
400Bad request — missing or invalid parameters
401Invalid or missing API key
403Insufficient scope or tier
404Resource not found
429Rate limit exceeded
500Server error

POST /scan/face

Submit a face image and receive matches across 25+ indexed platforms including social media, dating apps, and adult content sites.

POST /api/v1/scan/face scope: read

Request Body

FieldTypeRequiredDescription
image_base64stringYesBase64-encoded image (JPEG/PNG/WebP)
image_mimestringNoMIME type, default: image/jpeg

Example Request

curl -X POST https://www.veyon.ai/api/v1/scan/face \
  -H "Authorization: Bearer vyn_..." \
  -H "Content-Type: application/json" \
  -d '{
    "image_base64": "/9j/4AAQSkZ...",
    "image_mime": "image/jpeg"
  }'

Example Response

{
  "scan_id": "a1b2c3d4e5f6a7b8",
  "status": "completed",
  "match_count": 3,
  "highest_confidence": 94,
  "matches": [
    {
      "url": "https://instagram.com/...",
      "confidence": 94,
      "platform": "Instagram",
      "thumbnail": null
    }
  ],
  "demo_mode": false,
  "platforms_searched": 25
}

POST /scan/voice

Submit an audio sample and queue a voice clone scan across 10 audio platforms. Returns a job_id for polling.

POST /api/v1/scan/voice scope: read

Request Body

FieldTypeRequiredDescription
audio_base64stringYesBase64-encoded audio (WAV/MP3/OGG, min 5s)
mime_typestringNoMIME type, default: audio/wav

Example Request

curl -X POST https://www.veyon.ai/api/v1/scan/voice \
  -H "Authorization: Bearer vyn_..." \
  -H "Content-Type: application/json" \
  -d '{ "audio_base64": "UklGRiQ...", "mime_type": "audio/wav" }'

Example Response

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "platforms_scanning": 10,
  "poll_url": "/api/v1/scan/voice/status/550e8400-..."
}
Poll GET /api/v1/scan/voice/status/:job_id every 3 seconds until status is completed.

POST /scan/video

Submit a video URL and get back face matches and deepfake classification across 10 video platforms.

POST /api/v1/scan/video scope: read

Request Body

FieldTypeRequiredDescription
video_urlstringYesURL of the video to analyze

Example Response

{
  "job_id": "...",
  "status": "queued",
  "platforms_scanning": 10,
  "includes_deepfake_analysis": true,
  "poll_url": "/api/v1/scan/video/status/..."
}
Deepfake classification runs automatically via GPT-4 Vision on every match found. Poll GET /api/v1/scan/video/status/:job_id for results.

GET /matches/:identity_id

Retrieve all detected matches for a registered identity.

GET /api/v1/matches/:identity_id scope: read

Query Parameters

ParamTypeDescription
limitintegerMax results (default: 50, max: 200)
offsetintegerPagination offset
typestringFilter by face or voice
min_confidencenumberMinimum confidence score (0–100)

Example Response

{
  "identity_id": 42,
  "matches": [
    {
      "id": 123,
      "platform": "Instagram",
      "source_url": "https://...",
      "confidence_score": 92,
      "match_type": "face",
      "is_deepfake": false,
      "detected_at": "2026-05-10T08:00:00Z"
    }
  ],
  "total": 1,
  "limit": 50,
  "offset": 0
}

GET /takedowns/:identity_id

Get takedown history and per-status summary for an identity.

GET /api/v1/takedowns/:identity_id scope: read

Example Response

{
  "identity_id": 42,
  "takedowns": [...],
  "total": 5,
  "status_summary": {
    "submitted": 2,
    "completed": 2,
    "rejected": 1
  }
}

POST /takedowns

Initiate an automated DMCA takedown for a detected match. Requires the takedown scope.

POST /api/v1/takedowns scope: takedown
Takedown scope required. Generate a key with scopes: ["read", "takedown"] to use this endpoint.

Request Body

FieldTypeRequiredDescription
match_idintegerYesID of the match to take down
dmca_typestringNoface_likeness | voice_likeness | deepfake | profile_image | other

Example Response

{
  "takedown_id": "uuid-...",
  "status": "submitted",
  "match_id": 123,
  "dmca_type": "face_likeness",
  "platform": "Instagram",
  "created_at": "2026-05-10T08:00:00Z"
}

GET /monitoring/:identity_id/status

Current monitoring health, threat level, and summary statistics for an identity.

GET /api/v1/monitoring/:identity_id/status scope: read

Example Response

{
  "identity_id": 42,
  "threat_level": "medium",
  "monitoring_active": true,
  "identity": {
    "face_registered": true,
    "voice_registered": true,
    "certificate_issued": true,
    "id_verified": false
  },
  "matches": {
    "total": 7,
    "high_confidence": 2,
    "deepfakes_confirmed": 0,
    "active_threats": 2,
    "last_detected_at": "2026-05-10T07:30:00Z"
  },
  "takedowns": {
    "total": 3,
    "active": 1,
    "resolved": 2
  },
  "platforms_monitored": 25
}

Threat Levels

LevelCondition
noneNo active threats detected
low1–2 active threats, low confidence
medium1+ high-confidence matches or 3–9 active threats
high5+ high-confidence matches or 10+ active threats
criticalConfirmed deepfake detected

GET /ping

Verify your API key and check rate limit quota without consuming a usage credit.

curl https://www.veyon.ai/api/v1/ping \
  -H "Authorization: Bearer vyn_..."

# Response:
{
  "ok": true,
  "key_prefix": "vyn_abc12345",
  "tier": "pro",
  "scopes": ["read"],
  "rate_limit_per_day": 100
}

Need Enterprise access?

Custom rate limits, SLA guarantees, and dedicated support. Contact help@veyon.ai or view pricing.