---
title: "Upload a single skill from a pre-built .zip"
method: POST
path: "/api/v1/claude/skills/upload-zip"
tags: ["claude"]
---

# Upload a single skill from a pre-built .zip

`POST /api/v1/claude/skills/upload-zip`

## Request

- Base URL: `https://api.brandbooster.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brandbooster.ai/api/v1/claude/skills/upload-zip`
- Auth: none declared

Upload a single skill from a pre-built `.zip`, e.g. built with:

```
zip -r quickads-storyboard-generate.zip quickads-storyboard-generate/
```

The archive must contain exactly one skill folder with a `SKILL.md` at its
root. It is unpacked server-side and its files are sent to the Anthropic
Skills API as `files[]` (the API does not accept a raw zip). For a zip
holding many skills, use `/claude/skills/upload-all` instead.

Returns the Anthropic skill object including `id` and `latest_version`.

## Request body `multipart/form-data`

- BodyUploadSkillZipApiV1ClaudeSkillsUploadZipPost
  - `file` string, binary, required: A .zip containing one skill folder with SKILL.md at its root (e.g. quickads-storyboard-generate/SKILL.md).
  - `display_title` string, nullable: Optional display title. Defaults to the 'name' in SKILL.md frontmatter.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/brandbooster/apis/brandbooster-api.md) - [All operations](https://skmtc.dev/brandbooster/apis/brandbooster-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brandbooster/apis/brandbooster-api/revisions/f84fc05f417b?raw)
