Upload, then detect
Ask for a signed upload URL, PUT the file, then call detect with the upload ID. The audio goes straight to storage, not through our app.
Upload an audio clip and get a verdict and an AI probability score back as JSON. It is a deepfake voice detection API: the same model that runs the public deepfake voice detection, behind one endpoint.
The detector as an API: the same model as the free check, returning the same verdict and score.
Ask for a signed upload URL, PUT the file, then call detect with the upload ID. The audio goes straight to storage, not through our app.
The API runs the same model as the free check on the website.
Clips longer than six seconds are scored in segments, each with a start time, end time and score.
Detection returns on the same request, so a single clip needs no polling.
Get your plan, limits and current usage from the account and usage endpoints instead of hardcoding a quota.
Every response carries a request_id. Errors use clear codes such as quota_exceeded and upload_expired.
The same model as the free check. You get the verdict, the score, and a score for every segment.
{
"type": "voice",
"status": "completed",
"verdict": "likely_ai",
"verdict_label": "Likely AI",
"ai_score": 0.73,
"ai_score_percent": 73.0,
"duration": 47,
"segment_count": 8,
"max_ai_score": 0.92,
"segments": [
{ "start": 0, "end": 6, "ai_score": 0.81, "verdict": "likely_ai" }
]
}
What comes back on a successful call to /api/v1/detect/voice.
| Field | Type | What it means |
|---|---|---|
| verdict | string | ai_generated, likely_ai, likely_human or human. |
| verdict_label | string | The same verdict for display: AI Generated, Likely AI, Likely Human or Human. |
| ai_score | number | 0 to 1, how likely the speech is AI-generated. 0.86 and above is ai_generated, 0.50 to 0.85 likely_ai, 0.16 to 0.49 likely_human, below 0.16 human. |
| ai_score_percent | number | The same score as a percentage. |
| duration | number | Length of the clip in seconds. |
| segment_count | number | How many segments were scored. Clips of six seconds or less return one. |
| average_ai_score | number | The mean score across segments. |
| max_ai_score | number | The highest segment score, useful for spotting a synthetic insert in a real recording. |
| segments | array | Each segment with start, end, ai_score and verdict. |
| created_at, processed_at | string | ISO 8601 timestamps. |
A probability, not a promise.
Scores between 16% and 85% land in the Likely Human and Likely AI tiers, so a borderline clip reads as borderline. Short or heavily compressed clips give less reliable results.
Email support@aivoicedetector.com for anything not here.