---
title: "Migrate skill versions from one Anthropic account to another"
method: POST
path: "/api/v1/claude/skills/migrate"
tags: ["claude", "claude"]
---

# Migrate skill versions from one Anthropic account to another

`POST /api/v1/claude/skills/migrate`

Copy one or more skill versions from a **source** Anthropic workspace into a
**destination** workspace. Useful when you need to move custom skills off
an account that is being deleted.

**Flow** (per `{skill_id, version}` entry):
1. `GET /v1/skills/{skill_id}/versions/{version}/content` using `old_api_key`
   → downloads a `.zip` archive containing `SKILL.md` and any extras.
2. The archive is parsed and the files (including `SKILL.md`) are
   re-uploaded to the destination account using `new_api_key`. Anthropic
   assigns a fresh `skill_id` in the new workspace.

**Request body** (JSON):
```
{
  "skills": [
    {"skill_id": "skill_017c48…", "version": "1759178010641129"},
    {"skill_id": "skill_01a7nM…", "version": "1761000123456789"}
  ],
  "old_api_key": "sk-ant-…",
  "new_api_key": "sk-ant-…"
}
```

`oldApiKey` / `newApiKey` (camelCase) are also accepted as aliases.

Existing endpoints (`/claude/skills`, `/claude/skills/upload`, etc.) are
unaffected and continue to use the server-configured API key.

## Request body

- MigrateSkillsRequest — Migrate a list of skill versions from an *old* Anthropic account into a *new* one. The API keys are supplied per-request — neither value is read from server config or environment variables.
  - `skills` SkillVersionRef[], required — List of `{skill_id, version}` pairs to download + re-upload.
    - `skill_id` string, required — Source skill ID, e.g. 'skill_017c48zr…'.
    - `version` string, required — Source version identifier (Unix-epoch string).
  - `oldApiKey` string, required — Anthropic API key for the source workspace (used to download).
  - `newApiKey` string, required — Anthropic API key for the destination workspace (used to upload).

## Response `200`

Successful Response

- MigrateSkillsResponse
  - `total` integer, required
  - `succeeded` integer, required
  - `failed` integer, required
  - `results` MigrateSkillResult[], required
    - `old_skill_id` string, nullable
    - `version` string, nullable
    - `new_skill_id` string, nullable
    - `new_latest_version` string, nullable
    - `display_title` string, nullable
    - `success` boolean, required
    - `error` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/brandbooster/apis/fastapi.md) · [All operations](https://skmtc.dev/brandbooster/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/brandbooster/fastapi/revisions/624917d53409/schema)
