Amazon Kinesis Data Streams
Developer Guide

Amazon Kinesis Data Streams Limits

Kinesis Data Streams has the following stream and shard limits.

  • There is no upper limit on the number of shards you can have in a stream or account and its common for a workload to have thousands of shards in a single stream.

  • There is no upper limit on the number of streams you can have in an account.

  • A single shard can ingest up to 1 MiB of data per second (including partition keys) or 1000 records per second for writes. Similarly, if you scale your stream to 5000 shards the stream can ingest up to 5 GiB per second or 5 million records per second. If you need more ingest capacity you can easily scale up the number of shards in the stream using the AWS console or the UpdateShardCount API.

  • The default shard limit is 500 shards for the following regions: US East (N. Virginia), US West (Oregon), and EU (Ireland). For all other regions, the default shard limit is 200 shards.

  • The maximum size of the data payload of a record before base64-encoding is up to 1 MiB.

  • GetRecords can retrieve up to 10 MiB of data per call from a single shard, and up to 10,000 records per call. Each call to GetRecords is counted as one read transaction.

  • Each shard can support up to 5 read transactions per second. Each read transaction can provide up to 10,000 records with an upper limit of 10 MiB per transaction.

  • Each shard can support up to a maximum total data read rate of 2 MiB per second via GetRecords. If a call to GetRecords returns 10 MiB, subsequent calls made within the next five seconds throw an exception.

API limits

Like most AWS APIs, Kinesis Data Streams APIs are rate-limited. For information on API call rate limits, see the Amazon Kinesis API Reference. If you encounter API throttling, we encourage you to reach out and request a limit increase.

Increasing limits

To increase your shard limit or API call rate limit

  1. Log in using the AWS console at

  2. Use the Kinesis Data Streams limits form.