Record Installation
curl --request POST \
--url https://api.agentpowers.ai/v1/installations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_slug": "<string>",
"hostname": "<string>",
"platform": "<string>",
"source": "agentpowers"
}
'import requests
url = "https://api.agentpowers.ai/v1/installations"
payload = {
"source_slug": "<string>",
"hostname": "<string>",
"platform": "<string>",
"source": "agentpowers"
}
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({
source_slug: '<string>',
hostname: '<string>',
platform: '<string>',
source: 'agentpowers'
})
};
fetch('https://api.agentpowers.ai/v1/installations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"source_slug": "<string>",
"hostname": "<string>",
"platform": "<string>",
"source": "<string>",
"message": "Installation recorded"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}installations
Record Installation
Record a skill installation for abuse tracking.
- Authenticated + agentpowers: full record with skill_id + purchase_id
- Authenticated + external: record with skill_id = NULL
- Unauthenticated + external: silent no-op (200, not tracked)
- Unauthenticated + agentpowers: record anonymously (no user_id)
POST
/
v1
/
installations
Record Installation
curl --request POST \
--url https://api.agentpowers.ai/v1/installations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_slug": "<string>",
"hostname": "<string>",
"platform": "<string>",
"source": "agentpowers"
}
'import requests
url = "https://api.agentpowers.ai/v1/installations"
payload = {
"source_slug": "<string>",
"hostname": "<string>",
"platform": "<string>",
"source": "agentpowers"
}
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({
source_slug: '<string>',
hostname: '<string>',
platform: '<string>',
source: 'agentpowers'
})
};
fetch('https://api.agentpowers.ai/v1/installations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"source_slug": "<string>",
"hostname": "<string>",
"platform": "<string>",
"source": "<string>",
"message": "Installation recorded"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Provide a Clerk JWT or a long-lived CLI token (prefix ap_cli_). Pass as Authorization: Bearer <token>.
Body
application/json
Was this page helpful?