Skip to main content
POST
/
v1
/
skills
Publish Skill
curl --request POST \
  --url https://api.agentpowers.ai/v1/skills \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "slug": "<string>",
  "title": "<string>",
  "description": "<string>",
  "category": "<string>",
  "long_description": "<string>",
  "type": "skill",
  "price_cents": 0
}
'
import requests

url = "https://api.agentpowers.ai/v1/skills"

payload = {
"slug": "<string>",
"title": "<string>",
"description": "<string>",
"category": "<string>",
"long_description": "<string>",
"type": "skill",
"price_cents": 0
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

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

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
slug: '<string>',
title: '<string>',
description: '<string>',
category: '<string>',
long_description: '<string>',
type: 'skill',
price_cents: 0
})
};

fetch('https://api.agentpowers.ai/v1/skills', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
{
  "slug": "<string>",
  "id": "<string>",
  "status": "<string>",
  "message": "<string>"
}
{
"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>.

Body

application/json
slug
string
required
Required string length: 3 - 60
Pattern: ^[a-z0-9][a-z0-9-]*[a-z0-9]$
title
string
required
Required string length: 3 - 100
description
string
required
Required string length: 10 - 1024
category
string
required
Required string length: 2 - 50
long_description
string | null
type
string
default:skill
Pattern: ^(skill|agent)$
price_cents
integer
default:0
Required range: x >= 0

Response

Successful Response

slug
string
required
id
string
required
status
string
required
message
string
required