# Task results: REST 3.0

These four routes call the corresponding Bitrix24 methods through REST 3.0 (/rest/api/). They require an API key with the task or tasks scope and write access. The response is wrapped as { "success": true, "data": <Bitrix24 result> }; the REST 3.0 result stays unchanged. Errors use the standard /v1 envelope.

| Method and path | Bitrix24 method | JSON body |
| --- | --- | --- |
| `POST /v1/task-results` | tasks.task.result.add | { "fields": { "taskId": 17, "text": "Done" } } |
| `POST /v1/task-results/from-chat-message` | tasks.task.result.addfromchatmessage | { "fields": { "messageId": 73 } } |
| `PATCH /v1/task-results/:id` | tasks.task.result.update | { "fields": { "text": "Revised" } } |
| `DELETE /v1/task-results/:id` | tasks.task.result.delete | no body required |

For creation, fields.taskId is the task ID and fields.text is the result text. Creation from a chat message uses fields.messageId. Update and delete take a positive integer **result** ID in the path and send it to Bitrix24 as top-level id. Update forwards fields unchanged; the Bitrix24 controller requires text. For creation from a chat message, Bitrix24 checks the caller's access to that message.

For add and update, data contains an item object with the result DTO; for delete, data contains a result object with true. This is the REST 3.0 response shape, separate from the older tasks.Task.Result.* family. This group does not expose a list route.
