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

# List all API key pairs

> List all API key pairs.

This endpoint requires the `api-key-pairs.read` scope.


## OpenAPI

````yaml openapi.speakeasy.json GET /api-key-pairs
openapi: 3.1.0
info:
  title: Gr4vy
  description: The Gr4vy API.
  version: 1.0.0
servers:
  - url: https://api.sandbox.{id}.gr4vy.app
    x-speakeasy-server-id: sandbox
    variables:
      id:
        default: example
        description: The subdomain for your Gr4vy instance.
  - url: https://api.{id}.gr4vy.app
    x-speakeasy-server-id: production
    variables:
      id:
        default: example
        description: The subdomain for your Gr4vy instance.
security:
  - bearerAuth: []
tags:
  - name: 3DS scenarios
    description: Manage and create 3DS scenarios in sandbox.
  - name: Account updater
    description: Schedule stored cards for an account update.
  - name: API key pairs
    description: Manage API key pairs.
  - name: Audit logs
    description: Query user activity.
  - name: Buyers
    description: Manage buyers.
  - name: Buyers - Gift cards
    description: Query gift cards for buyers.
  - name: Buyers - Payment methods
    description: Query payment methods for buyers.
  - name: Buyers - Shipping details
    description: Manage shipping details for buyers.
  - name: Card details
    description: Returns information about a card.
  - name: Card scheme definitions
    description: List definitions for card schemes.
  - name: Checkout sessions
    description: Manage checkout sessions.
  - name: Digital wallets - Sessions
    description: Create sessions for digital wallets like Apple Pay and Google Pay.
  - name: Digital wallets - Setup
    description: Manage digital wallets like Apple Pay and Google Pay.
  - name: Gift cards
    description: Manage stored gift cards.
  - name: Insights
    description: Retrieve Insights data.
  - name: Insights - Presets
    description: Manage presets for Insights.
  - name: Merchant accounts
    description: Manage merchant accounts in an instance.
  - name: Merchant accounts - 3DS configuration
    description: Manage 3DS profiles for merchant accounts.
  - name: Monitoring
    description: Manage monitoring and alerting.
  - name: Payment links
    description: Manage payment links.
  - name: Payment methods
    description: Manage stored payment methods.
  - name: Payment methods - Definitions
    description: Manage payment method definitions.
  - name: Payment methods - Network tokens
    description: Manage network tokens for stored payment methods.
  - name: Payment methods - Payment service tokens
    description: Manage payment service tokens for stored payment methods.
  - name: Payment options
    description: Fetch a list of payment options to display at checkout.
  - name: Payment service definitions
    description: Fetch info about the definition of each payment service.
  - name: Payment services
    description: Manage configured payment services.
  - name: Payouts
    description: Payout API.
  - name: Refunds
    description: Manage transaction refunds.
  - name: Reports
    description: Manage one-off and scheduled reports.
  - name: Reports - Executions
    description: Manage executions of reports.
  - name: Transactions
    description: Manage transaction.
  - name: Transactions - Actions
    description: Read Flow actions triggered for a transaction.
  - name: Transactions - Captures
    description: Read transaction capture data.
  - name: Transactions - Chargebacks
    description: Read transaction chargeback data.
  - name: Transactions - Chargeback reversals
    description: Read transaction chargeback reversal data.
  - name: Transactions - Settlements
    description: Read transaction settlement data.
  - name: Transactions - Sessions
    description: Manage transaction session data.
  - name: Webhook subscriptions
    description: Manage webhook subscriptions.
