List capabilities
curl --request GET \
--url https://api.pramaan.dev/v1/capabilities \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pramaan.dev/v1/capabilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pramaan.dev/v1/capabilities"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"results": [
{
"id": "<string>",
"description": "<string>",
"effect_class": "<string>",
"mode": "sync",
"price_estimate_micro": 123,
"available": true,
"needs_connection": true,
"requires_approval": true,
"result_once": true,
"price_ceiling_micro": 123,
"kind": "superpower",
"example": "<unknown>",
"request_schema": {},
"result_schema": {}
}
],
"near_misses": [
{
"id": "<string>",
"description": "<string>",
"matched": [
"<string>"
],
"missed": [
"<string>"
],
"kind": "<string>"
}
],
"hint": "<string>",
"next_cursor": "<string>"
}{
"error": {
"code": "addendum_required",
"message": "<string>",
"next": "<string>",
"request_id": "<string>",
"retryable": true,
"effect": "none",
"slot": "<string>",
"required_micro": 123,
"reason": "balance",
"plan": "<string>",
"needs": [
{
"kind": "approval",
"detail": "<string>",
"step": "<string>"
}
]
}
}platform
List capabilities
GET
/
v1
/
capabilities
List capabilities
curl --request GET \
--url https://api.pramaan.dev/v1/capabilities \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pramaan.dev/v1/capabilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pramaan.dev/v1/capabilities"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"results": [
{
"id": "<string>",
"description": "<string>",
"effect_class": "<string>",
"mode": "sync",
"price_estimate_micro": 123,
"available": true,
"needs_connection": true,
"requires_approval": true,
"result_once": true,
"price_ceiling_micro": 123,
"kind": "superpower",
"example": "<unknown>",
"request_schema": {},
"result_schema": {}
}
],
"near_misses": [
{
"id": "<string>",
"description": "<string>",
"matched": [
"<string>"
],
"missed": [
"<string>"
],
"kind": "<string>"
}
],
"hint": "<string>",
"next_cursor": "<string>"
}{
"error": {
"code": "addendum_required",
"message": "<string>",
"next": "<string>",
"request_id": "<string>",
"retryable": true,
"effect": "none",
"slot": "<string>",
"required_micro": 123,
"reason": "balance",
"plan": "<string>",
"needs": [
{
"kind": "approval",
"detail": "<string>",
"step": "<string>"
}
]
}
}Authorizations
API key: sk_live_…
Query Parameters
Search ids and descriptions, best matches first (the same ranking as MCP discovery). Rows that match nothing are left out.
Search missions and superpowers together; a matching mission leads its steps. Combined lists return at most 200 rows per page.
Available options:
true, false true adds example, request_schema and result_schema to every row, as GET /v1/capabilities/{id} returns them, and answers in pages of at most 200 rows. Default false.
Available options:
true, false Only ids under this first word, e.g. web for web.search and web.read.
With schemas=true or include_missions=true: pass next_cursor from the previous page.