# Get list of key-value stores


```
GET 
https://api.apify.com/v2/key-value-stores
```


Gets the list of key-value stores owned by the user.

The response is a list of objects, where each objects contains a basic information about a single key-value store.

The endpoint supports pagination using the `limit` and `offset` parameters and it will not return more than 1000 array elements.

By default, the records are sorted by the `createdAt` field in ascending order, therefore you can use pagination to incrementally fetch all key-value stores while new ones are still being created. To sort the records in descending order, use the `desc=1` parameter.

## Request

### Query Parameters

* **offset** double

  Number of items that should be skipped at the start. The default value is `0`.

  **Example:** `0`

  **limit** double

  Maximum number of items to return. The default value as well as the maximum is `1000`.

  **Example:** `1000`

  **desc** boolean

  If `true` or `1` then the objects are sorted by the `createdAt` field in descending order. By default, they are sorted in ascending order.

  **Example:** `true`

  **unnamed** boolean

  If `true` or `1` then all the storages are returned. By default, only named storages are returned.

  **Example:** `true`

  **ownership** StorageOwnership

  **Possible values:** \[`ownedByMe`, `sharedWithMe`]

  Filter by ownership. If this parameter is omitted, all accessible key-value stores are returned.
  * `ownedByMe`: Return only key-value stores owned by the user.
  * `sharedWithMe`: Return only key-value stores shared with the user by other users.
  **Example:** `ownedByMe`

<!-- -->

### Status 200

**Response Headers**




```
{
  "data": {
    "total": 1,
    "offset": 0,
    "limit": 1000,
    "desc": false,
    "count": 1,
    "items": [
      {
        "id": "WkzbQMuFYuamGv3YF",
        "name": "d7b9MDYsbtX5L7XAj",
        "userId": "BPWDBd7Z9c746JAnF",
        "username": "janedoe",
        "createdAt": "2019-12-12T07:34:14.202Z",
        "modifiedAt": "2019-12-13T08:36:13.202Z",
        "accessedAt": "2019-12-14T08:36:13.202Z",
        "actId": null,
        "actRunId": null,
        "consoleUrl": "https://console.apify.com/storage/key-value-stores/27TmTznX9YPeAYhkC",
        "keysPublicUrl": "https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/keys?signature=abc123",
        "urlSigningSecretKey": "string",
        "generalAccess": "RESTRICTED",
        "stats": {
          "readCount": 9,
          "writeCount": 3,
          "deleteCount": 6,
          "listCount": 2,
          "s3StorageBytes": 18
        }
      }
    ]
  }
}
```


**Schema**

* **data** object required

  Common pagination fields for list responses.

  * **total** integer required

    The total number of items available across all pages.

    **Possible values:** `>= 0`

    **Example:** `1`

  * **offset** integer required

    The starting position for this page of results.

    **Possible values:** `>= 0`

    **Example:** `0`

  * **limit** integer required

    The maximum number of items returned per page.

    **Possible values:** `>= 1`

    **Example:** `1000`

  * **desc** boolean required

    Whether the results are sorted in descending order.

    **Example:** `false`

  * **count** integer required

    The number of items returned in this response.

    **Possible values:** `>= 0`

    **Example:** `1`

  * **items** object\[] required

    * **id** string required\
      **Example:** `WkzbQMuFYuamGv3YF`

    * **name** string | null nullable\
      **Example:** `d7b9MDYsbtX5L7XAj`

    * **userId** string | null nullable\
      **Example:** `BPWDBd7Z9c746JAnF`

    * **username** string | null nullable\
      **Example:** `janedoe`

    * **createdAt** string\<date-time> required\
      **Example:** `2019-12-12T07:34:14.202Z`

    * **modifiedAt** string\<date-time> required\
      **Example:** `2019-12-13T08:36:13.202Z`

    * **accessedAt** string\<date-time> required\
      **Example:** `2019-12-14T08:36:13.202Z`

    * **actId** string | null nullable\
      **Example:** `null`

    * **actRunId** string | null nullable\
      **Example:** `null`

    * **consoleUrl** string\<uri>\
      **Example:** `https://console.apify.com/storage/key-value-stores/27TmTznX9YPeAYhkC`

    * **keysPublicUrl** string\<uri>

      A public link to access keys of the key-value store directly.

      **Example:** `https://api.apify.com/v2/key-value-stores/WkzbQMuFYuamGv3YF/keys?signature=abc123`

    * **urlSigningSecretKey** string | null nullable

      A secret key for generating signed public URLs. It is only provided to clients with WRITE permission for the key-value store.

    * **generalAccess** GeneralAccess (string)

      Defines the general access level for the resource.

      **Possible values:** \[`ANYONE_WITH_ID_CAN_READ`, `ANYONE_WITH_NAME_CAN_READ`, `FOLLOW_USER_SETTING`, `RESTRICTED`]

      **Example:** `RESTRICTED`

    * **stats** object

      * **readCount** integer required\
        **Example:** `9`
      * **writeCount** integer required\
        **Example:** `3`
      * **deleteCount** integer required\
        **Example:** `6`
      * **listCount** integer required\
        **Example:** `2`
      * **s3StorageBytes** integer\
        **Example:** `18`

### Status 400

Bad request - invalid input parameters or request body.


```
{
  "error": {
    "type": "invalid-input",
    "message": "Invalid input: The request body contains invalid data."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 401

Unauthorized - authentication required or invalid token.


```
{
  "error": {
    "type": "token-not-valid",
    "message": "Authentication token is not valid."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 403

Forbidden - insufficient permissions to perform this action.


```
{
  "error": {
    "type": "permission-denied",
    "message": "You do not have permission to perform this action."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 405

Method not allowed.


```
{
  "error": {
    "type": "method-not-allowed",
    "message": "This API end-point can only be accessed using the following HTTP methods: OPTIONS,GET"
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 429

Too many requests - rate limit exceeded.


```
{
  "error": {
    "type": "rate-limit-exceeded",
    "message": "You have exceeded the rate limit. Please try again later."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`
