Billing and Credits


Charges for streaming are based on the maximum of two job properties stream_duration_seconds and duration_seconds. Read more details below.

This section will refer to two different measurements for duration: "stream duration" and "audio duration". Stream duration refers to the number of real world seconds that have passed since the WebSocket connection was established. Audio duration refers to the number of seconds of audio that have been sent over the WebSocket connection. For most use cases, these two will not differ significantly and as a user, their difference can be ignored. But we refer to them separately here because they may differ depending on your implementation.

On initial connection, each streaming session attempts to place a hold on 10 minutes of credits. If the client does not have 10 minutes of credits to hold, the WebSocket returns a 4003 insufficient credits close message. Whenever more than 5 minutes of real time (stream duration) has passed, Rev AI attempts to place a hold on another 5 minutes of credits. Again, if the client runs out of credits, the WebSocket connection is closed with a 4003 insufficient credits close message. Enabling auto-reload is encouraged to prevent running out of credits mid-stream.

Once the connection is closed, the audio duration and stream duration are finalized. The hold is removed on any unused credits. Any extra credits that had a temporary hold will be returned to the customer and available for other transcription jobs. You will be billed for the larger of the two with a minimum of 15 seconds.