Authentication

All API requests require authentication using an API key. Include your key in the Authorization header:

Authorization: Bearer vs_live_your_api_key_here

You can generate API keys from your dashboard. Keep your keys secure — they grant full access to your account.

Base URL

All API endpoints are relative to:

https://api.voiceseal.io/v1

Error Handling

VoiceSeal uses conventional HTTP response codes. Errors include a JSON body with details:

{
  "error": {
    "code": "invalid_audio",
    "message": "Audio file must be at least 10 seconds long",
    "param": "audio_file"
  }
}
Code Description
200 Success
400 Bad request — invalid parameters
401 Unauthorized — invalid API key
403 Forbidden — insufficient permissions
429 Rate limited — too many requests
500 Server error — contact support

Enroll Voice

POST/enrollment

Create a new voiceprint from an audio sample. Requires at least 10 seconds of clear speech.

Request Body

Parameter Type Description
audio_file required file Audio file (WAV, MP3, M4A). Min 10 seconds.
consent_token required string BIPA consent token from consent flow
metadata object Optional metadata (name, external_id)

Example Request

curl -X POST https://api.voiceseal.io/v1/enrollment \
  -H "Authorization: Bearer vs_live_xxx" \
  -F "audio_file=@sample.wav" \
  -F "consent_token=ct_abc123" \
  -F 'metadata={"name": "John Doe"}'

Response

{
  "id": "vp_1a2b3c4d5e",
  "status": "active",
  "created_at": "2026-01-08T12:00:00Z",
  "embedding_version": "v2.1",
  "quality_score": 0.94
}

Detect Clone

POST/detection/analyze

Analyze audio to detect if it's a synthetic voice or unauthorized clone.

Request Body

Parameter Type Description
audio_file required file Audio file to analyze
voiceprint_id string Optional: check against specific voiceprint
check_watermark boolean Also check for embedded watermark

Response

{
  "is_synthetic": true,
  "confidence": 0.987,
  "detection_type": "deepfake",
  "matched_voiceprint": "vp_1a2b3c4d5e",
  "watermark": {
    "present": false,
    "licensed": false
  },
  "evidence_report_url": "https://..."
}

Get Voiceprint

GET/voiceprints/{id}

Retrieve details about an enrolled voiceprint.

Response

{
  "id": "vp_1a2b3c4d5e",
  "status": "active",
  "created_at": "2026-01-08T12:00:00Z",
  "metadata": {
    "name": "John Doe"
  },
  "stats": {
    "detections": 42,
    "licensed_uses": 15,
    "revenue_earned": 1250.00
  }
}

Ready to Integrate?

Get your API keys and start protecting voice identity today.

Request API Access