API Documentation
Integrate AI detectioninto your pipeline
Production-grade REST API for AI music detection. 99.42% accuracy across a 12-model ensemble, with platform attribution for Suno, Udio, MusicGen, and emerging generators.
API Testing Console
Production endpoint testing with real-time validation
Test mode
Analysis depth
Drop your audio file here
MP3, WAV, FLAC, M4A · max 100MB
Endpoints
Public REST API
All requests except /health require authentication via the X-API-Key header.
/analyzeAnalyze audio with ensemble detection
X-API-Key header
/modelsList available analysis levels
X-API-Key header
/healthSystem health status check
No authentication required
Result contract
How to read an Authio result
Every surface speaks the same forensic language: dashboard, PDF report, Excel export and API. These are the terms a result can contain and exactly what each one means.
Classification
Every analysis resolves to one of three product states: Human-made, Mixed / Hybrid, or AI-generated. Mixed / Hybrid means source-level review found verified AI-origin material alongside human-origin material in the same recording.
AI Origin / Human Origin
For Mixed / Hybrid results the headline reads on a single 0-100 axis: the canonical full-mix origin signal and its exact complement. The larger side leads, e.g. 77.5% Human Origin with AI Origin at 22.5%. This is the detector's origin signal for the full mix. It is not a composition or contribution percentage.
Source evidence
Forensic review separates the recording and verifies each source against calibrated gates. When evidence is confirmed, the result names it, e.g. “AI-generated vocal source confirmed” or “AI-generated instrumental bed source confirmed”, with per-window evidence behind it.
Platform attribution
When a known AI music platform signature is established (e.g. Suno), the result names it and states where it was identified (full mix or a specific source). When it is not established, the result says “Generator not established”. Authio never guesses a platform.
Certified human
A recording is certified human only when full source-level verification ran and every mandatory source, including the aggregated instrumental bed, affirmatively cleared. A clean full-mix signal alone never certifies; any confirmed or unresolved AI-like source evidence blocks certification.
Origin label and evidence scope
Authio separates the track-level origin label from the evidence scope of each analysis level. Standard and Benchmark report full-mix origin signals; Forensic adds source-level evidence, platform attribution and certification status. When stronger evidence exists for the same audio content in your account, Authio uses the best-known track origin label while evidence_scope preserves exactly what each run observed directly.
What Authio does not report
Authio is a neutral forensic measurement product. Results never include distribution recommendations, review or eligibility decisions, or client policy. Origin signals and source evidence are not legal authorship, royalty or copyright determinations. An AI/Human contribution percentage is not reported: a composition-share estimate is only exposed once its measurement is calibrated and approved, never invented from the origin signal.
Response examples
One response per product state
Exactly what /analyze returns for each of the three product states. The response is the product result, with no internal engine fields.
Mixed / Hybrid
Human vocal over an AI instrumental bed. Source-level review localized the evidence and established the platform.
{
"success": true,
"request_id": "req_1781126996_78bf44e7",
"filename": "master_24bit.wav",
"analysis_level": "forensic",
"result": {
"classification": "MIXED_HYBRID",
"label": "Mixed / Hybrid · Suno",
"platform": {
"name": "suno",
"confidence": 0.9999,
"scope": "source",
"source": "instrumental_bed"
},
"origin_signal": {
"primary": { "label": "AI Origin", "value": 52 },
"secondary": { "label": "Human Origin", "value": 48 },
"ai": 52,
"human": 48
},
"source_evidence": {
"status": "localized",
"source": "instrumental_bed",
"label": "Instrumental bed",
"summary": "AI-like evidence was localized in the instrumental bed."
},
"certification": {
"certified_human": false,
"status": "not_certified",
"summary": "Not certified as fully human-made: AI-origin source evidence is present."
}
},
"metadata": {
"processing_time": 19.7,
"models_used": 12,
"cache": { "hit": false }
}
}AI-generated
Fully AI-generated track with an established platform signature. Source-level review is not required for a clear AI result.
{
"success": true,
"request_id": "req_1781127201_3a91cc04",
"filename": "generated_track.mp3",
"analysis_level": "forensic",
"result": {
"classification": "AI_GENERATED",
"label": "AI-generated · Suno",
"platform": {
"name": "suno",
"confidence": 0.97,
"scope": "full_mix",
"source": null
},
"origin_signal": {
"primary": { "label": "AI Origin", "value": 92.64 },
"secondary": { "label": "Human Origin", "value": 7.36 },
"ai": 92.64,
"human": 7.36
},
"source_evidence": {
"status": "not_required",
"source": null,
"label": null,
"summary": "AI generation signatures detected."
},
"certification": {
"certified_human": false,
"status": "not_applicable",
"summary": "Human certification does not apply to AI-generated content."
}
},
"metadata": {
"processing_time": 3.1,
"models_used": 12,
"cache": { "hit": false }
}
}Human-made
Clean human signal. Note: Human-made is a detection result; certified_human stays false unless full source-level certification actually ran and cleared.
{
"success": true,
"request_id": "req_1781127544_b2e07f19",
"filename": "studio_master.wav",
"analysis_level": "forensic",
"result": {
"classification": "HUMAN_MADE",
"label": "Human-made",
"platform": {
"name": null,
"confidence": null,
"scope": null,
"source": null
},
"origin_signal": {
"primary": { "label": "Human Origin", "value": 98.85 },
"secondary": { "label": "AI Origin", "value": 1.15 },
"ai": 1.15,
"human": 98.85
},
"source_evidence": {
"status": "not_required",
"source": null,
"label": null,
"summary": "No AI generation artifacts detected."
},
"certification": {
"certified_human": false,
"status": "not_certified",
"summary": "Full source-level certification was not completed for this analysis."
}
},
"metadata": {
"processing_time": 5.1,
"models_used": 12,
"cache": { "hit": false }
}
}Response reference
Every field, defined
successTrue when the analysis completed. Failed requests return the error shape documented below.
request_idUnique request identifier. Include it when contacting support.
filenameThe uploaded filename, echoed back.
analysis_levelThe analysis level you requested: standard, benchmark, or forensic.
result.classificationMachine-readable product state: HUMAN_MADE, MIXED_HYBRID, or AI_GENERATED.
result.labelDisplay label, including the platform when established, e.g. “Mixed / Hybrid · Suno”.
result.platformPlatform attribution when a known generator signature was established: name, confidence, scope (full_mix or source) and the source it was identified from. All null when not established. Authio never guesses.
result.origin_signalThe headline pair on one 0–100 axis: the full-mix origin signal and its complement. primary is the larger side. This is a detection signal, not a composition or contribution percentage.
result.source_evidenceSource-level outcome: localized (evidence pinned to a named source), not_required (nothing reportable, or clear AI), or not_available. summary is a client-safe sentence.
result.certificationcertified_human is true only when full source-level verification ran and every mandatory source cleared. Human-made alone never implies certification.
metadata.processing_timeSeconds spent on the real analysis path for this request. Processing time varies by file length, cache status, and whether source-level forensic escalation is required.
metadata.models_usedNumber of detection models used at the requested level.
metadata.cache.hitTrue when the response was served from cache. Never benchmark latency from cached responses.
Errors
Error model
Failed requests return a consistent error shape. Include the request_id when contacting support. Retry 429 and 503 with backoff; do not retry 4xx errors without changing the request. Rate-limit headers may be added depending on plan and deployment configuration.
400Invalid request
Fix the request before retrying.
401Invalid or missing API key
Check the X-API-Key header. Do not retry unchanged.
413File too large (max 100MB)
Reduce the file size. Do not retry unchanged.
415Unsupported media type
Use MP3, WAV, FLAC or M4A. Do not retry unchanged.
429Rate limit exceeded
Back off and retry; respect your plan's rate limit.
500Internal error
Retry with backoff. Include request_id when contacting support.
503Service temporarily unavailable
Retry with backoff.
{
"success": false,
"error": {
"code": "unsupported_media_type",
"message": "Unsupported audio format.",
"request_id": "req_1781127544_b2e07f19"
}
}Tiers
Rate limits
Every tier includes access to all 12 neural networks. Rate limits and concurrent GPU slots scale with the plan.
Starter
10 req/min
2 GPU slots
Professional
60 req/min
4 GPU slots
Business
200 req/min
6 GPU slots
Enterprise
500 req/min
10 GPU slots
Custom
1000 req/min
12 GPU slots
Detection
Analysis levels
Three levels optimized for different use cases. Choose the depth of inference that matches your latency budget.
Standard
5models
Real-time applications & high-volume screening
~1s processing · 99.42% AI/Human detection accuracy
Benchmark
7models
Production workloads & professional tier
~1.5s processing · 99.42% AI/Human detection accuracy
Forensic
12models
Fast forensic analysis with maximum precision, platform attribution and source-level evidence
Seconds processing · 99.42% AI/Human detection accuracy
Integration
Quick start
Send your first detection request in under a minute.
# Standard analysis
curl -X POST "https://authio.io/api/v1/analyze" \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@audio.mp3" \
-F "level=standard"
# Forensic analysis (12-model ensemble, 99.42% accuracy,
# platform attribution + source-level evidence)
curl -X POST "https://authio.io/api/v1/analyze" \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@audio.mp3" \
-F "level=forensic"
# Read the product result with jq
# .result.label -> "Mixed / Hybrid · Suno"
# .result.origin_signal.primary -> {"label":"AI Origin","value":52}
# .result.certification.certified_human -> false