> ## Documentation Index
> Fetch the complete documentation index at: https://docs.estudjo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List API Keys — estudjo API Reference

> List all API keys on your estudjo account. Returns metadata only — the full key value is never exposed after creation. Requires X-Api-Key.

Retrieve a list of all API keys associated with your estudjo account. This endpoint returns metadata only — the full key value is never exposed after the initial creation response. Use this endpoint to audit active keys, check when a key was last used, or find the `id` needed to revoke a key.

## Request

|            |                                       |
| ---------- | ------------------------------------- |
| **Method** | `GET`                                 |
| **URL**    | `https://v1.api.estudjo.com/api-keys` |
| **Auth**   | `X-Api-Key` header                    |

This endpoint takes no request parameters.

```bash theme={null}
curl https://v1.api.estudjo.com/api-keys \
  -H 'X-Api-Key: YOUR_API_KEY'
```

## Response

### 200 — OK

```json theme={null}
{
  "success": true,
  "data": {
    "scenes": [
      { "name": "Lit-Modern Room", "scene_id": "54fde974-7b3a-4cda-bec3-b82aed8ddb32", "type": "predefined" },
      { "name": "Grand Historic Interior", "scene_id": "59b4a671-1b90-453e-92c3-a28ceee177af", "type": "user_created" }
    ],
    "page": 1,
    "per_page": 250,
    "total": 2
  }
}
```

<Info>
  The full key value is never returned by this endpoint — only metadata. If you have no keys yet, or all keys have been revoked, `data` will be an empty array (`[]`). This is not an error.
</Info>

<ResponseField name="success" type="boolean">
  `true` when the request was processed successfully.
</ResponseField>

<ResponseField name="data" type="array">
  <Expandable title="data[]">
    <ResponseField name="id" type="number">
      Unique numeric identifier for the API key. Pass this value to `DELETE /api-keys/{id}` to revoke the key.
    </ResponseField>

    <ResponseField name="name" type="string">
      Human-readable label assigned to the key at creation time.
    </ResponseField>

    <ResponseField name="last_used_at" type="string | null">
      ISO 8601 timestamp of the last authenticated request made with this key, or `null` if the key has never been used.
    </ResponseField>

    <ResponseField name="revoked_at" type="string | null">
      ISO 8601 timestamp of when the key was revoked, or `null` if the key is still active.
    </ResponseField>

    <ResponseField name="date_created" type="string">
      ISO 8601 timestamp of when the key was created.
    </ResponseField>
  </Expandable>
</ResponseField>
