Skip to main content
POST
/
v1
/
skills
/
{slug}
/
upload
Upload Skill Package
curl --request POST \
  --url https://api.agentpowers.ai/v1/skills/{slug}/upload \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form 'file=<string>'
import requests

url = "https://api.agentpowers.ai/v1/skills/{slug}/upload"

payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)
const form = new FormData();
form.append('file', '<string>');

const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};

options.body = form;

fetch('https://api.agentpowers.ai/v1/skills/{slug}/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
{
  "slug": "<string>",
  "storage_key": "<string>",
  "message": "Package uploaded"
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}

Authorizations

Authorization
string
header
required

Provide a Clerk JWT or a long-lived CLI token (prefix ap_cli_). Pass as Authorization: Bearer <token>.

Path Parameters

slug
string
required

Query Parameters

version
string | null

Body

multipart/form-data
file
string
required

Response

Successful Response

slug
string
required
storage_key
string
required
message
string
default:Package uploaded