---
title: "Upload Custom Skill"
method: POST
path: "/api/agents/{agent_id}/skills/upload"
tags: ["agents"]
---

# Upload Custom Skill

`POST /api/agents/{agent_id}/skills/upload`

## Request

- Base URL: `https://api.maritime.sh` (the document declares no server; this is the origin it was published from)
- URL: `https://api.maritime.sh/api/agents/{agent_id}/skills/upload`
- Auth: HTTP bearer

Install a CUSTOM skill from an uploaded archive, then run the same
just-works pipeline as /skills/install (env apply, binary auto-resolve,
final-state report). The reseller path: an end-user drags a skill folder
into the partner's UI and it lands running on their agent.

## Path parameters

- `agent_id` string, required

## Request body

- SkillUploadBody
  - `archiveBase64` string, required
  - `name` string, nullable
  - `env` object, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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