Developer API . REST . v1

The AI Voice Detector API.

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.

JSON in, JSON outPer-segment scoresBearer auth
What it does

What the API does.

The detector as an API: the same model as the free check, returning the same verdict and score.

Upload flow

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.

Same model

Identical to the detector

The API runs the same model as the free check on the website.

Segments

Per-segment scores

Clips longer than six seconds are scored in segments, each with a start time, end time and score.

Synchronous

One request, one verdict

Detection returns on the same request, so a single clip needs no polling.

Limits

Read your plan limits

Get your plan, limits and current usage from the account and usage endpoints instead of hardcoding a quota.

Errors

Plain error codes

Every response carries a request_id. Errors use clear codes such as quota_exceeded and upload_expired.

The response

Example request and response.

The same model as the free check. You get the verdict, the score, and a score for every segment.

200 OK · application/json
{
 "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" }
 ]
}
Reference

Every field, explained.

What comes back on a successful call to /api/v1/detect/voice.

FieldTypeWhat it means
verdictstringai_generated, likely_ai, likely_human or human.
verdict_labelstringThe same verdict for display: AI Generated, Likely AI, Likely Human or Human.
ai_scorenumber0 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_percentnumberThe same score as a percentage.
durationnumberLength of the clip in seconds.
segment_countnumberHow many segments were scored. Clips of six seconds or less return one.
average_ai_scorenumberThe mean score across segments.
max_ai_scorenumberThe highest segment score, useful for spotting a synthetic insert in a real recording.
segmentsarrayEach segment with start, end, ai_score and verdict.
created_at, processed_atstringISO 8601 timestamps.
Calibration

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.

Auth
Bearer API key
Formats
MP3 · WAV · M4A · OGG · FLAC · AAC
Base URL
app.aivoicedetector.com
Plans
Starter and above
FAQ . the API

Frequently asked questions.

Email support@aivoicedetector.com for anything not here.

Which plans include the API?
API access is included on Starter and above. See pricing for monthly detection limits. Need higher throughput? Email the team.
How do I authenticate?
A bearer API key in the Authorization header. Generate and rotate keys from your account. Keep them server-side, never in client code.
What can I send?
An audio file in MP3, WAV, M4A, OGG, FLAC or AAC format, uploaded to a signed URL the API gives you. Maximum file size depends on your plan.
How do I check many files?
Call the upload and detect endpoints once per file. Each detect call is synchronous and uses one detection from your monthly allowance.
What are the rate limits?
Requests are rate limited per API key, and a 429 response carries a Retry-After header. Your monthly allowance comes from your plan; if you need more, email the team.
What happens to my audio?
The free web check analyzes audio in memory and keeps nothing. See the privacy policy for how API uploads and results are stored. We never train on your audio unless you explicitly opt in.

Get an API key.

API access starts on the Starter plan. The same model runs on every plan.

Get an API key Talk to the team