Cost and operations
What an open call costs by the vendor's rates, what the gate would cost an order, and how the sockets closed. Every reading here is derived only from figures that carry a command.
What an open call costs by the vendor's published rates
Rates, not measurements: AssemblyAI bills on socket lifetime, and both sockets are open for the whole call. Read from the vendor's pricing page.
| Product | What it covers | Rate |
|---|---|---|
| Voice Agent API | The agent socket. Billed for as long as the socket is open, whether anyone is speaking or not. | USD 4.50 per hour |
| Streaming Universal-3.5 Pro Realtime | The recognizer socket, which the browser holds at the same time as the agent one. | USD 0.45 per hour |
| Medical Mode surcharge | Added on top of streaming for the medical vocabulary this domain needs. | USD 0.15 per hour |
The total actually spent is derived from the run ledger, never from this table: make spend
What the gate costs an order: not measured yet
Derived only from measured figures that carry a command, so both readings wait on live runs.
- Re-ask costpharmacist seconds per order
- —
- not measured yet. Needs the seconds one re-ask costs on a live call and the number of re-asks per finished live order. Neither is measured: turn-to-turn time needs make measure, which has not been run, and no live order has been recorded.
- Wrong values caughtcatches per 1000 orders
- —
- not measured yet. Needs how many wrong values reach the gate per finished live order. The recorded runs count errors per synthesised utterance, not per order, and scaling one into the other would be a number without a method.
No cost of a dispensing error is shown. Publishing one needs a cited source, and none is cited on this page.
How the sockets closed: observations, not specification
AssemblyAI documents no WebSocket close codes at all: its streaming API reference lists none. Every meaning below is therefore an observation, and the source column says whose.
npx tsx scripts/report/live-run-count.tsn = 236, sessions of 7 runs made before the spend ledger existed; 44 of them come from eval/REPORT.md's own account of two runs that left no file, which is weaker evidencenpx tsx scripts/measure/analyse-stress.tsn = 188, sessions of the stress runnpx tsx scripts/eer/report.ts eval/<set>, the close codes of one run
| Code | Observed meaning | Source | Before the ledger, 7 runs | Stress run | All |
|---|---|---|---|---|---|
| 1000 | Closed cleanly The session ended after session.end was acknowledged. | Measured by us | 215 | 186 | 401 |
| 1006 | Closed with 1006 The socket closed without a documented reason. | Measured by us, once, in the stress run | not seen | 1 | 1 |
| 1008alert | Rate limit, sent as a policy violation This is what the free tier actually sends when the five-new-sessions-per-minute limit is exceeded. The documented code for that condition is 3009, and we have never observed 3009; a sweep fired one second apart closed 21 of 40 sockets with 1008. Reading it as a transport fault rather than a rate limit is how a measurement sweep turns into a fabricated error rate. | Measured by us: what the rate limiter actually sends | 21 | 1 | 22 |
| Code | Observed meaning | Source |
|---|---|---|
| 3006alert | Malformed configuration parameter Reported by another submission for a keyterms_prompt sent as something other than a JSON array. We have not reproduced it ourselves, and the vendor documents no close codes at all, so this entry is a third-party observation rather than a specification. | Another team's measurement, not reproduced by us |
| 3007 | Malformed audio chunks A chunk fell outside the 50-1000 ms window the socket accepts, so the stream was rejected. | Vendor prose, not a close-code table |
| 3008alert | Three-hour session cap A streaming session is closed automatically at three hours and is billed for the whole time the socket was open. | Vendor prose, not a close-code table |
| 3009alert | Session limit exceeded The account allows five new sessions per minute on the free tier and this run exceeded it. | Vendor prose, not a close-code table; never observed by us |