Amigo Voice Judge API
The Voice Judge API from Amigo — 1 operation(s) for voice judge.
The Voice Judge API from Amigo — 1 operation(s) for voice judge.
openapi: 3.1.0
info:
title: Amigo Account Voice Judge API
version: 0.1.0
servers:
- url: https://api.amigo.ai
- url: https://internal-api.amigo.ai
- url: https://api-eu-central-1.amigo.ai
- url: https://api-ap-southeast-2.amigo.ai
- url: https://api-ca-central-1.amigo.ai
security:
- Bearer-Authorization: []
Bearer-Authorization-Organization: []
Basic: []
tags:
- name: Voice Judge
paths:
/v1/{workspace_id}/services/{service_id}/voice-judge/recent:
get:
tags:
- Voice Judge
summary: Recent voice-judge results for a service
description: 'Returns the most recent per-call voice-judge scores for one service, ordered newest first. Produced by the Databricks `voice_judge` job (stereo audio → Gemini 2.5 Flash → 10-dimension rubric). Used by the Agent Readiness page to populate Voice Quality criterion cards.
**Latency**: 500ms-2s (reads from analytics warehouse, not OLTP).
**Default limit**: 20. Max 100.'
operationId: list-voice-judge-recent
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: service_id
in: path
required: true
schema:
type: string
format: uuid
title: Service Id
description: Service UUID
description: Service UUID
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Max rows to return (default 20, max 100)
default: 20
title: Limit
description: Max rows to return (default 20, max 100)
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Offset for pagination (default 0)
default: 0
title: Offset
description: Offset for pagination (default 0)
responses:
'200':
description: Voice judge rows (newest first)
content:
application/json:
schema:
$ref: '#/components/schemas/VoiceJudgeRecentResponse'
'503':
description: Analytics warehouse not configured or transiently unavailable
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
VoiceJudgeResultRow:
properties:
call_sid:
type: string
maxLength: 64
title: Call Sid
call_entity_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Call Entity Id
service_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Service Id
latency_dead_air_score:
anyOf:
- type: number
- type: 'null'
title: Latency Dead Air Score
pronunciation_score:
anyOf:
- type: number
- type: 'null'
title: Pronunciation Score
clarity_score:
anyOf:
- type: number
- type: 'null'
title: Clarity Score
filler_silence_score:
anyOf:
- type: number
- type: 'null'
title: Filler Silence Score
interruption_handling_score:
anyOf:
- type: number
- type: 'null'
title: Interruption Handling Score
audio_consistency_score:
anyOf:
- type: number
- type: 'null'
title: Audio Consistency Score
pacing_score:
anyOf:
- type: number
- type: 'null'
title: Pacing Score
warmth_tone_score:
anyOf:
- type: number
- type: 'null'
title: Warmth Tone Score
accent_quality_score:
anyOf:
- type: number
- type: 'null'
title: Accent Quality Score
voice_identity_score:
anyOf:
- type: number
- type: 'null'
title: Voice Identity Score
overall_score:
anyOf:
- type: number
- type: 'null'
title: Overall Score
critical_count:
anyOf:
- type: integer
minimum: 0.0
- type: 'null'
title: Critical Count
flag_count:
anyOf:
- type: integer
minimum: 0.0
- type: 'null'
title: Flag Count
warning_count:
anyOf:
- type: integer
minimum: 0.0
- type: 'null'
title: Warning Count
judge_json:
anyOf:
- type: string
maxLength: 32768
- type: 'null'
title: Judge Json
description: Raw Gemini judge output (evidence quotes, per-dim severity). Intended for UI drill-in; opaque string. Capped at 32KB.
computed_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Computed At
type: object
required:
- call_sid
title: VoiceJudgeResultRow
description: One call's voice-judge scoring, as stored in the Delta output table.
VoiceJudgeRecentResponse:
properties:
service_id:
type: string
format: uuid
title: Service Id
count:
type: integer
minimum: 0.0
title: Count
items:
items:
$ref: '#/components/schemas/VoiceJudgeResultRow'
type: array
title: Items
type: object
required:
- service_id
- count
- items
title: VoiceJudgeRecentResponse
securitySchemes:
Bearer-Authorization:
type: http
scheme: bearer
bearerFormat: JWT
description: Amigo issued JWT token that identifies an user. It's issued either after logging in through the frontend, or manually through the [`SignInWithAPIKey`](sign-in-with-api-key) endpoint.
Bearer-Authorization-Organization:
type: apiKey
in: header
name: X-ORG-ID
description: An optional organization identifier that indicates from which organization the token is issued. This is used in rare cases where the user to authenticate is making a request for resources in another organization.
Basic:
type: http
scheme: basic
description: The username should be set to {org_id}_{user_id}, and the password should be the Amigo issued JWT token that identifies the user.