Tasks & messages
Tasks & messages endpoints of the Elnora REST API.
Base URL https://platform.elnora.ai/api/v1. Authenticate every request with the X-API-Key header — see Authentication.
GET /tasks
List all user's tasks across projects.
curl https://platform.elnora.ai/api/v1/tasks \
-H "X-API-Key: $ELNORA_API_KEY"Parameters
| Name | In | Type | Required |
|---|---|---|---|
Page | query | int32 | no |
PageSize | query | int32 | no |
SortBy | query | string | no |
SortDirection | query | string | no |
status | query | string | no |
Responses: 200 · 400
POST /tasks
Create a new task.
curl -X POST https://platform.elnora.ai/api/v1/tasks \
-H "X-API-Key: $ELNORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Request body
| Field | Type | Required |
|---|---|---|
title | string | no |
initialMessage | string | no |
contextFileIds | uuid[] | no |
referencedFileIds | uuid[] | no |
Responses: 201 · 400
GET /tasks/{id}
Get task with messages.
curl https://platform.elnora.ai/api/v1/tasks/{id} \
-H "X-API-Key: $ELNORA_API_KEY"Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | uuid | yes |
Responses: 200
PUT /tasks/{id}
Update task (title, status).
curl -X PUT https://platform.elnora.ai/api/v1/tasks/{id} \
-H "X-API-Key: $ELNORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | uuid | yes |
Request body
| Field | Type | Required |
|---|---|---|
title | string | no |
status | string | no |
Responses: 200
DELETE /tasks/{id}
Archive a task.
curl -X DELETE https://platform.elnora.ai/api/v1/tasks/{id} \
-H "X-API-Key: $ELNORA_API_KEY"Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | uuid | yes |
Responses: 204
GET /tasks/{id}/messages
Get messages for a task with cursor pagination.
curl https://platform.elnora.ai/api/v1/tasks/{id}/messages \
-H "X-API-Key: $ELNORA_API_KEY"Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | uuid | yes |
Cursor | query | string | no |
Limit | query | int32 | no |
Responses: 200
POST /tasks/{id}/messages
Send a message in a task.
curl -X POST https://platform.elnora.ai/api/v1/tasks/{id}/messages \
-H "X-API-Key: $ELNORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "content": "..." }'Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | uuid | yes |
Request body
| Field | Type | Required |
|---|---|---|
content | string | yes |
attachmentIds | uuid[] | no |
contextFileIds | uuid[] | no |
referencedFileIds | uuid[] | no |
openFileReference | OpenFileReference | no |
Responses: 201
POST /tasks/{id}/unarchive
Unarchive a task — flips status back to Active so it reappears in default listings.
curl -X POST https://platform.elnora.ai/api/v1/tasks/{id}/unarchive \
-H "X-API-Key: $ELNORA_API_KEY" \
-H "Content-Type: application/json"Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | uuid | yes |
Responses: 204
GET /tasks/{taskId}/attachments
List a task's attachments (agent-generated deliverables + chat attachments).
curl https://platform.elnora.ai/api/v1/tasks/{taskId}/attachments \
-H "X-API-Key: $ELNORA_API_KEY"Parameters
| Name | In | Type | Required |
|---|---|---|---|
taskId | path | uuid | yes |
Responses: 200
DELETE /tasks/{taskId}/attachments/{attachmentId}
Delete a task attachment (removes the S3 object + DB row).
curl -X DELETE https://platform.elnora.ai/api/v1/tasks/{taskId}/attachments/{attachmentId} \
-H "X-API-Key: $ELNORA_API_KEY"Parameters
| Name | In | Type | Required |
|---|---|---|---|
taskId | path | uuid | yes |
attachmentId | path | uuid | yes |
Responses: 204 · 404
GET /tasks/{taskId}/attachments/{attachmentId}/content
Get a presigned download URL for a task attachment.
curl https://platform.elnora.ai/api/v1/tasks/{taskId}/attachments/{attachmentId}/content \
-H "X-API-Key: $ELNORA_API_KEY"Parameters
| Name | In | Type | Required |
|---|---|---|---|
taskId | path | uuid | yes |
attachmentId | path | uuid | yes |
Responses: 200 · 404