Amigo Voice Judge API

The Voice Judge API from Amigo — 1 operation(s) for voice judge.

OpenAPI Specification

amigo-voice-judge-api-openapi.yml Raw ↑
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.