# List API keys

Retrieves a paginated list of API keys for the specified account. This endpoint requires an account-level API key.

Endpoint: POST /api-keys/list
Version: 2.0.0
Security: bearerAuth

## Request fields (application/json):

  - `pagination` (object)
    Pagination details.

  - `pagination.page_size` (integer, required)
    Number of items returned in this response.
    Example: 20

  - `pagination.next_page_token` (string)
    Token to retrieve the next page of results. It is empty on the last page.
    Example: "eyJMYXN0SUQiOiIxYTYyYjQ0Ni01ZDM0LTRiYTQtOGRlZS02NTM5NTU0NjY2MTQifQ=="

## Response 200 fields (application/json):

  - `items` (array)
    List of API keys for the current page.

  - `items.id` (string, required)
    Unique API key identifier.
    Example: "akey_163f12ss514120a58gt851c5d338d072"

  - `items.name` (string, required)
    API key name.
    Example: "Production API Key"

  - `items.description` (string)
    API key description.
    Example: "Used for production environment"

  - `items.rotate_at` (string)
    Date and time of the secret rotation.
    Example: "2024-01-01T10:00:00.000000Z"

  - `items.channel_ids` (array)
    Channel IDs that the API key has access to.
    Example: ["chn_01ARZ3NDEKTSV4RRFFQ69G5FAV","chn_01KTXHKMEXBM5JMEQAHBCV6802"]

  - `items.permissions` (array, required)
    Permissions granted to the API key.
    Example: ["payment:create","payment:read"]

  - `items.created_at` (string, required)
    Date and time of API key creation.
    Example: "2024-01-01T10:00:00.000000Z"

  - `items.updated_at` (string, required)
    Date and time of the last API key update.
    Example: "2024-01-02T15:00:00.000000Z"

  - `pagination` (object)
    Pagination details.

  - `pagination.page_size` (integer, required)
    Number of items returned in this response.
    Example: 20

  - `pagination.next_page_token` (string)
    Token to retrieve the next page of results. It is empty on the last page.
    Example: "eyJMYXN0SUQiOiIxYTYyYjQ0Ni01ZDM0LTRiYTQtOGRlZS02NTM5NTU0NjY2MTQifQ=="

## Response 400 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "VALIDATION"

  - `message` (string, required)
    Message describing the error.
    Example: "One or more fields failed validation due to constraints"

  - `context` (object, required)
    Additional context about the validation error, including specific constraints.
    Example: {"constraints":{"email":{"type":"TYPE","message":"The 'email' field must be a valid email address"},"age":{"type":"MIN","message":"The 'age' field must be a number greater than or equal to 18"}}}

  - `context.constraints` (object, required)
    Failed constraints keyed by the field name.
    Example: {"email":{"type":"TYPE","message":"The 'email' field must be a valid email address"},"age":{"type":"MIN","message":"The 'age' field must be a number greater than or equal to 18"}}

## Response 401 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "UNAUTHENTICATED"

  - `message` (string, required)
    Message describing the error.
    Example: "Credentials are invalid or missing"

## Response 403 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "PERMISSION_DENIED"

  - `message` (string, required)
    Message describing the error.
    Example: "Permission denied"


