# `list()`

1. [`GetAPIKeyListParams`](/content/docs/reference/backend/api-keys/list#get-api-key-list-params/index.html)
2. [Usage](/content/docs/reference/backend/api-keys/list#usage/index.html)
   1. [Filter by user ID](/content/docs/reference/backend/api-keys/list#filer-by-user-id/index.html)
   2. [Filter by user ID, including invalid API keys](/content/docs/reference/backend/api-keys/list#filter-by-user-id-including-invalid-api-keys/index.html)
   3. [Filter by user ID, including invalid API keys, with pagination](/content/docs/reference/backend/api-keys/list#filter-by-user-id-including-invalid-api-keys-with-pagination/index.html)
3. [Backend API (BAPI) endpoint](/content/docs/reference/backend/api-keys/list#backend-api-bapi-endpoint/index.html)

Gets a list of API keys for the given user or Organization. By default, the list is returned in descending order by creation date (newest first).

Returns a [`PaginatedResourceResponse`](/content/docs/reference/backend/types/paginated-resource-response/index.html) object with a `data` property containing an array of [`APIKey`](/content/docs/reference/backend/types/backend-api-key/index.html) objects and a `totalCount` property containing the total number of API keys for the user or Organization.

```javascript
function list(queryParams: GetAPIKeyListParams): Promise<PaginatedResourceResponse<APIKey[]>>
```

## [`GetAPIKeyListParams`](/content/docs/reference/backend/api-keys/list#get-api-key-list-params/index.html)

- **Name:** `includeInvalid?`  
  **Type:** `boolean`  
  **Description:** Whether to include invalid API keys (revoked or expired). Defaults to `false`.

- **Name:** `limit?`  
  **Type:** `number`  
  **Description:** Maximum number of items returned per request. Must be an integer greater than zero and less than `501`. Can be used for paginating the results together with offset. Defaults to `10`.

- **Name:** `offset?`  
  **Type:** `number`  
  **Description:** Skip the first `offset` items when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`. Defaults to `0`.

- **Name:** `subject`  
  **Type:** `string`  
  **Description:** The user or Organization ID to query API keys by.

## [Usage](/content/docs/reference/backend/api-keys/list#usage/index.html)

### [Filter by user ID](/content/docs/reference/backend/api-keys/list#filer-by-user-id/index.html)

Gets a list of API keys for a user

```javascript
const userId = 'user_123'

const apiKeys = await clerkClient.apiKeys.list({
  subject: userId,
})
```

### [Filter by user ID, including invalid API keys](/content/docs/reference/backend/api-keys/list#filter-by-user-id-including-invalid-api-keys/index.html)

Gets a list of API keys for a user, including invalid ones

```javascript
const userId = 'user_123'

const apiKeys = await clerkClient.apiKeys.list({
  subject: userId,
  includeInvalid: true,
})
```

### [Filter by user ID, including invalid API keys, with pagination](/content/docs/reference/backend/api-keys/list#filter-by-user-id-including-invalid-api-keys-with-pagination/index.html)

Gets a list of API keys for a user with pagination

```javascript
const userId = 'user_123'

const apiKeys = await clerkClient.apiKeys.list({
  subject: userId,
  limit: 20,
  offset: 0,
})
```

## [Backend API (BAPI) endpoint](/content/docs/reference/backend/api-keys/list#backend-api-bapi-endpoint/index.html)

This method in the SDK is a wrapper around the BAPI endpoint `GET/api_keys`. See the [BAPI reference](/content/docs/reference/backend-api/tag/api-keys/GET/api_keys/index.html) for more information.
