> Fetch the index of every Tonbo docs page as Markdown at https://tonbo.dev/llms.txt

# Streams

Last updated 29 October 2026

A durable log at an HTTPS URL: programs append to it exactly once, and any number of readers read it from any offset or tail it live, with plain HTTP.

## What people build with it

- An agent’s transcript or event log

  One stream per run, every step appended once, replayed from any offset.
- Live progress

  A job appends, and a page or a CLI tails it (see [Job progress to a web UI](https://tonbo.dev/docs/streams/job-progress.md)).
- Fan-out to many readers

  Each reader keeps its own offset, and reads are free.
- A public feed

  Anyone with its URL reads it without a token (see [Public streams](https://tonbo.dev/docs/streams/access.md#public)).

## A good fit, and not

A good fit:

- History that only grows, read by one reader or many.
- Writers that retry: each append applies once (see [Append](https://tonbo.dev/docs/streams/append.md#append)).
- Any language or runtime with an HTTP client.

Not a good fit:

- A work queue with acknowledgements, leases or redelivery.
- Data you update or query in place: use a [database](https://tonbo.dev/docs/databases.md).
- Removing single messages (see [Retention](https://tonbo.dev/docs/streams/snapshots.md#retention)).

## Compared with a message queue and object storage

|  | Tonbo Streams | A message queue | Object storage |
| --- | --- | --- | --- |
| Who gets a message | Every reader, from its own offset | One consumer, which acknowledges it | Whoever fetches the object |
| A writer’s retry | Applies once | Often delivered twice | Writes the object again |
| History | Kept until you trim or delete it | Usually gone once acknowledged | Kept until you delete it |
| You pay for | Writes and storage; reads are free | Usually each operation | Requests, storage and egress |

For state you query and change in place, use a [database](https://tonbo.dev/docs/databases.md) instead.

## What it costs

Every account gets $5 of usage free each month. After that you pay for writes and storage, and reads are free. See [Pricing](https://tonbo.dev/docs/streams/pricing.md).

## Where it runs

Anywhere with HTTPS: a stream is a URL, and every operation is a plain HTTP request with an API key, so there is no SDK to install. A web page gets a short-lived token from your server instead of a key (see [A token for a web page](https://tonbo.dev/docs/streams/access.md#browser)).

## Get started

- [Quickstart: durable stream](https://tonbo.dev/docs/getting-started/quickstarts/stream.md): Create a stream, then append to it, read it, tail it and close it with `curl`, from your laptop.

## Next steps

- [Concepts](https://tonbo.dev/docs/streams/concepts.md): The words the rest of these pages use, and every operation a stream has.
- [Append](https://tonbo.dev/docs/streams/append.md): Append exactly once, batch messages, and close a stream, with each answer.
- [Read and tail](https://tonbo.dev/docs/streams/read.md): Read from an offset, catch up, and tail with a long-poll or Server-Sent Events.
- [Rules for streams](https://tonbo.dev/docs/streams/rules.md): What to do and what not to, for writers, readers, keys and cost.
- [Delivery guarantees](https://tonbo.dev/docs/streams/guarantees.md): When an append is durable, and what readers can rely on.
- [Limits](https://tonbo.dev/docs/streams/limits.md): Streams per account, body and request limits, and live reads.
- [Pricing](https://tonbo.dev/docs/streams/pricing.md): What appends and storage cost, with worked examples; reads are free.
