{"service":"utterance_engine","version":"0.1.0","description":"Bittensor validator-authenticated scheduled audio challenge API","authentication":{"required":true,"method":"Bittensor validator hotkey signature","endpoints":{"get_challenge":"POST /auth","verify_auth":"POST /auth/verify"}},"protected_endpoints":["/challenge","/transcription","/source-audio/start","/source-audio/next","/target-audio/start","/target-audio/next","/challenge/{challenge_uid}/n_utterances","/solo/start","/solo/next","/solo/sessions","/solo/session/{id}"],"public_endpoints":["/","/health","/auth","/auth/verify","/docs"],"challenge_types":{"scheduled":{"description":"One active audio challenge scheduled on blockchain with automatic rotation","endpoints":["/challenge","/transcription","/source-audio/start","/source-audio/next","/target-audio/start","/target-audio/next","/challenge/{challenge_uid}/n_utterances"]},"solo":{"description":"Unique per-session challenges that are deleted after use","endpoints":["/solo/start","/solo/next","/solo/session/{id}"],"note":"Each session gets a unique challenge that is removed from S3 when session ends"}},"docs":"/docs"}