dynobase-icon
Dynobase

DynamoDB Capacity & Item Size Calculator

Last updated: September 19th, 2026

56 bytes
Under 0.1% of the 400 KB limit. This item fits.
Where the bytes go
AttributeName plus valueShare of item
customerShippingAddressLine141 bytes73%
pk8 bytes14%
active7 bytes13%
Each row is the name plus the value. A long name is paid on every item that carries it: customerShippingAddressLine1 is 28 bytes before its value.
Writing this item consumes 1 WCU, or 2 WCU in a transaction.
Reading it consumes 1 RCU strongly consistent, 0.5 RCU eventually consistent, or 2 RCU in a transaction.

Check a DynamoDB item's size against the 400 KB limit

A DynamoDB item can be at most 400 KB, which is 409,600 bytes counted as the UTF-8 length of every attribute name plus the size of every value, nested maps and lists included. Paste an item above to get its size, a verdict against the limit, and which attributes take the bytes. No API returns an item's byte count: ReturnConsumedCapacity gives you the write units, which is the size rounded up to the next 1 KB, and for the exact bytes you compute it the way DynamoDB does. One caveat on the arithmetic: a JSON array is sized as a List, with its own few bytes of overhead, while a DynamoDB set has none, so a set-heavy item is a little smaller in practice than the number above.

Go over and PutItem or UpdateItem fails with ValidationException: Item size has exceeded the maximum allowed size. The limit cannot be increased. The usual ways round it are to compress the offending attribute, to move it to S3 and store its key in the item, or to split a wide item into an item collection under the same partition key. Item collections have their own cap, 10 GB, and only when the table has a local secondary index.

Long attribute names are the quiet cost. A name like customerShippingAddressLine1 spends 28 bytes on every item that carries it, and on every read and write of that item. Short names on hot, narrow items are worth the readability trade; the breakdown above shows when a name outweighs its value.

How capacity is calculated from item size

DynamoDB bills reads and writes in capacity units, and the number you consume is driven by item size rounded up to a fixed boundary. Provisioned tables call them read and write capacity units, measured per second; on-demand tables call them read and write request units, billed per request. The arithmetic is identical either way.

Reads round up to the next 4 KB. A strongly consistent read of an item up to 4 KB costs one read unit, an eventually consistent read costs half a unit, and a transactional read costs two. So an 8 KB item costs 2 units strongly consistent, 1 eventually consistent, or 4 transactional.

Writes round up to the next 1 KB. A write of an item up to 1 KB costs one write unit, and a transactional write costs two.

Two things catch people out. Batch operations round each item individually before summing, so a BatchGetItem of a 1.5 KB and a 6.5 KB item costs 12 KB of reads, not 8 KB. And UpdateItem is billed on the larger of the item before and after the update, even when you only touch one attribute.

Once you know the units, the DynamoDB pricing calculator turns them into a monthly cost.

Frequently Asked Questions

What is the maximum size of an item in DynamoDB?

400 KB, which DynamoDB counts as 409,600 bytes of attribute names plus values, nested maps and lists included. The limit cannot be raised; larger data goes to S3 with its key in the item.

Can DynamoDB store BLOB data?

Yes it can. However, when often accessed and manipulated, it can easily deplete provisioned read/write capacity units and cause your DynamoDB costs to skyrocket. In most cases, we recommend storing blob, such as images or PDFs in S3 and store only their URLs in DynamoDB.

How does DynamoDB calculate item size?

Item's size is the sum of the attribute names and values. As DynamoDB is using UTF8 encoding, most chars use 1 byte but some less used characters, like language specific, use 2, while emojis can consume up to 4.
  • Zero is 1 byte. Any other number is 1 byte per two significant digits, plus 1, plus another byte if it is negative, so 2 to 21 bytes.
  • Binary and BinarySets are using 1 byte per 1 byte, obviously.
  • Boolean is also 1 byte.
  • Null is 1 byte too.
  • Lists and maps cost 3 bytes, plus the size of each element, plus 1 byte per element.
For more info how it's calculated read this article

How much data can DynamoDB store?

There is no practical limit on a table's size. AWS states that tables are unconstrained in the number of items or the number of bytes they hold.

The 10 GB figure you may have seen is narrower than it is often quoted. It is the item collection size limit, meaning the total size of all items sharing one partition key value, and it applies only to tables that have a local secondary index. AWS is explicit that it does not apply to tables without an LSI, nor to global secondary indexes. If you do have an LSI and a collection passes 10 GB, AWS says writes to that partition key might then fail with ItemCollectionSizeLimitExceededException.

Does the type of read change how much capacity it costs?

Yes, and the calculator above reports all three.
  • An eventually consistent read costs half as much as a strongly consistent one.
  • A transactional read costs twice as much.
The same applies to writes: a transactional write costs twice a standard one.

I've calculated WCU and RCU. How does this relate to $$?

Is the item I paste in the calculator above being stored anywhere?

No. We're not sending that data anywhere, item size is calculated using client-side Javascript inside your browser.

Dynobase is a Professional GUI Client for DynamoDB

Start your 7-day free trial today

Product Features

Download
/
Pricing
/
Member Portal
/
Privacy
/
EULA
/
Twitter
© 2026 Dynobase