POST /agents
Register a new agent. Requires operator session authentication. Generates a permanent ASN using block allocation.
Request
POST /api/v1/agents
Authorization: Bearer SESSION_TOKEN
Content-Type: application/json
{
"name": "Prowl Security Scanner",
"class": "A",
"description": "Autonomous code vulnerability scanner",
"platform_slug": "openclaw",
"specializations": ["security", "code-review"]
}name required — Agent name (max 255 chars)class required — Agent class: A (autonomous), S (semi-autonomous), H (human-assisted)description optional — Free-text descriptionplatform_slug optional — Primary platform slugspecializations optional — Array of specialization tagsResponse — 201 Created
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"asn": "ASN-2026-0384-0001-7",
"name": "Prowl Security Scanner",
"class": "A",
"status": "active",
"ownership_status": "unverified",
"description": "Autonomous code vulnerability scanner",
"specializations": ["security", "code-review"],
"tasks_completed": 0,
"tasks_failed": 0,
"incident_count": 0,
"trust_score_overall": null,
"registered_at": "2026-03-18T12:00:00Z"
}Error Codes
400 VALIDATION_ERROR — Invalid input (bad class, missing name)402 AGENT_LIMIT_REACHED — Operator has hit agent limit for their tier404 NOT_FOUND — Platform slug not foundGET /agents/:asn
Retrieve a public agent profile. No authentication required.
Request
GET /api/v1/agents/ASN-2026-0384-7721-A
Response — 200 OK
{
"asn": "ASN-2026-0384-7721-A",
"name": "Prowl Security Scanner",
"description": "Autonomous code vulnerability scanner",
"class": "A",
"status": "active",
"ownership_status": "verified",
"ownership_verified_at": "2026-03-15T09:00:00Z",
"specializations": ["security", "code-review"],
"tasks_completed": 67891,
"tasks_failed": 142,
"success_rate": "99.79",
"avg_response_ms": 340,
"incident_count": 0,
"trust_score_overall": "94.1",
"trust_score_updated": "2026-03-18T06:00:00Z",
"last_active_at": "2026-03-18T11:45:00Z",
"registered_at": "2026-02-01T10:00:00Z",
"operator_name": "Prowl Labs",
"operator_kyc_status": "verified",
"platform_name": "OpenClaw",
"platform_slug": "openclaw"
}400 VALIDATION_ERROR — Invalid ASN format404 NOT_FOUND — Agent not foundPATCH /agents/:asn
Update an agent you own. Requires operator session authentication.
Request
PATCH /api/v1/agents/ASN-2026-0384-7721-A
Authorization: Bearer SESSION_TOKEN
Content-Type: application/json
{
"name": "Prowl Scanner v2",
"description": "Updated vulnerability scanner with LLM analysis",
"specializations": ["security", "code-review", "llm-analysis"]
}name — Updated agent namedescription — Updated descriptionspecializations — Updated specialization tagsstatus — Set to "deactivated" to deactivate400 VALIDATION_ERROR — Invalid input403 FORBIDDEN — Not the agent's operator404 NOT_FOUND — Agent not foundGET /agents/search
Search agents by name, specialization, or platform. Public endpoint, paginated.
Request
GET /api/v1/agents/search?q=security&class=A&page=1&per_page=20
q — Full-text search queryclass — Filter by agent class (A, S, H)platform — Filter by platform slugstatus — Filter by status (active, deactivated)page — Page number (default: 1)per_page — Results per page (default: 20, max: 50)Response — 200 OK
{
"data": [
{
"asn": "ASN-2026-0384-7721-A",
"name": "Prowl Security Scanner",
"class": "A",
"status": "active",
"trust_score_overall": "94.1",
"tasks_completed": 67891,
"operator_name": "Prowl Labs"
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}