DynamoDB Reserved Words Checker
Paste your attribute names to see which collide with DynamoDB’s reserved words, and copy an ExpressionAttributeNames map that aliases them safely.
Why reserved words matter
DynamoDB keeps a long list of reserved keywords that it will not accept as a bare attribute name inside an expression. Everyday names — name, status, size, count, timestamp, year — are on it. Reference one directly and the request fails with a ValidationException, usually at runtime rather than in review.
The fix is an expression attribute name: a # placeholder that stands in for the real name, paired with an ExpressionAttributeNames map. This checker matches your names case-insensitively against the full list and builds that map for the reserved ones automatically, so you can paste it straight into a GetItem, Query, Update, or Delete request.
Aliasing is a small habit that avoids a whole class of errors — expression attribute names and values explains the placeholders in depth, and the Expression Builder aliases every name for you as you build.
Frequently asked questions
What are DynamoDB reserved words?
DynamoDB reserves a large list of keywords — around 573 — that cannot be used directly as attribute names inside an expression. Names like name, status, timestamp, size, and count are all reserved. If you reference one directly in a projection, filter, condition, or update expression, DynamoDB returns a ValidationException with an “Attribute name is a reserved keyword” message.
How do I use a reserved word as an attribute name?
Alias it with an expression attribute name — a placeholder that starts with # and maps to the real name. For example, reference #name in your expression and pass ExpressionAttributeNames of { "#name": "name" }. This tool generates that map for every reserved name you enter, ready to paste into your request.
Is the reserved-words list case-sensitive?
No. DynamoDB’s reserved-words list is not case-sensitive, so Name, name, and NAME are all treated as the reserved word NAME. This checker matches case-insensitively, exactly like DynamoDB.
Do I have to alias every attribute name?
Only the reserved ones require an alias, but many teams alias every name as a habit so they never hit the error and the expressions read consistently. Aliasing a non-reserved name is always safe. This tool flags exactly which of your names are reserved so you can decide.