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

# List API Keys

> List all API keys for your account. Secrets are never returned in list responses.

<ParamField header="Authorization" type="string" required>
  Bearer token: `Bearer YOUR_ACCESS_TOKEN`
</ParamField>

<Note>
  The `api_secret` is never returned in list or get responses — only at creation. To rotate a secret, revoke the key and create a new one.
</Note>

<Accordion title="Response Type Definitions">
  ```typescript theme={null}
  interface ApiKeySummary {
    key_id: string;
    api_key: string;      // Public key only — secret is never returned
    name: string;
    permissions: string[];
    status: "active" | "revoked" | "expired";
    last_used_at: string | null;
    expires_at: string | null;
    created_at: string;
  }

  interface ListApiKeysResponse {
    status: "success";
    data: {
      keys: ApiKeySummary[];
    };
  }
  ```
</Accordion>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET 'https://crypto-api.yativo.com/api/v1/apikey' \
    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "success": true,
    "count": 1,
    "data": [
      {
        "id": "key_69c799d9f1fba3928d8a12ac",
        "key_name": "Production API Key",
        "api_key": "yativo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "scopes": ["read", "write", "transactions"],
        "is_active": true,
        "is_revoked": false,
        "allowed_ips": [],
        "allowed_origins": [],
        "rate_limit": {
          "requests_per_minute": 60,
          "requests_per_hour": 3000,
          "requests_per_day": 50000
        },
        "expires_at": null
      }
    ]
  }
  ```
</ResponseExample>
