http://localhost:8080/api
Currently, no authentication is required. This is intended for internal development environments.
All API responses return JSON. Success responses include the requested data. Error responses include an error message.
Create a new project.
Request Body:
{
"name": "string (required)",
"description": "string (optional)"
}Response:
{
"id": "uuid",
"name": "string",
"description": "string",
"status": "active",
"created_at": "timestamp",
"updated_at": "timestamp"
}Status Codes:
200 OK- Project created successfully400 Bad Request- Invalid request body500 Internal Server Error- Server error
List all projects.
Response:
[
{
"id": "uuid",
"name": "string",
"description": "string",
"status": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
]Get a specific project.
URL Parameters:
id(uuid) - Project ID
Response:
{
"id": "uuid",
"name": "string",
"description": "string",
"status": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}Status Codes:
200 OK- Project found400 Bad Request- Invalid project ID404 Not Found- Project not found
Register a new agent.
Request Body:
{
"project_id": "uuid (required)",
"name": "string (required)",
"role": "string (optional)",
"team": "string (optional)"
}Response:
{
"id": "uuid",
"project_id": "uuid",
"name": "string",
"role": "string",
"team": "string",
"status": "active",
"last_seen": "timestamp",
"created_at": "timestamp"
}List agents in a project.
Query Parameters:
project_id(uuid, required) - Project ID
Response:
[
{
"id": "uuid",
"project_id": "uuid",
"name": "string",
"role": "string",
"team": "string",
"status": "string",
"last_seen": "timestamp",
"created_at": "timestamp"
}
]Update agent status.
URL Parameters:
id(uuid) - Agent ID
Request Body:
{
"status": "string (required)" // "active", "idle", "offline"
}Response:
{
"id": "uuid",
"project_id": "uuid",
"name": "string",
"role": "string",
"team": "string",
"status": "string",
"last_seen": "timestamp",
"created_at": "timestamp"
}Create a new task.
Request Body:
{
"project_id": "uuid (required)",
"title": "string (required)",
"description": "string (optional)",
"priority": "string (optional)", // "low", "medium", "high"
"created_by": "uuid (required)", // Agent ID
"assigned_to": "uuid (optional)" // Agent ID
}Response:
{
"id": "uuid",
"project_id": "uuid",
"title": "string",
"description": "string",
"status": "pending",
"priority": "string",
"created_by": "uuid",
"assigned_to": "uuid",
"output": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}List tasks in a project.
Query Parameters:
project_id(uuid, required) - Project IDstatus(string, optional) - Filter by statusassigned_to(uuid, optional) - Filter by assigned agent
Response:
[
{
"id": "uuid",
"project_id": "uuid",
"title": "string",
"description": "string",
"status": "string",
"priority": "string",
"created_by": "uuid",
"assigned_to": "uuid",
"output": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
]Get a specific task.
URL Parameters:
id(uuid) - Task ID
Response:
{
"id": "uuid",
"project_id": "uuid",
"title": "string",
"description": "string",
"status": "string",
"priority": "string",
"created_by": "uuid",
"assigned_to": "uuid",
"output": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}Update a task.
URL Parameters:
id(uuid) - Task ID
Request Body:
{
"status": "string (required)", // "pending", "in_progress", "blocked", "done", "cancelled"
"output": "string (optional)" // Result or notes
}Response:
{
"id": "uuid",
"project_id": "uuid",
"title": "string",
"description": "string",
"status": "string",
"priority": "string",
"created_by": "uuid",
"assigned_to": "uuid",
"output": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}Add documentation.
Request Body:
{
"project_id": "uuid (required)",
"agent_id": "uuid (required)",
"task_id": "uuid (optional)",
"title": "string (required)",
"content": "string (optional)", // Markdown format
"tags": ["string"] // Array of tags
}Response:
{
"id": "uuid",
"project_id": "uuid",
"agent_id": "uuid",
"task_id": "uuid",
"title": "string",
"content": "string",
"tags": ["string"],
"created_at": "timestamp",
"updated_at": "timestamp"
}List documentation in a project.
Query Parameters:
project_id(uuid, required) - Project IDtags(string, optional) - Comma-separated tags to filter by
Response:
[
{
"id": "uuid",
"project_id": "uuid",
"agent_id": "uuid",
"task_id": "uuid",
"title": "string",
"content": "string",
"tags": ["string"],
"created_at": "timestamp",
"updated_at": "timestamp"
}
]Get specific documentation.
URL Parameters:
id(uuid) - Context ID
Response:
{
"id": "uuid",
"project_id": "uuid",
"agent_id": "uuid",
"task_id": "uuid",
"title": "string",
"content": "string",
"tags": ["string"],
"created_at": "timestamp",
"updated_at": "timestamp"
}Connect to real-time updates.
Query Parameters:
project_id(uuid, required) - Project ID to subscribe to
Message Format:
{
"type": "string", // "task_update", "agent_update", "context_added"
"payload": {} // Entity data
}Example:
const ws = new WebSocket('ws://localhost:8080/ws?project_id=UUID');
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
console.log('Type:', message.type);
console.log('Payload:', message.payload);
};Check server health.
Response:
OK
Status Code: 200 OK
pending- Task is created and waiting to be startedin_progress- Task is being worked onblocked- Task is blocked by a dependencydone- Task is completedcancelled- Task was cancelled
low- Low prioritymedium- Medium priority (default)high- High priority
active- Agent is actively workingidle- Agent is idle and waiting for tasksoffline- Agent is offline
active- Project is active (default)
All error responses follow this format:
{
"error": "Error message description"
}Common HTTP status codes:
400 Bad Request- Invalid input or missing required fields404 Not Found- Resource not found500 Internal Server Error- Server-side error
Currently, there are no rate limits. This may change in future versions.
The API is currently unversioned. Breaking changes will be communicated in advance.