Skip to main content
The Realtime Transcription API is available to Enterprise plan customers on request. It is not open to every workspace. Tiro must enable the API for your workspace before you can call it.

What does the Realtime Transcription API do?

The Realtime Transcription API takes the audio your app sends and returns transcripts as you speak. If you set a translation language when you create the session, you also receive translations. Results arrive only as WebSocket messages. Tiro does not create notes from this API and does not keep the audio it receives. No API returns the transcript or translation text later, so store the results you need on your side.

How does it work?

You create a session over REST, then send audio and receive results over WebSocket. Keep the API key on your server, and pass the client only the streamToken issued for each session. If the connection drops while the session is still open, reconnect with the same token to continue. The rules are in Reconnecting.

Who can use it?

You can create a session only when all three of these are true. Organization API keys and OAuth access tokens cannot call this API. See Authentication for details on scopes.

What are the limits?

When you finish, send session.end or call POST /v1/external/realtime-transcriptions/{id}/end. If you only close the WebSocket connection, the session stays OPEN. It holds one concurrent session slot until it ends automatically after 15 minutes without audio, and cleanup can take up to about 3 more minutes.

Which languages are supported?

Transcription and translation both support the 17 locales in Supported locales. If you omit transcriptionLocale or send AUTO when you create the session, Tiro detects the spoken language. translationLocale takes one locale and does not support auto detection. Translations do not pair 1:1 with source sentences. Show translation pieces joined in the order they arrive. The rules are in translation message.

What does this API not provide?

This version does not provide the following.
  • Speaker labels, or word and sentence timestamps
  • Note creation and webhooks
  • Audio storage and server-side resend. The client must buffer audio while disconnected and send it again
  • Direct browser connections. The browser WebSocket API cannot send the Authorization header, so connect from a server or a native app

How is usage recorded?

Tiro records the audio length and connection time of each session. Check the received audio length in audioDurationMs on the session response and the session.ended message. This usage does not count toward note recording usage or the workspace usage limit. Pricing is set in your Enterprise contract.

Next steps

Quickstart

Create a session, send an audio file, and receive the results.

WebSocket protocol

Check message fields, reconnection, errors, and close codes.