JoinInDocs
Baton
v2 (beta)
Get a key
Baton v2 HTTP Beta

Score a recorded turn

POST/v1/turn

Scores one recorded turn on the most accurate tier and returns the end-of-turn probability at each step of inference_interval. messages is the conversation so far, used to judge whether the turn is complete.

Request body

FieldTypeDescription
audio_pcm16_b64 requiredstring

PCM16LE mono 16 kHz, base64.

messagesarray of object

Default [].

inference_intervalnumber

Step in seconds between scores. Default 0.1.

sample_rate16000

Default 16000.

languagestring or null

Language of the turn.

{
  "audio_pcm16_b64": "AAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQAA==",
  "messages": [
    {
      "role": "assistant",
      "content": "What city are you flying to?"
    }
  ],
  "inference_interval": 0.1,
  "language": "en"
}

Responses

200Scores per step.

FieldTypeDescription
events requiredarray of object
audio_sec requirednumber
compute_ms requirednumber
tier requiredstring
model requiredstring
languagestring or null

400The audio was not usable: bad base64, an odd number of bytes, a sample rate other

than 16 000 Hz (expected 16000 Hz, got N; resample client-side), or no audio.

401Missing or unknown X-API-Key.

{
  "detail": "invalid or missing X-API-Key. Baton is in beta — request a key at hello@joinin.ai"
}

422The request body failed validation.

429Too many requests for this key; retry after Retry-After seconds.

{"detail": "rate limit exceeded (600/min for this key)"}

503The service is starting up; retry after Retry-After seconds.

© 2026 JoinIn AI, Inc. All rights reserved.joinin.ai