API Documentation

Integrate AI detectioninto your pipeline

Production-grade REST API for AI music detection with exact 5, 7, and 12-model product tiers, bounded temporal evidence, and approved platform attribution.

API Testing Console

Production endpoint testing with real-time validation

Connecting...

Test mode

Analysis depth

Drop your audio file here

MP3, WAV, FLAC, M4A, AIFF · max 100MB

Endpoints

Public REST API

All requests except /health require authentication via the X-API-Key header.

POST/analyze

Analyze audio with ensemble detection

X-API-Key header

GET/models

List available analysis levels

X-API-Key header

GET/health

System 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 completed analysis resolves to exactly one canonical verdict: Human, Hybrid, or AI. Hybrid is issued only by the full-mix resolver; source-level evidence explains but never replaces that verdict.

AI Origin / Human Origin

For 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.

Source verification cleared

Indicates that full source-level verification ran and every mandatory source, including the aggregated instrumental bed, cleared. This is diagnostic evidence about the analysis, not an origin verdict: the authoritative full-mix verdict (Human, Hybrid or AI) is unchanged by it.

Origin label and evidence scope

Authio separates the track-level origin verdict from the evidence scope of each analysis level. Standard and Benchmark report full-mix origin signals; Forensic adds source-level evidence and platform attribution. Each response preserves exactly what that 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.

Hybrid

Human vocal over an AI instrumental bed. Source-level review localized the evidence and established the platform.

Hybrid200 OK
{
  "status": "completed",
  "success": true,
  "request_id": "req_1781126996_78bf44e7",
  "filename": "master_24bit.wav",
  "analysis_level": "forensic",
  "result": {
    "status": "completed",
    "verdict": "HYBRID",
    "label": "Hybrid",
    "ai_probability": 0.52,
    "confidence": 0.75,
    "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."
    },
    "evidence_scope": {
      "analysis_level": "forensic",
      "direct_signal": "full_mix_hybrid_signal",
      "canonical_origin": "HYBRID",
      "source_evidence": "localized_by_this_analysis"
    },
    "forensic_evidence": {
      "version": "forensic_evidence.v1",
      "status": "complete",
      "coverage": { "seconds": 180.0, "ratio": 1.0 },
      "artifact_summary": {
        "detected": true,
        "density_per_second": 2.34,
        "total_events": 421,
        "scan_confidence": 0.83
      },
      "regions": [{
        "start_seconds": 80.0,
        "end_seconds": 90.0,
        "basis": "source_verification_window",
        "type": "source_ai_signal",
        "severity": "high",
        "confidence": 0.91,
        "scope": "source",
        "source": "instrumental_bed"
      }]
    }
  },
  "metadata": {
    "processing_time": 19.7,
    "models_used": 12,
    "requested_level": "forensic",
    "executed_level": "forensic",
    "degraded": false,
    "cache": { "hit": false }
  }
}

AI

Fully AI-generated track with an established platform signature. Source-level review is not required for a clear AI result.

AI200 OK
{
  "status": "completed",
  "success": true,
  "request_id": "req_1781127201_3a91cc04",
  "filename": "generated_track.mp3",
  "analysis_level": "forensic",
  "result": {
    "status": "completed",
    "verdict": "AI",
    "label": "AI",
    "ai_probability": 0.9264,
    "confidence": 0.9264,
    "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."
    },
    "evidence_scope": {
      "analysis_level": "forensic",
      "direct_signal": "full_mix_ai_signal",
      "canonical_origin": "AI",
      "source_evidence": "not_required"
    },
    "forensic_evidence": {
      "version": "forensic_evidence.v1",
      "status": "complete",
      "coverage": { "seconds": 173.5, "ratio": 1.0 },
      "artifact_summary": {
        "detected": true,
        "density_per_second": 1.88,
        "total_events": 326,
        "scan_confidence": 0.81
      },
      "regions": [{
        "start_seconds": 20.0,
        "end_seconds": 30.0,
        "basis": "full_mix_posterior_window",
        "type": "full_mix_ai_signal",
        "severity": "high",
        "confidence": 0.94,
        "scope": "full_mix",
        "source": null
      }]
    }
  },
  "metadata": {
    "processing_time": 3.1,
    "models_used": 12,
    "requested_level": "forensic",
    "executed_level": "forensic",
    "degraded": false,
    "cache": { "hit": false }
  }
}

Human

A completed Human verdict with no platform attribution. Source evidence remains a separate diagnostic field.

