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

# Update API key

`PUT /api-keys/{id}`

Partially updates one of the authenticated customer's API keys by numeric ID. Omitted fields leave the stored value unchanged. Use the id from GET /api-keys.

## Path parameters

- `id` integer, required

## Request body

- ApiKeyUpdateRequest
  - `allowed_domains` string[], nullable — Replace allowed domains list. Omit to keep current value.
  - `name` string, nullable — Update friendly name. Omit to keep current value.
  - `active` boolean, nullable — Activate or deactivate the key. Omit to keep current value.

## Response `200`

API key updated

- ApiKeyResponse
  - `id` integer, required — Internal key ID (for filtering /usage).
  - `name` string, nullable, required — Friendly name.
  - `active` boolean, required — Whether the key is active.
  - `allowed_domains` string[], required — Allowed domains.
  - `routing_strategy` 'economy' | 'performance', required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Bad request (invalid domains or non-numeric id)
- `401` — Unauthorized
- `404` — API key not found
- `500` — Internal server error

---

[API](https://skmtc.net/routemesh/apis/routemesh-api.md) · [All operations](https://skmtc.net/routemesh/apis/routemesh-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/routemesh/routemesh-api/versions/6590c9d7229d/schema)
