Skip to main content
POST
/
predict
AI-voice detection
curl --request POST \
  --url https://api.aurigin.ai/v1/predict \
  --header 'Content-Type: multipart/form-data' \
  --header 'x-api-key: <api-key>' \
  --form file=@example-file \
  --form device=api \
  --form model=apollo-4-2025-10-20
{
"prediction_id": "pred_9b6ff057a7f7",
"global": {
"confidence": 0.95,
"result": "spoofed",
"reason": null
},
"segments": [
{
"index": 0,
"start": 0,
"end": 5,
"confidence": 0.96,
"result": "spoofed"
},
{
"index": 1,
"start": 5,
"end": 10,
"confidence": 0.94,
"result": "spoofed"
}
],
"model": "apollo-4-2025-10-20",
"processing_time": 1.23,
"audio_duration": 10,
"warnings": []
}
You can send audio data in two ways: via multipart form data (direct file upload) or via JSON with a presigned URL.

How It Works

The API processes your audio file in 5-second chunks:
  • Minimum duration: 3 seconds (1 chunk)
  • Maximum duration: 4MB file size
  • Chunk size: 5 seconds each
  • Output: One prediction per 5-second chunk
For example:
  • A 12-second audio file → 3 chunks → 3 predictions
  • A 30-second audio file → 6 chunks → 6 predictions

Make a Request

  • JSON with presigned URL
  • Multipart form upload
curl
curl -X POST "https://aurigin.ai/api-ext/predict" \
  -H "Content-Type: application/json" \
  -H "x-api-key: <YOUR_API_KEY>" \
  -d '{
    "presigned_url": "https://example.com/presigned.wav",
    "user_id": "optional-user-id"
  }'
1

Authenticate

Include your x-api-key header with every request.
2

Choose upload method

Use multipart upload for local files or supply a presigned_url when the file already lives in storage.
3

Inspect chunked results

Review the per-chunk predictions to understand which segments are AI-generated.

Response Breakdown

Supported Formats

  • WAV, MP3, M4A, FLAC, OGG
  • Mono or stereo
  • Various bitrates and sample rates
CodeDescription
400Invalid input or file too large (4MB max)
403Authentication failed (check x-api-key)
500Internal error or upstream unavailability
  • Cache presigned URLs for their validity window to minimize round trips.
  • Retry with exponential backoff when you receive 500 errors.
  • Monitor confidence scores to spot borderline results and trigger manual review.

Authorizations

x-api-key
string
header
required

Body

Provide either a direct file upload or a presigned URL. Include device to tag the caller and optionally choose a model.

file
file
required
device
enum<string>

Optional device type making the request

Available options:
macos,
windows,
web_app,
api
model
enum<string> | null

Optional model version to run. Currently only apollo-4-2025-10-20 is available for this endpoint.

Available options:
apollo-4-2025-10-20
prediction_id
string

Optional custom prediction identifier

Response

Global verdict plus per-segment predictions and confidence scores.

prediction_id
string

Unique identifier for this prediction

global
object
segments
object[]

Array of segment-level predictions. Each segment represents a 5-second chunk of the audio.

model
string

Model version used for prediction

processing_time
number

Time taken to process the audio in seconds

audio_duration
number

Duration of the audio file in seconds

warnings
string[]

Array of warning messages, if any