# List API keys

> Returns key metadata, never raw secrets.

Source: https://sndr.sh/docs/api/api-keys/list-api-keys

`GET https://api.sndr.sh/v1/api-keys`

Returns key metadata, never raw secrets. Create and revoke keys at app.sndr.sh/api-keys; these operations require a dashboard session.

Scope: `read`

**Request**

```bash
curl 'https://api.sndr.sh/v1/api-keys' -H "Authorization: Bearer $SNDR_API_KEY"
```

**Response** (200)

```json
{
  "data": [
    {
      "id": "key_123",
      "organization_id": "org_123",
      "name": "Production",
      "prefix": "sndr_live_ab12",
      "scopes": [
        "send",
        "read"
      ],
      "created_at": "2026-10-30T00:00:00Z"
    }
  ]
}
```

**Node.js SDK** (`@rkiza/sndr` 0.3.0+)

```js
import { Sndr } from '@rkiza/sndr';

const apiKey = process.env.SNDR_API_KEY;
if (!apiKey) throw new Error('Set SNDR_API_KEY');
const sndr = new Sndr(apiKey);

const result = await sndr.apiKeys.list();
```

**Errors**

- `unauthenticated` (401): Missing or invalid API key.
- `insufficient_scope` (403): The key needs read scope.
