AI Music Detection API: Complete Integration Guide
Integrating AI music detection into a distribution pipeline should take hours, not weeks. authio's REST API is designed for exactly this: send an audio file, get a detection result with confidence scoring and platform attribution. This guide covers everything from your first API call to production-scale batch processing.
Prerequisites
- An authio account with an API key (available from the dashboard)
- Any HTTP client -- cURL, Python requests, Node.js fetch, or your language of choice
- Audio files in MP3, WAV, FLAC, M4A, or AIFF format
Your first detection request
The core endpoint is POST /api/v1/analyze. Send an audio file as multipart form data with your API key in the header:
curl -X POST "https://authio.io/api/v1/analyze" \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@track.mp3"
The response includes everything you need for automated decision-making:
{
"success": true,
"is_ai_generated": true,
"confidence": 0.9942,
"classification": "AI_GENERATED",
"platform_detected": "suno",
"platform_confidence": 0.97,
"processing_time": 3.2,
"models_used": 12
}
Understanding the response
- confidence: A float between 0.0 and 1.0. Values above 0.85 are high-confidence detections. Values between 0.5 and 0.85 indicate mixed or uncertain content -- consider manual review for these.
- platform_detected: If AI is detected, this field identifies the likely generation platform (suno, udio, musicgen, elevenlabs, stable_audio, etc.). Null for human content.
- platform_confidence: Separate from the overall confidence -- this measures how certain the system is about which specific platform generated the content.
- model_predictions: Individual results from each model in the ensemble. Useful for debugging and understanding why a track was flagged.
Setting up webhooks
For production pipelines, you don't want to poll for results. Configure a webhook URL in your dashboard, and authio will POST the detection result to your endpoint when analysis completes:
{
"event": "analysis.completed",
"analysis_id": "ana_abc123",
"is_ai_generated": true,
"confidence": 0.9942,
"platform_detected": "suno",
"file_name": "submission_track.mp3",
"timestamp": "2026-03-15T14:30:00Z"
}
Your system receives this webhook and can automatically gate the track -- holding it for manual review if the confidence exceeds your threshold, or allowing it through if it passes detection.
Batch processing for catalogs
For existing catalogs or high-volume ingest, use batch mode:
curl -X POST "https://authio.io/api/v1/analyze/batch" \
-H "X-API-Key: YOUR_API_KEY" \
-F "files[]=@track1.mp3" \
-F "files[]=@track2.mp3" \
-F "webhook_url=https://your-app.com/webhooks/authio"
Batch jobs are processed with priority queuing. Each file in the batch triggers an individual webhook notification.
Rate limits and pricing
| Plan | Tracks/month | Rate limit | Overage |
|---|---|---|---|
| Starter | 200 | 10 req/min | EUR 0.08/track |
| Professional | 2,000 | 60 req/min | EUR 0.04/track |
| Business | 50,000 | 500 req/min | EUR 0.016/track |
| Enterprise | 250,000 | 1,000 req/min | EUR 0.012/track |
Error handling
- 200: Analysis completed successfully.
- 400: Invalid request -- unsupported format, file too large, or missing required fields.
- 401: Invalid or missing API key.
- 429: Rate limit exceeded. The
Retry-Afterheader tells you when to retry. - 500: Server error. Retry with exponential backoff.
Frequently asked questions
How fast is the authio AI music detection API?
The API returns detection results in under 5 seconds for most audio files. The 12-model ensemble processes tracks in parallel. Batch processing supports up to 250,000 tracks per month with priority queuing.
What audio formats does the API accept?
MP3, WAV, FLAC, M4A, and AIFF. Sample rates from 44.1kHz to 192kHz, bit depths from 16-bit to 32-bit. Maximum file size is 100MB per request. Files are processed in memory and never stored.
Can I use the API for batch processing of entire catalogs?
Yes. Enterprise plans support up to 250,000 tracks per month with rate limits up to 1,000 requests per minute. Batch jobs use priority queuing and webhook notifications on completion.
Try it yourself
5 free analyses per day, no signup required.