---
title: "Update User Ai Keys"
method: PUT
path: "/api/users/me/ai-keys"
tags: ["User AI Settings"]
---

# Update User Ai Keys

`PUT /api/users/me/ai-keys`

## Request

- Base URL: `https://api.agentstack.tech` (the document declares no server; this is the origin it was published from)
- URL: `https://api.agentstack.tech/api/users/me/ai-keys`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Обновить AI API ключи пользователя

Philosophy v0.2.55: User control over API keys

Body:
{
    "openai": "sk-...",
    "anthropic": "sk-ant-...",
    "gemini": "..."
}

Keys are stored in user.protected.keys.api.service_keys
Empty string removes the key

Returns:
    {
        "success": true,
        "message": "AI keys updated",
        "updated_providers": ["openai", "gemini"]
    }

## Headers

- `Idempotency-Key` string

## Request body

- object: AI provider API keys

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/agentstack/apis/agentstack-core-api.md) · [All operations](https://skmtc.dev/agentstack/apis/agentstack-core-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentstack/apis/agentstack-core-api/revisions/79f4a4dd8813?raw)
