Amazon DynamoDB SDK




Amazon DynamoDB

This is the Amazon DynamoDB API Reference. This guide provides descriptions of the low-level DynamoDB API.

This guide is intended for use with the following DynamoDB documentation:

Instead of making the requests to the low-level DynamoDB API directly from your application, we recommend that you use the AWS Software Development Kits (SDKs). The easy-to-use libraries in the AWS SDKs make it unnecessary to call the low-level DynamoDB API directly from your application. The libraries take care of request authentication, serialization, and connection management. For more information, see < Using the AWS SDKs with DynamoDB> in the Amazon DynamoDB Developer Guide.

If you decide to code against the low-level DynamoDB API directly, you will need to write the necessary code to authenticate your requests. For more information on signing your requests, see < Using the DynamoDB API> in the /Amazon DynamoDB Developer Guide/.

The following are short descriptions of each low-level API action, organized by function.

Managing Tables

  • /CreateTable/ - Creates a table with user-specified provisioned throughput settings. You must define a primary key for the table - either a simple primary key (partition key), or a composite primary key (partition key and sort key). Optionally, you can create one or more secondary indexes, which provide fast data access using non-key attributes.

  • /DescribeTable/ - Returns metadata for a table, such as table size, status, and index information.

  • /UpdateTable/ - Modifies the provisioned throughput settings for a table. Optionally, you can modify the provisioned throughput settings for global secondary indexes on the table.

  • /ListTables/ - Returns a list of all tables associated with the current AWS account and endpoint.

  • /DeleteTable/ - Deletes a table and all of its indexes.

For conceptual information about managing tables, see < Working with Tables> in the /Amazon DynamoDB Developer Guide/.

Reading Data

  • /GetItem/ - Returns a set of attributes for the item that has a given primary key. By default, /GetItem/ performs an eventually consistent read; however, applications can request a strongly consistent read instead.

  • /BatchGetItem/ - Performs multiple /GetItem/ requests for data items using their primary keys, from one table or multiple tables. The response from /BatchGetItem/ has a size limit of 16 MB and returns a maximum of 100 items. Both eventually consistent and strongly consistent reads can be used.

  • /Query/ - Returns one or more items from a table or a secondary index. You must provide a specific value for the partition key. You can narrow the scope of the query using comparison operators against a sort key value, or on the index key. /Query/ supports either eventual or strong consistency. A single response has a size limit of 1 MB.

  • /Scan/ - Reads every item in a table; the result set is eventually consistent. You can limit the number of items returned by filtering the data attributes, using conditional expressions. /Scan/ can be used to enable ad-hoc querying of a table against non-key attributes; however, since this is a full table scan without using an index, /Scan/ should not be used for any application query use case that requires predictable performance.

For conceptual information about reading data, see < Working with Items> and < Query and Scan Operations> in the /Amazon DynamoDB Developer Guide/.

Modifying Data

  • /PutItem/ - Creates a new item, or replaces an existing item with a new item (including all the attributes). By default, if an item in the table already exists with the same primary key, the new item completely replaces the existing item. You can use conditional operators to replace an item only if its attribute values match certain conditions, or to insert a new item only if that item doesn't already exist.

  • /UpdateItem/ - Modifies the attributes of an existing item. You can also use conditional operators to perform an update only if the item's attribute values match certain conditions.

  • /DeleteItem/ - Deletes an item in a table by primary key. You can use conditional operators to perform a delete an item only if the item's attribute values match certain conditions.

  • /BatchWriteItem/ - Performs multiple /PutItem/ and /DeleteItem/ requests across multiple tables in a single request. A failure of any request(s) in the batch will not cause the entire /BatchWriteItem/ operation to fail. Supports batches of up to 25 items to put or delete, with a maximum total request size of 16 MB.

For conceptual information about modifying data, see < Working with Items> and < Query and Scan Operations> in the /Amazon DynamoDB Developer Guide/.

Documentation is available via Hackage and the AWS API Reference.

The types from this library are intended to be used with amazonka, which provides mechanisms for specifying AuthN/AuthZ information and sending requests.

Use of lenses is required for constructing and manipulating types. This is due to the amount of nesting of AWS types and transparency regarding de/serialisation into more palatable Haskell values. The provided lenses should be compatible with any of the major lens libraries lens or lens-family-core.


For any problems, comments, or feedback please create an issue here on GitHub.

Note: this library is an auto-generated Haskell package. Please see amazonka-gen for more information.


amazonka-dynamodb is released under the Mozilla Public License Version 2.0.

Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0. Source files subject to this contain an additional licensing clause in their header.