Human200 OK
{
  "status": "completed",
  "success": true,
  "request_id": "req_1781127544_b2e07f19",
  "filename": "studio_master.wav",
  "analysis_level": "forensic",
  "result": {
    "status": "completed",
    "verdict": "HUMAN",
    "label": "Human",
    "ai_probability": 0.0115,
    "confidence": 0.9885,
    "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."
    },
    "evidence_scope": {
      "analysis_level": "forensic",
      "direct_signal": "full_mix_human_signal",
      "canonical_origin": "HUMAN",
      "source_evidence": "not_required"
    },
    "forensic_evidence": {
      "version": "forensic_evidence.v1",
      "status": "complete",
      "coverage": { "seconds": 205.0, "ratio": 1.0 },
      "artifact_summary": {
        "detected": false,
        "density_per_second": 0.0,
        "total_events": 0,
        "scan_confidence": 0.86
      },
      "regions": []
    }
  },
  "metadata": {
    "processing_time": 5.1,
    "models_used": 12,
    "requested_level": "forensic",
    "executed_level": "forensic",
    "degraded": false,
    "cache": { "hit": false }
  }
}

Response reference

Every field, defined

status

completed for a successful response. A technical failure uses status failed and has no result object.

success

True when the analysis completed. Failed requests return the error shape documented below.

request_id

Unique request identifier. Include it when contacting support.

filename

The uploaded filename, echoed back.

analysis_level

The analysis level you requested: standard, benchmark, or forensic.

result.status

completed for a successful result.

result.verdict

Canonical machine-readable verdict: HUMAN, HYBRID, or AI.

result.label

Frozen public verdict label: Human, Hybrid, or AI.

result.ai_probability

Canonical full-mix AI probability on a 0–1 scale. Never inferred from confidence.

result.confidence

Confidence in the issued verdict; semantically distinct from ai_probability.

result.platform

Platform 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_signal

The 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_evidence

Source-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.evidence_scope

Describes what this run observed directly. It never overrides result.verdict.

result.forensic_evidence

Forensic-only bounded evidence bundle. Standard and Benchmark omit this field.

result.forensic_evidence.status

complete when the scan finished, degraded when temporal evidence could not be completed. A degraded scan does not alter the origin verdict.

result.forensic_evidence.regions

At most 10 rounded temporal regions with an explicit evidence basis. Raw detector timestamps are never returned.

metadata.processing_time

Seconds 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_used

Number of detection models used at the requested level.

metadata.requested_level

Product level requested by the client.

metadata.executed_level

Product level actually executed. Missing engines return an error instead of silently falling back.

metadata.degraded

True when execution or the Forensic evidence scan explicitly degraded.

metadata.cache.hit

True 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.

400

Invalid request

Fix the request before retrying.

401

Invalid or missing API key

Check the X-API-Key header. Do not retry unchanged.

413

File exceeds your plan's size limit (100MB Starter, 200MB Professional, 500MB Business/Enterprise)

Reduce the file size or upgrade the plan. Do not retry unchanged.

415

Unsupported media type

Use MP3, WAV, FLAC, M4A or AIFF. Do not retry unchanged.

422

Analysis could not produce a reliable verdict

Follow user_message.action; retry only when retryable is true.

429

Rate limit exceeded

Back off and retry; respect your plan's rate limit.

500

Internal error

Retry with backoff. Include request_id when contacting support.

503

Service temporarily unavailable

Retry with backoff.

Error shape4xx / 5xx
{
  "status": "failed",
  "success": false,
  "failure_code": "UNSUPPORTED_AUDIO_FORMAT",
  "failure_class": "unsupported_audio",
  "user_message": {
    "headline": "This audio format is not supported",
    "reason": "Authio could not process the uploaded file format.",
    "action": "Upload one of the formats supported by the current product."
  },
  "retryable": false,
  "request_id": "req_1781127544_b2e07f19",
  "analysis_level": "forensic"
}

Tiers

Rate limits

Every plan can request every analysis level; each level runs 5, 7 or 12 models. Rate limits and concurrent GPU slots scale with the plan. GPU slots are concurrent scheduler admission positions per account on our GPU fleet, not reserved physical hardware; higher tiers also receive priority in the queue.

Starter

10 req/min

2 concurrent GPU slots

Professional

60 req/min

4 concurrent GPU slots

Business

200 req/min

6 concurrent GPU slots

Enterprise

500 req/min

10 concurrent GPU slots

Custom

1000 req/min

12 concurrent GPU slots

Detection

Analysis levels

Choose Standard, Benchmark or Forensic according to the model count, depth, and evidence your workflow requires. Advanced is a separate asynchronous product.

Authio's validated system reaches 99.42% detection accuracy. The figure describes the validated detection system as a whole, not an individual analysis level.

Standard

5models

Real-time applications & high-volume screening

Measured per request processing

Fast full-mix screening. The temporal forensic evidence bundle is omitted.

Benchmark

7models

Production workloads & professional tier

Measured per request processing

Robust full-mix analysis. The temporal forensic evidence bundle is omitted.

Forensic

12models

12-model analysis with safe temporal regions, scan coverage, an artifact summary, and established source or platform evidence

Measured per request processing

Forensic analysis may internally trigger Advanced Source Verification. Source separation and source-level verification require additional processing time.

Integration

Quick start

Send your first detection request in under a minute.

Example
# 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,
# 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.verdict                      -> "HYBRID"
# .result.label                        -> "Hybrid"
# .result.ai_probability               -> 0.52
# .result.origin_signal.primary        -> {"label":"AI Origin","value":52}