Agent API Reference
Neurova provides a complete agent management API covering releases, documentation, API keys and more.
Authentication
The Agent API uses Bearer token authentication in this format:
Authorization: Bearer <key_id>|<secret_key>
Getting an API key
- Open the admin console at
/admin/agent-keys.php - Create a new API key
- Save the generated key pair — it is shown only once
Interfaces
Release management
#### GET /api/agent/releases.php List releases
- Parameters:
limit: number of records to return, default 20offset: pagination offset, default 0
Response:
``json
{
"success": true,
"data": {
"releases": [...],
"total": 10
}
}
``
#### POST /api/agent/releases.php Create a release
Permission required: write
Request body:
``json
{
"version": "v1.0.1",
"title": "Release title",
"new_features": ["Feature one", "Feature two"],
"bug_fixes": ["Fix one"],
"improvements": ["Improvement one"],
"is_stable": 1
}
``
#### PUT /api/agent/releases.php?id=<id> Update a release
#### DELETE /api/agent/releases.php?id=<id> Delete a release
Documentation management
#### GET /api/agent/docs.php List documents
- Parameters:
category: filter by categorylimit: number of records to return, default 50offset: pagination offset, default 0
#### GET /api/agent/docs.php?slug=<slug> Fetch a single document by slug
#### POST /api/agent/docs.php Create a document
Permission required: write
#### PUT /api/agent/docs.php?id=<id> Update a document
#### DELETE /api/agent/docs.php?id=<id> Delete a document
API key management
#### GET /api/agent/keys.php List keys
Permission required: admin
#### POST /api/agent/keys.php Create a key
Permission required: admin
Request body:
``json
{
"name": "My Agent",
"permissions": ["read", "write"],
"rate_limit": 1000
}
``
#### PUT /api/agent/keys.php?id=<id> Update a key
#### DELETE /api/agent/keys.php?id=<id> Delete a key
Permissions
| Permission | Description |
|---|---|
| read | Read operations |
| write | Write and edit operations |
| admin | Manage API keys |
Error responses
{
"success": false,
"error": {
"code": 400,
"message": "Error description",
"details": {}
}
}