Skip to main content

The result record

{
  "item_id": "track-001",
  "status": "success",

  "verdict": "suspicious",
  "tier_verdicts": {
    "press_safe": null,
    "human_safe": "suspicious",
    "recall": "suspicious"
  },

  "scores": {
    "truth_score": 0.87,
    "geo_score": 0.79,
    "proto_score_v1": 0.74,
    "head_a": 0.91,
    "head_b": 0.83,
    "head_c": 0.77,
    "reliability": 0.88
  },

  "origin": "suno",
  "origin_confidence": 0.82,
  "calibration_version": "2026-01-12",

  "risk_series": [0.12, 0.14, 0.88, 0.91, 0.89, 0.87],
  "processed_at": "2026-02-27T10:43:01Z"
}

Routing

Use tier_verdicts for all routing decisions. It gives you three simultaneous verdicts at different confidence levels:
FieldValuesUse it for
tier_verdicts.press_safe"human" / "suspicious" / nullCertification, licensing submissions
tier_verdicts.human_safe"human" / "suspicious"Auto-reject at intake
tier_verdicts.recall"human" / "suspicious"Escalation to manual review
See Confidence Tiers for the false positive rate at each tier.

Key fields

FieldWhat it’s for
verdictTop-level result at your operating tier — "human" or "suspicious"
truth_scoreOverall AI probability (0–1). Use for displaying confidence to reviewers
geo_scoreSecondary corroborating score. Stable across audio processing variations
proto_score_v1Score driving the press-safe tier. Include in certification records
risk_seriesAI probability across the track timeline — shows which sections triggered
originPredicted generator: "suno", "udio", "elevenlabs", "human", "unknown"
calibration_versionModel version that produced this result. Include in audit records
reliabilityResult confidence based on audio quality. Below 0.6 — treat with extra caution

Routing code

Python
def route(record: dict) -> str:
    tier = record.get("tier_verdicts") or {}

    if tier.get("human_safe") == "suspicious":
        return "reject"

    if tier.get("recall") == "suspicious":
        return "manual_review"

    return "approve"
TypeScript
function route(record: Record<string, any>): string {
  const tier = record.tier_verdicts ?? {};

  if (tier.human_safe === "suspicious") return "reject";
  if (tier.recall === "suspicious") return "manual_review";
  return "approve";
}
See Supply Chain Filtering for the full escalation flow with error handling.

Handling failures

Check status before reading verdict. On failure, verdict is null:
{
  "item_id": "track-005",
  "status": "failed",
  "verdict": null,
  "error": "audio_load_failed: unsupported format"
}
Always route failed tracks to manual review — never auto-reject on an analysis failure.