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

# List API keys

> Use RunBridge AI GET /api/token/ to list API keys for the authenticated account with pagination.

Use this endpoint to list API keys that belong to the authenticated RunBridge AI account. The newest keys are returned first.

<Note>
  Generate a personal access token at [Console → Personal Settings](https://runbridge.ai/console/personal), then send it as the raw `Authorization` header value. Do not prefix it with `Bearer`.
</Note>

## Pagination

| Query parameter | Description |
| - | - |
| `p` | Page number. Defaults to `1`. |
| `page_size` | Items per page. Values above `100` are capped at `100`. |

## API key status

| Status | Meaning |
| - | - |
| `1` | Enabled |
| `2` | Disabled |
| `3` | Expired |
| `4` | Exhausted |

## Returned fields

| Field | Type | Description |
| - | - | - |
| `id` | integer | Numeric API key ID. Use this value with [Get a single API key](./get-api-key), [Update an API key](./update-api-key), and [Delete an API key](./delete-api-key). |
| `key` | string | API key value returned by the management API. Treat it as a secret and use it as `Authorization: Bearer $RUNBRIDGE_API_KEY` for model requests. |
| `status` | integer | Operational status. Only `1` means the key is enabled for model requests. |
| `name` | string | User-readable display name for the key. |
| `created_time` | integer | Unix timestamp in seconds when the key was created. |
| `accessed_time` | integer | Unix timestamp in seconds when the key was last used. |
| `expired_time` | integer | Unix timestamp in seconds when the key expires. `-1` means no expiration. |
| `remain_quota` | integer | Remaining quota in RunBridge AI internal quota units. |
| `used_quota` | integer | Quota already consumed by this key in RunBridge AI internal quota units. |
| `unlimited_quota` | boolean | Whether the key bypasses remaining-quota checks. |
| `model_limits_enabled` | boolean | Whether model restrictions are active for this key. |
| `model_limits` | string | Comma-separated model IDs allowed by this key when `model_limits_enabled` is `true`. Empty means no configured model list. |
| `allow_ips` | string or null | IP allowlist as one newline-separated string. Each entry can be a single IPv4 address, single IPv6 address, IPv4 CIDR, or IPv6 CIDR. `null` or `""` means no IP restriction. |
| `group` | string | Account group restriction. Empty means no explicit group restriction. |
| `cross_group_retry` | boolean | Whether cross-group retry is enabled for automatic group routing. |


## OpenAPI

````yaml api/openapi/api-keys/list-api-keys.openapi.json GET /api/token/
openapi: 3.1.0
info:
  title: List API Keys
  version: 1.0.0
servers:
  - url: https://api.runbridge.ai
security:
  - accessTokenAuth: []
paths:
  /api/token/:
    get:
      summary: List API keys
      description: >-
        List API keys for the authenticated account. The newest keys are
        returned first.
      operationId: listApiKeys
      parameters:
        - name: p
          in: query
          required: false
          description: Page number to return. Defaults to `1`.
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: page_size
          in: query
          required: false
          description: >-
            Number of keys per page. Values above `100` are capped at `100` by
            the backend.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Paginated API key list.
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - message
                  - data
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  data:
                    type: object
                    required:
                      - page
                      - page_size
                      - total
                      - items
                    properties:
                      page:
                        type: integer
                      page_size:
                        type: integer
                      total:
                        type: integer
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ApiKey'
              examples:
                success:
                  summary: API key list
                  value:
                    success: true
                    message: ''
                    data:
                      page: 1
                      page_size: 20
                      total: 1
                      items:
                        - id: 1234
                          user_id: 5678
                          key: $RUNBRIDGE_API_KEY
                          status: 1
                          name: production
                          created_time: 1766102400
                          accessed_time: 1766102400
                          expired_time: -1
                          remain_quota: 100000
                          unlimited_quota: false
                          model_limits_enabled: false
                          model_limits: ''
                          allow_ips: null
                          used_quota: 0
                          group: ''
                          cross_group_retry: false
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl "https://api.runbridge.ai/api/token/?p=1&page_size=20" \
              -H "Authorization: your-access-token"
components:
  schemas:
    ApiKey:
      $ref: '#/components/schemas/ApiKeyObject'
    ApiKeyObject:
      type: object
      properties:
        id:
          type: integer
          description: >-
            Numeric API key ID. Use this value with the get, update, and delete
            endpoints.
          example: 1234
        user_id:
          type: integer
          description: Account user ID that owns the key.
          example: 5678
        key:
          type: string
          description: >-
            API key value returned by the management API. Treat it as a secret
            and use it as `Authorization: Bearer $RUNBRIDGE_API_KEY` for model
            requests.
          example: $RUNBRIDGE_API_KEY
        status:
          type: integer
          description: >-
            Operational status for the key. `1` means enabled, `2` disabled, `3`
            expired, and `4` exhausted. Only enabled keys are accepted by model
            endpoints.
          enum:
            - 1
            - 2
            - 3
            - 4
          example: 1
        name:
          type: string
          description: User-readable display name for the API key.
          example: production
          maxLength: 50
        created_time:
          type: integer
          description: Unix timestamp in seconds when the key was created.
          example: 1766102400
        accessed_time:
          type: integer
          description: >-
            Unix timestamp in seconds when the key was last used. Newly created
            keys may show the creation time until first use.
          example: 1766102400
        expired_time:
          type: integer
          description: >-
            Unix timestamp in seconds when the key expires. `-1` means no
            expiration.
          example: -1
        remain_quota:
          type: integer
          description: >-
            Remaining quota for this key in RunBridge AI internal quota units.
            When this reaches `0` and `unlimited_quota` is `false`, model
            requests are rejected as quota exhausted.
          example: 100000
        unlimited_quota:
          type: boolean
          description: Whether the key bypasses remaining-quota checks.
          example: false
        model_limits_enabled:
          type: boolean
          description: >-
            Whether model restrictions are active for this key. When `false`,
            `model_limits` is ignored.
          example: false
        model_limits:
          type: string
          description: >-
            Comma-separated model IDs allowed by this key when
            `model_limits_enabled` is `true`. Empty means no configured model
            list.
          example: ''
        allow_ips:
          type:
            - string
            - 'null'
          description: >-
            Optional IP allowlist stored as one newline-separated string. Each
            entry can be a single IPv4 address, single IPv6 address, IPv4 CIDR,
            or IPv6 CIDR. Example:
            `198.51.100.10\n203.0.113.0/24\n2001:db8::/32`. `null` or `""` means
            IP restrictions are disabled.
          example: |-
            198.51.100.10
            203.0.113.0/24
            2001:db8::/32
        used_quota:
          type: integer
          description: >-
            Quota already consumed by this key in RunBridge AI internal quota
            units.
          example: 0
        group:
          type: string
          description: >-
            Account group restriction for this key. Empty means no explicit
            group restriction.
          example: ''
        cross_group_retry:
          type: boolean
          description: >-
            Whether cross-group retry is enabled for automatic group routing.
            This is only meaningful when the key uses an auto-routed group such
            as `auto`.
          example: false
      additionalProperties: true
  securitySchemes:
    accessTokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Personal access token copied from RunBridge AI Console > Personal
        Settings. Send the raw token value; do not prefix it with `Bearer`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.