All endpoints except /auth/login and /auth/register require JWT bearer authentication.
POST /auth/registerRequest Body:
{
"username": "string (3-50 chars, alphanumeric + ._-)",
"name": "string (max 100 chars)",
"email": "valid email address",
"password": "string (min 8 chars)",
"inviteCode": "string (optional)"
}POST /auth/loginRequest Body:
{
"username": "string",
"password": "string"
}Both authentication endpoints return:
{
"token": "JWT token",
"user": {
"id": "string",
"username": "string",
"name": "string",
"email": "string"
}
}GET /users/mePATCH /users/meRequest Body:
{
"name": "string (max 100 chars)",
"email": "string"
}PUT /users/me/passwordRequest Body:
{
"currentPassword": "string",
"newPassword": "string (min 8 chars)"
}GET /api/tasksReturns array of TaskDTO objects.
Instantiate a new task but don't call the Agent yet. This allows for also adding documents to the task workspace prior to execution.
POST /api/tasksRequest Body:
{
"message": "string"
}GET /api/tasks/{task_id}Progress the task for one step. This call is synchronous and will
return when the agent has progressed a single step. Check the boolean action.final to see
if the agent expects the task to be completed or not.
You can keep progressing a task for as long as you need. You can provide additional instructions in between or can leave the message empty to just instruct the agent to keep progressing.
POST /api/tasks/{task_id}Request Body:
{
"message": "string" (optional)
}GET /api/tasks/{task_id}/stepsPOST /api/tasks/{task_id}/documentsRequest Body: Multipart form data with file
GET /api/tasks/{task_id}/documents/{document_id}GET /api/documentsReturns array of RagDocumentDTO objects.
POST /api/documentsQuery Parameters:
title: string (required)description: string (required)
Request Body: Multipart form data with file
GET /api/documents/{documentId}DELETE /api/documents/{documentId}GET /api/documents/{documentId}/chunksGET /api/chunks/{chunkId}{
"created": "datetime",
"completed": "datetime",
"id": "string",
"title": "string",
"description": "string",
"request": "string",
"context": {
"key": "value"
}
}{
"input": "string",
"action": {
"name": "string",
"parameters": {
"key": "value"
},
"reasoning": "string",
"final": "boolean"
},
"result": {
"status": "string",
"details": "object",
"summary": "string",
"error": "string",
"message": "string"
},
"documents": [
{
"taskId": "string",
"filename": "string",
"metadata": {
"key": "value"
}
}
]
}{
"id": "string",
"filename": "string",
"title": "string",
"description": "string",
"contentType": "string",
"progress": "float"
}{
"id": "string",
"documentId": "string",
"documentTitle": "string",
"documentDescription": "string",
"content": "string"
}