---
title: "Update API key"
method: PATCH
path: "/v1/api-keys/{id}"
tags: ["api-keys"]
---

# Update API key

`PATCH /v1/api-keys/{id}`

## Request

- Base URL: `https://lpad-backend.stage.defi.ovh.gala.com`
- URL: `https://lpad-backend.stage.defi.ovh.gala.com/v1/api-keys/{id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/gala/apis/launchpad-backend-api/docs/v1/api-keys/:id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update API key metadata and permissions

## Response `200`

Serialized API key model returned by the current controller implementation.

- object
  - `error` false, required: Successful response marker.
  - `message` string, required: Response message.
  - `status` number, required: HTTP status code.
  - `data` ApiKeyModelResponseDto, required
    - `createdAt` string, date-time, required
    - `delegateAllTokens` boolean, required
    - `deletedAt` string, date-time, nullable, required
    - `description` string, nullable, required
    - `expiresAt` string, date-time, nullable, required
    - `id` number, required
    - `keyHash` string, required: Stored SHA-256 hash from the API key model.
    - `keyPrefix` string, required: Short key prefix for identification.
    - `lastUsedAt` string, date-time, nullable, required
    - `role` 'MODERATOR' | 'TECHNICAL_PRODUCER' | 'MANAGER' | 'OWNER', required
    - `sourceType` 'OWNER' | 'MODERATOR', required
    - `tokenDelegations` ApiKeyDelegationResponseDto[], required
      - `apiKeyId` number
      - `createdAt` string, date-time
      - `id` number, required
      - `permissions` string[], nullable
      - `tokenName` string, required
    - `updatedAt` string, date-time, required
    - `userAddress` string, required: Owner address from the API key model.

## Other responses

- `400`: Bad request - role is invalid, expiresAt not valid ISO 8601, or token names not found
- `401`: Unauthorized - missing or invalid JWT or API key
- `403`: Forbidden - user is not the API key owner
- `404`: API key not found - id parameter does not match any existing key
- `500`: Internal server error - failed to update API key in database
- `default`: Shared error envelope returned by the application exception filter.

---

[API](https://skmtc.dev/gala/apis/launchpad-backend-api.md) - [All operations](https://skmtc.dev/gala/apis/launchpad-backend-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gala/apis/launchpad-backend-api/revisions/74545971be2b?raw)