paths:
  /api-key-pairs:
    get:
      tags:
        - API key pairs
      summary: List all API key pairs
      description: List all API key pairs.
      operationId: list_api_key_pairs
      parameters:
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: A pointer to the page of results to return.
            examples:
              - ZXhhbXBsZTE
            title: Cursor
          description: A pointer to the page of results to return.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: The maximum number of items that are returned.
            examples:
              - 20
            default: 20
            title: Limit
          description: The maximum number of items that are returned.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection_APIKeyPair_'
        '400':
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: The request was unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: >-
            The credentials were invalid or the caller did not have permission
            to act on the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '405':
          description: The request method was not allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error405'
        '409':
          description: A duplicate record was found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error409'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '425':
          description: The request was too early.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error425'
        '429':
          description: Too many requests were made.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error429'
        '500':
          description: The server encountered an error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        '502':
          description: The server encountered an error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error502'
        '504':
          description: The server encountered an error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error504'
      x-codeSamples:
        - lang: php
          label: PHP
          source: |-
            declare(strict_types=1);

            require 'vendor/autoload.php';

            use Gr4vy;

            $sdk = Gr4vy\SDK::builder()
                ->setId('example')
                ->setServer('sandbox')
                ->setSecuritySource(Auth::withToken($privateKey))
                ->setMerchantAccountId('default')
                ->build();



            $responses = $sdk->apiKeyPairs->list(
                limit: 20
            );


            foreach ($responses as $response) {
                if ($response->statusCode === 200) {
                    // handle response
                }
            }
        - lang: java
          label: Java
          source: |-
            package hello.world;

            import com.gr4vy.sdk.Gr4vy;
            import com.gr4vy.sdk.models.errors.*;
            import com.gr4vy.sdk.models.operations.ListApiKeyPairsResponse;
            import java.lang.Exception;

            public class Application {

                public static void main(String[] args) throws Exception {

                    Gr4vy sdk = Gr4vy.builder()
                            .id("example")
                            .server(AvailableServers.SANDBOX)
                            .merchantAccountId("default")
                            .securitySource(new BearerSecuritySource.Builder(privateKey).build())
                        .build();


                    sdk.apiKeyPairs().list()
                            .limit(20L)
                            .callAsStream()
                            .forEach((ListApiKeyPairsResponse item) -> {
                               // handle page
                            });

                }
            }
        - lang: csharp
          label: C#
          source: >-
            using Gr4vy;

            using Gr4vy.Models.Components;

            using Gr4vy.Models.Requests;


            var sdk = new Gr4vySDK(
                id: "example",
                server: SDKConfig.Server.Sandbox,
                bearerAuthSource: Auth.WithToken(privateKey),
                merchantAccountId: "default"
            );


            ListApiKeyPairsResponse? res = await
            sdk.ApiKeyPairs.ListAsync(limit: 20);


            while(res != null)

            {
                // handle items

                res = await res.Next!();
            }
        - lang: javascript
          label: TypeScript
          source: |-
            import { Gr4vy, withToken } from "@gr4vy/sdk";
            import fs from "fs";

            const gr4vy = new Gr4vy({
                id: "example",
                server: "sandbox",
                merchantAccountId: "default",
                bearerAuth: withToken({
                  privateKey: fs.readFileSync("private_key.pem", "utf8"),
                }),
            });

            async function run() {
              const result = await gr4vy.apiKeyPairs.list();

              for await (const page of result) {
                console.log(page);
              }
            }

            run();
        - lang: python
          label: Python
          source: |-
            from gr4vy import Gr4vy
            import os


            with Gr4vy(
                id="example",
                server="sandbox",
                merchant_account_id="default",
                bearer_auth=auth.with_token(open("./private_key.pem").read())
            ):

                res = g_client.api_key_pairs.list(limit=20)

                while res is not None:
                    # Handle items

                    res = res.next()
        - lang: go
          label: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tgr4vygo \"github.com/gr4vy/gr4vy-go\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := gr4vy.New(\n\t\tgr4vy.WithID(\"example\"),\n\t\tgr4vy.WithServer(gr4vy.ServerSandbox),\n\t\tgr4vy.WithSecuritySource(withToken),\n\t\tgr4vy.WithMerchantAccountID(\"default\"),\n\t)\n\n    res, err := s.APIKeyPairs.List(ctx, nil, gr4vygo.Pointer[int64](20))\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res != nil {\n        for {\n            // handle items\n\n            res, err = res.Next()\n\n            if err != nil {\n                // handle error\n            }\n\n            if res == nil {\n                break\n            }\n        }\n    }\n}"
