What is the max item size in DynamoDB?
400 KB. The maximum item size in DynamoDB is 400 KB. That total counts both attribute names (UTF-8 byte length) and all attribute values (binary length), including nested lists and maps. Binary values are measured by raw byte length. There is no way to raise this limit — larger objects belong in Amazon S3.
What counts toward the 400 KB
The item size is the sum of:
- every attribute name, measured in UTF-8 bytes, and
- every attribute value, measured in binary length (strings as UTF-8, numbers compactly, binary as raw bytes).
Nested map and list structure adds a small per-element overhead too. Long attribute names cost real space — shorten them to save room.
400 KB is 409,600 bytes, and the name is part of it
AWS measures in binary units: "DynamoDB denotes 1 KB = 1024 bytes." So the ceiling is 409,600 bytes, not 400,000. You can find the exact edge by binary-searching PutItem with one string attribute:
await client.send(
new PutItemCommand({
TableName: 'sizes',
Item: {pk: {S: 'A'}, a: {S: 'x'.repeat(n)}}
})
);The largest n that succeeds is 409,596. Add the key name (pk, 2 bytes), the key value (A, 1 byte) and the attribute name (a, 1 byte) and you land on 409,600 exactly. One more byte gives you:
ValidationException: Item size has exceeded the maximum allowed size
HTTP 400Now rename that attribute from a to attributeName and change nothing else. The largest value that fits drops to 409,584, exactly 12 bytes fewer, and 12 bytes is the extra length of the name.
AWS's own guidance follows from that arithmetic. "We recommend that you choose shorter attribute names rather than long ones."
That is also why a 400 KB budget is tighter than it looks on an item with many attributes. Every name is paid for on every write, and on every read, for the life of the item.
Why it matters
Item size drives capacity cost: each read is billed in 4 KB steps and each write in 1 KB steps (see capacity unit). A larger item costs more per operation as well as risking the hard limit.
When you hit it
Split the data across multiple items, or move large blobs to Amazon S3 and store a reference in DynamoDB.
Go deeper
Measure any item with the item size calculator and read the item size limit guide. Download DynoTable to see item sizes as you edit.
References
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- DynamoDB item sizes and formats — Amazon DynamoDB Developer Guide
- Local secondary indexes — Amazon DynamoDB Developer Guide
Last verified 2026-07-13 against the official AWS documentation linked above. The 400 KB constraint was re-checked 2026-07-28: it now lives in Constraints.html, not the quotas page.
Measured 2026-07-28 against DynamoDB Local 3.3.0 via @aws-sdk/client-dynamodb 3.1095.0 on Node v24.18.0. The byte figures come from a binary search over PutItem; the ValidationException is verbatim engine output.