Products · Developer platform
K2
A durable event stream
Pricing and limits
Pricing
As of Nov 3, 2026, from Cloudflare's docs, last updated there Oct 6, 2026. Licensed CC BY 4.0; navigation removed.
Pricing availability
K2 is in public beta and billing is not enabled at this time. We will provide at least 30 days notice before billing begins. Pricing may change and is shared in advance so that you can estimate what your costs will be once Cloudflare starts billing for usage.
K2 is available on the Workers Paid plan. K2 charges based on three dimensions:
- Data produced: The volume of data written to streams.
- Data consumed: The volume of data read from streams by consumers.
- Data retained: The volume of data stored in streams.
All three dimensions are measured in uncompressed bytes: the size of your records before any compression, such as gzip compression of an HTTP request body.
K2 pricing
| Workers Paid 1 | |
|---|---|
| Data produced | $0.04 / GB |
| Data consumed | $0.04 / GB |
| Data retained | $0.02 / GB / month |
Data produced
Data produced is the volume of records written to a stream, through the HTTP API or a Workers binding.
Data consumed
Data consumed is the volume of records read from a stream through subscriptions. Each subscription reads every record independently, so a stream with more subscriptions consumes more data.
Data retained
Data retained is the volume of records stored in a stream, billed per GB per month. How much data a stream stores depends on how much you produce and on the stream's retention period.
Billing examples
Example: one consumer
An application produces 100 GB of events per month to a stream. One subscription consumes every record, and the stream stores an average of 25 GB over the month.
| Dimension | Usage | Rate | Cost |
|---|---|---|---|
| Data produced | 100 GB | $0.04 / GB | $4.00 |
| Data consumed | 100 GB | $0.04 / GB | $4.00 |
| Data retained | 25 GB | $0.02 / GB / month | $0.50 |
| Total | $8.50 |
Example: fan-out to three consumers
The same stream is read by three subscriptions, for example an alerting system, an archiver, and an analytics pipeline. Each subscription consumes every record.
| Dimension | Usage | Rate | Cost |
|---|---|---|---|
| Data produced | 100 GB | $0.04 / GB | $4.00 |
| Data consumed | 300 GB (3 × 100 GB) | $0.04 / GB | $12.00 |
| Data retained | 25 GB | $0.02 / GB / month | $0.50 |
| Total | $16.50 |
Cloudflare billing policy
To learn more about how usage is billed, refer to Cloudflare Billing Policy.
Footnotes
- K2 both bills and measures usage based on a gigabyte
(1 GB = 1,000,000,000 bytes) and not a gibibyte (GiB).
↩
Limits
As of Nov 3, 2026, from Cloudflare's docs, last updated there Oct 6, 2026. Licensed CC BY 4.0; navigation removed.
Need a higher limit?
To request an adjustment to a limit, complete the Limit Increase Request Form ↗︎. If the limit can be increased, Cloudflare will contact you with next steps.
Account limits
During the public beta, each account can store up to 10 GB across all streams.
Streams
| Feature | Limit |
|---|---|
| Maximum streams per account | 20 |
| Minimum retention period | 1 hour (3600 seconds) |
| Maximum retention period | 30 days (2592000 seconds) |
| Default retention period | 7 days (604800 seconds) |
Higher retention limits are available by request.
Produce records
| Feature | Limit |
|---|---|
| Maximum produce throughput per stream | 30 MB/s |
| Maximum request size | 5 MB (5,000,000 bytes) |
| Maximum record size | ~1 MB (1,000,000 bytes) |
| Maximum headers per record | 32 |
| Maximum header name size | 256 bytes |
| Maximum header value size | 8 KiB (8,192 bytes) |
| Maximum total header size per record | 64 KiB (65,536 bytes) |
The maximum request size applies to the HTTP request body both before and after gzip decompression + a small amount of internal metadata. For the Workers binding, it applies to the total size of the records in a single send() call.
The maximum record size applies to the decoded record content, and to the record content and headers combined. Header sizes are measured in UTF-8 bytes.
There is no limit on the number of records in a request, other than the maximum request size.
The maximum produce throughput applies to the total data produced to a stream across all producers. To request a higher limit, refer to limit increases.
Subscriptions and consuming records
| Feature | Limit |
|---|---|
Maximum max_records per consume request |
10,000 |
| Maximum data per consume response | 10 MB |
worker_id length |
1 to 256 characters |
| Maximum active leases per subscription | 128 |
| Maximum subscriptions per stream | 100 |
Timeline
No changelog entries or incidents name K2 yet.