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
}
}