components:
  schemas:
    Collection_APIKeyPair_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/APIKeyPair'
          type: array
          title: Items
          description: A list of items returned for this request.
        limit:
          type: integer
          maximum: 100
          minimum: 1
          title: Limit
          description: The number of items for this page.
          default: 20
          examples:
            - 20
        next_cursor:
          anyOf:
            - type: string
              maxLength: 1000
              minLength: 1
            - type: 'null'
          title: Next Cursor
          description: The cursor pointing at the next page of items.
          examples:
            - ZXhhbXBsZTE
        previous_cursor:
          anyOf:
            - type: string
              maxLength: 1000
              minLength: 1
            - type: 'null'
          title: Previous Cursor
          description: The cursor pointing at the previous page of items.
          examples:
            - Xkjss7asS
      additionalProperties: false
      type: object
      required:
        - items
      title: Collection[APIKeyPair]
    Error400:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `bad_request`
          default: bad_request
          examples:
            - bad_request
        status:
          type: integer
          title: Status
          description: Always `400`.
          default: 400
          examples:
            - 400
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Generic error
          examples:
            - Request failed validation
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error400
    Error401:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `unauthorized`
          default: unauthorized
          examples:
            - unauthorized
        status:
          type: integer
          title: Status
          description: Always `401`.
          default: 401
          examples:
            - 401
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: No valid API authentication found
          examples:
            - No valid API authentication found
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error401
    Error403:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `forbidden`
          default: forbidden
          examples:
            - forbidden
        status:
          type: integer
          title: Status
          description: Always `403`.
          default: 403
          examples:
            - 403
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Generic error
          examples:
            - Request failed validation
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error403
    Error404:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `not_found`
          default: not_found
          examples:
            - not_found
        status:
          type: integer
          title: Status
          description: Always `404`.
          default: 404
          examples:
            - 404
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: The resource could not be found
          examples:
            - The resource could not be found
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error404
    Error405:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `method_not_allowed`
          default: method_not_allowed
          examples:
            - method_not_allowed
        status:
          type: integer
          title: Status
          description: Always `405`.
          default: 405
          examples:
            - 405
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Method Not Allowed
          examples:
            - Method Not Allowed
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error405
    Error409:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `duplicate_record`
          default: duplicate_record
          examples:
            - duplicate_record
        status:
          type: integer
          title: Status
          description: Always `409`.
          default: 409
          examples:
            - 409
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Generic error
          examples:
            - Request failed validation
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
        resource_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Resource Id
          description: The ID of the conflicting resource.
          examples:
            - cdc70639-cb9c-4222-a73f-b8ce39f7821b
      additionalProperties: false
      type: object
      title: Error409
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Error425:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `too_early`
          default: too_early
          examples:
            - too_early
        status:
          type: integer
          title: Status
          description: Always `425`.
          default: 425
          examples:
            - 425
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Generic error
          examples:
            - Request failed validation
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error425
    Error429:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `too_many_requests`
          default: too_many_requests
          examples:
            - too_many_requests
        status:
          type: integer
          title: Status
          description: Always `429`.
          default: 429
          examples:
            - 429
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Generic error
          examples:
            - Request failed validation
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error429
    Error500:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `server_error`
          default: server_error
          examples:
            - server_error
        status:
          type: integer
          title: Status
          description: Always `500`.
          default: 500
          examples:
            - 500
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Request could not be processed
          examples:
            - Request could not be processed
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error500
    Error502:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `bad_gateway`
          default: bad_gateway
          examples:
            - bad_gateway
        status:
          type: integer
          title: Status
          description: Always `502`.
          default: 502
          examples:
            - 502
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Request could not be processed
          examples:
            - Request could not be processed
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error502
    Error504:
      properties:
        type:
          type: string
          const: error
          title: Type
          description: Always `error`.
          default: error
          examples:
            - error
        code:
          type: string
          title: Code
          description: Always `gateway_timeout`
          default: gateway_timeout
          examples:
            - gateway_timeout
        status:
          type: integer
          title: Status
          default: 504
        message:
          type: string
          title: Message
          description: A human readable message that provides more context to the error.
          default: Request could not be processed
          examples:
            - Request could not be processed
        details:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Details
          description: A list of details that further ellaborate on the error.
          default: []
      additionalProperties: false
      type: object
      title: Error504
    APIKeyPair:
      properties:
        type:
          type: string
          const: api-key-pair
          title: Type
          description: The type of this resource.
          default: api-key-pair
        id:
          type: string
          format: uuid
          title: Id
          description: The ID for the API key pair.
          examples:
            - fe26475d-ec3e-4884-9553-f7356683f7f9
        thumbprint:
          type: string
          title: Thumbprint
          description: The unique thumbprint that identifies the API key pair.
          examples:
            - 6zsbrjs0Cp4M4Ebz8sfHqUKGiG9Sd0lF2sfKp5-w-nk
        display_name:
          type: string
          maxLength: 200
          minLength: 1
          title: Display Name
          description: The display name for the API key pair.
          examples:
            - Production key
        algorithm:
          description: The algorithm used to generate the API key pair.
          examples:
            - ECDSA
          type: string
          enum:
            - ECDSA
            - RSA
          title: CertificateAlgorithm
          x-speakeasy-unknown-values: allow
        active:
          type: boolean
          title: Active
          description: Whether the API key pair is active and can be used to authenticate.
          examples:
            - true
        private_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Private Key
          description: >-
            The PEM-encoded private key. Only returned once, in the response to
            creating the API key pair, and only when Gr4vy generated the key
            pair. Store it securely, as it cannot be retrieved later.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when this API key pair was created.
          examples:
            - '2013-07-16T19:23:00.000+00:00'
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: The date and time when this API key pair was last updated.
          examples:
            - '2013-07-16T19:23:00.000+00:00'
        creator:
          anyOf:
            - $ref: >-
                #/components/schemas/api__routers__api_key_pairs__schemas__Creator
            - type: 'null'
          description: The user or API key pair that created this API key pair.
        merchant_accounts:
          items:
            $ref: '#/components/schemas/MerchantAccountSummary'
          type: array
          title: Merchant Accounts
          description: >-
            The merchant accounts this API key pair has access to. An empty list
            means it has access to all merchant accounts.
        roles:
          items:
            $ref: '#/components/schemas/Role'
          type: array
          title: Roles
          description: The roles assigned to this API key pair.
      additionalProperties: false
      type: object
      required:
        - id
        - thumbprint
        - display_name
        - algorithm
        - active
        - created_at
        - updated_at
      title: APIKeyPair
    ErrorDetail:
      properties:
        location:
          description: >-
            The part of the request where the property can be found that caused
            the error.
          examples:
            - body
          type: string
          enum:
            - query
            - body
            - path
            - header
            - unknown
          title: ErrorLocation
          x-speakeasy-unknown-values: allow
        pointer:
          anyOf:
            - type: string
              format: json-pointer
            - type: string
          title: Pointer
          description: A JSON pointer for the particular property that caused the error.
          examples:
            - /currency
        message:
          type: string
          title: Message
          description: A human-readdable explanation of the error.
          examples:
            - 'Unknown ISO 4217 currency code: USX'
        type:
          type: string
          title: Type
          description: The type of error that was raised for this property.
          examples:
            - value_error
      additionalProperties: false
      type: object
      required:
        - location
        - pointer
        - message
        - type
      title: ErrorDetail
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    api__routers__api_key_pairs__schemas__Creator:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The ID of the user or API key pair that created the API key pair.
          examples:
            - fe26475d-ec3e-4884-9553-f7356683f7f9
        name:
          type: string
          title: Name
          description: The name of the user or API key pair that created the API key pair.
          examples:
            - John Doe
        email_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Email Address
          description: >-
            The email address of the user that created the API key pair, when it
            was created by a dashboard user.
          examples:
            - john.doe@example.com
        thumbprint:
          anyOf:
            - type: string
            - type: 'null'
          title: Thumbprint
          description: >-
            The thumbprint of the API key pair that created the API key pair,
            when it was created by another API key.
          examples:
            - 6zsbrjs0Cp4M4Ebz8sfHqUKGiG9Sd0lF2sfKp5-w-nk
      additionalProperties: false
      type: object
      required:
        - id
        - name
      title: Creator
    MerchantAccountSummary:
      properties:
        type:
          type: string
          const: merchant-account
          title: Type
          default: merchant-account
        id:
          type: string
          title: Id
        display_name:
          type: string
          title: Display Name
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        over_capture_amount:
          anyOf:
            - type: integer
            - type: 'null'
          title: Over Capture Amount
        over_capture_percentage:
          anyOf:
            - type: integer
            - type: 'null'
          title: Over Capture Percentage
      additionalProperties: false
      type: object
      required:
        - id
        - display_name
        - created_at
        - updated_at
      title: MerchantAccountSummary
    Role:
      properties:
        type:
          type: string
          const: role
          title: Type
          default: role
        id:
          type: string
          format: uuid
          title: Id
        name:
          type: string
          title: Name
        description:
          type: string
          title: Description
        permissions:
          $ref: '#/components/schemas/PermissionSet'
      additionalProperties: false
      type: object
      required:
        - id
        - name
        - description
        - permissions
      title: Role
    PermissionSet:
      properties:
        allow:
          items:
            type: string
          type: array
          title: Allow
      additionalProperties: false
      type: object
      required:
        - allow
      title: PermissionSet
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````