Pricing
Last updated 29 October 2026
Estimate what your streams will cost before you build, and see what each one cost this month: the prices, three worked examples that show which designs cost less, and usage per stream.
Streams use the same price list as databases, and reads cost nothing.
| Item | Price |
|---|---|
| Writes | $1.50 per million write units, which the rest of these pages call writes. A write unit is up to 10 KiB (10,240 bytes) of an append’s body. Every append costs at least one unit, and a larger one one unit per 10 KiB. Creating a stream counts one unit, and deleting one costs nothing. |
| Storage | $0.05 per GiB-month (30 days) of what each stream keeps, as Tonbo stores it: the bytes of its messages as you appended them, without compressing them (a JSON stream’s without insignificant whitespace), and of its snapshots, until you advance its retention or delete it. A closed stream still keeps everything. It is charged for the time it is kept: Tonbo measures it every five minutes, so a stream kept for 7 days pays for 7 days. |
| Reads | Free, tails included, under fair use. |
Streams and databases draw on one monthly allowance of $5 per account, then on the credit you buy, as Databases pricing describes. When none is left, appends answer 402 and reads continue (see When the balance runs out).
Worked examples
Each example builds the same thing two ways. Each price is one 30-day month at list price, with what is stored held all month, before the $5 of free usage and after it. A stream’s creation counts one write, and is included. A job log kept 90 days is sized and priced on Job progress to a web UI. The Rules for streams turn them into what to write, and the open tails a hundred live readers would need are on Limits.
One stream per run, with an expiry
10,000 agent runs a month, each with a stream of its own: created once, then 300 appends of 2 KiB.
| Case | Writes | Writes cost | Storage | Month | After the free $5 |
|---|---|---|---|---|---|
| Each stream expires after 7 days | 3,010,000 | $4.52 | $0.07 | $4.58 | $0.00 |
| Never deleted: month 12, with 12 months of runs kept | 3,010,000 | $4.52 | $3.43 | $7.95 | $2.95 |
$4.58 against $7.95, and the second grows every month: a stream keeps everything until it is deleted. Give each run’s stream an expiry, or delete it when its readers are done.
Fan-out to many readers
A job appends a 2 KiB event every second all month, and advances the stream’s retention every day, so it keeps about a day of events.
| Case | Writes | Writes cost | Storage | Month | After the free $5 |
|---|---|---|---|---|---|
| One reader | 2,592,000 | $3.89 | $0.01 | $3.90 | $0.00 |
| A hundred readers | 2,592,000 | $3.89 | $0.01 | $3.90 | $0.00 |
$3.90 with one reader and $3.90 with a hundred: reads are free, tails included, so readers do not change the bill. What bounds them is the account’s open tails in a region, so a hundred live viewers read through a server of yours that holds one tail.
Batch small messages
10,000,000 events of 100 bytes a month, kept on average for half of it. One design appends each event alone; the other appends 100 at a time, as one JSON array of 10,000 bytes.
| Case | Writes | Writes cost | Storage | Month | After the free $5 |
|---|---|---|---|---|---|
| One append per event | 10,000,000 | $15.00 | $0.02 | $15.02 | $10.02 |
| 100 events per append | 100,000 | $0.15 | $0.02 | $0.17 | $0.00 |
$15.02 against $0.17: an append costs one write per 10 KiB and at least one, so fill each append toward 10 KiB. It also sends a hundred times fewer requests against the account’s rate.
Usage per stream
Each stream’s usage this month, at list price before the allowance and credit, is on Streams in the console, and from the CLI or GET /v1/usage/streams:
tonbo stream usage
tonbo stream usage --period 2026-10 --prefix run-There is one row per stream, deleted streams of the month included: a stream deleted and created again under the same name has a row for each. The other row holds the rest of the account’s usage, its databases included, so the rows and other add up to the account’s total; tonbo database usage lists the databases, and no stream is ever a row there. --names events,run-42 limits the answer to named streams.