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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/cosigners-beta/pair-api-key",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Pair API key

> Pair an API key to a cosigner
Endpoint Permission: Admin and Non-Signing Admin.



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml put /cosigners/{cosignerId}/api_keys/{apiKeyId}
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /cosigners/{cosignerId}/api_keys/{apiKeyId}:
    put:
      tags:
        - Cosigners (Beta)
      summary: Pair API key
      description: |-
        Pair an API key to a cosigner
        Endpoint Permission: Admin and Non-Signing Admin.
      operationId: pairApiKey
      parameters:
        - name: cosignerId
          required: true
          in: path
          description: The unique identifier of the cosigner
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          schema:
            type: string
            format: uuid
        - name: apiKeyId
          required: true
          in: path
          description: The unique identifier of the API key
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          schema:
            type: string
        - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PairApiKeyRequest'
      responses:
        '202':
          description: The API key object to be paired
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            Location:
              $ref: '#/components/headers/Location'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PairApiKeyResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response: Promise<FireblocksResponse<PairApiKeyResponse>> =
            fireblocks.cosignersBeta.pairApiKey(cosignersBetaApiPairApiKeyRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<PairApiKeyResponse>> response =
            fireblocks.cosignersBeta().pairApiKey(pairApiKeyRequest, cosignerId,
            apiKeyId, idempotencyKey);
        - lang: Python
          source: >-
            response =
            fireblocks.cosigners_beta.pair_api_key(pair_api_key_request,
            cosigner_id, api_key_id, idempotency_key);
components:
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: >-
        A unique identifier for the request. If the request is sent multiple
        times with the same idempotency key, the server will return the same
        response as the first request. The idempotency key is valid for 24
        hours.
      required: false
      schema:
        type: string
  schemas:
    PairApiKeyRequest:
      type: object
      properties:
        callbackHandler:
          $ref: '#/components/schemas/CallbackHandlerRequest'
    PairApiKeyResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the API key
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          format: uuid
        callbackHandler:
          $ref: '#/components/schemas/CallbackHandlerRequest'
      required:
        - id
    CallbackHandlerRequest:
      type: object
      properties:
        url:
          type: string
          description: The callback handler's URL
          example: https://example.com/callback-handler
        publicKey:
          type: string
          description: The callback handler's public key
          example: |-
            -----BEGIN PUBLIC KEY-----
            ... truncated ...-----END PUBLIC KEY-----
        cert:
          type: string
          description: The callback handler's certificate
          example: |-
            -----BEGIN CERTIFICATE-----
            ... truncated ...
            -----END CERTIFICATE-----
      required:
        - url
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
  headers:
    X-Request-ID:
      schema:
        type: string
      description: >-
        Unique ID correlated to the API request. Please provide it in any
        support ticket you create or on Github issues related to Fireblocks SDKs
    Location:
      schema:
        type: string
      description: The location URL of the request status
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'

````