# Key-Value Store Documentation > Managed key-value storage for lists and sets, accessible from Streams filters and a REST API. Used for watchlists, dedup keys, and counters that need to persist across blocks. - [Getting Started with Key-Value Store](https://www.quicknode.com/docs/key-value-store.md): Getting Started with Key-Value Store - [/kv/rest/v1/lists/{key}/contains/{item} REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/check-list-for-item.md): Checks whether a specific item exists in a Key-Value Store list. Returns a boolean indicating membership. This is useful for external services that need to verify list membership outside of a Streams filter. Within Streams filters, use qnContainsListItems for batch membership checks, which is more efficient for checking multiple items at once. - [/kv/rest/v1/sets/bulk REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/sets/bulk-update-sets.md): Creates and/or deletes multiple Key-Value Store sets in a single request. Provide addSets as an object of key-value pairs to create or overwrite, and deleteSets as an array of keys to remove. This is the most efficient way to manage multiple sets at once, reducing the number of API calls needed for batch operations. - [DELETE /kv/rest/v1/lists/{key} REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/delete-list-by-key.md): Permanently deletes a Key-Value Store list and all of its items. This action cannot be undone. If you only need to remove specific items from the list, use the PATCH /kv/rest/v1/lists/{key} endpoint with removeItems or DELETE /kv/rest/v1/lists/{key}/items/{item} instead. - [DELETE /kv/rest/v1/lists/{key}/items/{item} REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/delete-list-item.md): Removes a specific item from a Key-Value Store list. The item is identified by its exact string value (case-sensitive). For removing multiple items at once, use the PATCH /kv/rest/v1/lists/{key} endpoint with the removeItems array instead. To delete the entire list, use DELETE /kv/rest/v1/lists/{key}. - [DELETE /kv/rest/v1/sets/{key} REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/sets/delete-set.md): Permanently deletes a specific Key-Value Store set (key-value pair) by its key. This action cannot be undone. For deleting multiple sets at once, use the POST /kv/rest/v1/sets/bulk endpoint with the deleteSets array instead. - [GET /kv/rest/v1/lists REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/retrieve-lists.md): Retrieves the keys of all Key-Value Store lists in your account. Returns an array of list key names (not the list contents). Use this to discover which lists exist before retrieving specific list items with the GET /kv/rest/v1/lists/{key} endpoint. - [GET /kv/rest/v1/lists/{key} REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/retrieve-list-by-key.md): Retrieves all items from a specific Key-Value Store list by its key. Returns the complete array of string items stored in the list. Use this to inspect the current contents of a list, verify that items were added correctly, or export list data for external processing. - [GET /kv/rest/v1/sets REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/sets/retrieve-sets.md): Retrieves the keys of all Key-Value Store sets in your account. Returns an array of set key names (not the values). Use this to discover which sets exist before retrieving specific values with the GET /kv/rest/v1/sets/{key} endpoint. - [GET /kv/rest/v1/sets/{key} REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/sets/retrieve-set.md): Retrieves the value of a specific Key-Value Store set by its key. Use this to read stored data points such as last-processed block numbers, cached values, or configuration data managed through the Key-Value Store. - [Key-Value Store REST API](https://www.quicknode.com/docs/key-value-store/rest-api/getting-started.md): Introducing the Key-Value Store REST API - [PATCH /kv/rest/v1/lists/{key} REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/upsert-list.md): Adds and/or removes items from an existing Key-Value Store list in a single request. Provide addItems to insert new entries and removeItems to delete existing ones. This is the most efficient way to perform batch updates on a list, as it handles both additions and removals in one API call. Items are case-sensitive. - [POST /kv/rest/v1/lists REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/create-list.md): Creates a new Key-Value Store list with the specified key and initial items. Use lists to store collections of string values (such as wallet addresses, token contract addresses, or account IDs) that you can later check against streaming blockchain data in Streams filters. The list key must be unique — attempting to create a list with an existing key will result in an error. Items are case-sensitive. - [POST /kv/rest/v1/lists/{key}/items REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/lists/add-item-to-list.md): Adds a single item to an existing Key-Value Store list. The list must already exist (use POST /kv/rest/v1/lists to create one first). For adding multiple items at once, use the PATCH /kv/rest/v1/lists/{key} endpoint with the addItems array instead — this is more efficient than making multiple single-item requests. - [POST /kv/rest/v1/sets REST API Endpoint](https://www.quicknode.com/docs/key-value-store/rest-api/sets/create-set.md): Creates a new key-value set (a single key-value pair) in Key-Value Store. Use sets to store individual data points such as configuration values, running totals, last-processed block numbers, or cached computed values. Both the key and value are strings. If a set with the specified key already exists, this operation will overwrite the existing value.