Record a task update
curl --request POST \
--url https://api.ando.so/v1/tasks/{taskId}/updates \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"entry": {
"kind": "worklog",
"author_kind": "local_agent",
"author_label": "Local agent",
"body_markdown": "Validated the route migration."
}
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entry: {
kind: 'worklog',
author_kind: 'local_agent',
author_label: 'Local agent',
body_markdown: 'Validated the route migration.'
}
})
};
fetch('https://api.ando.so/v1/tasks/{taskId}/updates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.ando.so/v1/tasks/{taskId}/updates"
payload = { "entry": {
"kind": "worklog",
"author_kind": "local_agent",
"author_label": "Local agent",
"body_markdown": "Validated the route migration."
} }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"changed_resources": [
{
"archived_at": "2023-11-07T05:31:56Z",
"created_at": "2026-05-14T08:00:00.000Z",
"created_by_entry_id": "<string>",
"id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"label": "<string>",
"task_id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"updated_at": "2026-05-14T08:00:00.000Z",
"url": "<string>",
"workspace_id": "01jzn7e61x3a7v9h2r7t2m3q4p"
}
],
"entry": {
"author_label": "<string>",
"authorWorkspaceMembershipId": "<string>",
"author_member_id": "<string>",
"body_markdown": "<string>",
"created_at": "2026-05-14T08:00:00.000Z",
"id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"run_id": "<string>",
"source_message_id": "<string>",
"task_id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"updated_at": "2026-05-14T08:00:00.000Z",
"workspace_id": "01jzn7e61x3a7v9h2r7t2m3q4p"
},
"task": {
"conversation_id": "<string>",
"conversation_name": "<string>",
"created_at": "2026-05-14T08:00:00.000Z",
"creatorWorkspaceMembershipId": "<string>",
"creator_member_id": "<string>",
"id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"last_activity_at": "2026-05-14T08:00:00.000Z",
"name": "<string>",
"objective": "<string>",
"state_version": 123,
"summary": "<string>",
"updated_at": "2026-05-14T08:00:00.000Z"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}Records a task update and optional task/resource changes.
POST
https://api.ando.so/v1
/
tasks
/
{taskId}
/
updates
Record a task update
curl --request POST \
--url https://api.ando.so/v1/tasks/{taskId}/updates \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"entry": {
"kind": "worklog",
"author_kind": "local_agent",
"author_label": "Local agent",
"body_markdown": "Validated the route migration."
}
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entry: {
kind: 'worklog',
author_kind: 'local_agent',
author_label: 'Local agent',
body_markdown: 'Validated the route migration.'
}
})
};
fetch('https://api.ando.so/v1/tasks/{taskId}/updates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.ando.so/v1/tasks/{taskId}/updates"
payload = { "entry": {
"kind": "worklog",
"author_kind": "local_agent",
"author_label": "Local agent",
"body_markdown": "Validated the route migration."
} }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"changed_resources": [
{
"archived_at": "2023-11-07T05:31:56Z",
"created_at": "2026-05-14T08:00:00.000Z",
"created_by_entry_id": "<string>",
"id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"label": "<string>",
"task_id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"updated_at": "2026-05-14T08:00:00.000Z",
"url": "<string>",
"workspace_id": "01jzn7e61x3a7v9h2r7t2m3q4p"
}
],
"entry": {
"author_label": "<string>",
"authorWorkspaceMembershipId": "<string>",
"author_member_id": "<string>",
"body_markdown": "<string>",
"created_at": "2026-05-14T08:00:00.000Z",
"id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"run_id": "<string>",
"source_message_id": "<string>",
"task_id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"updated_at": "2026-05-14T08:00:00.000Z",
"workspace_id": "01jzn7e61x3a7v9h2r7t2m3q4p"
},
"task": {
"conversation_id": "<string>",
"conversation_name": "<string>",
"created_at": "2026-05-14T08:00:00.000Z",
"creatorWorkspaceMembershipId": "<string>",
"creator_member_id": "<string>",
"id": "01jzn7e61x3a7v9h2r7t2m3q4p",
"last_activity_at": "2026-05-14T08:00:00.000Z",
"name": "<string>",
"objective": "<string>",
"state_version": 123,
"summary": "<string>",
"updated_at": "2026-05-14T08:00:00.000Z"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": "<string>",
"error_code": "<string>",
"missing_scopes": [
"<string>"
]
}Authorizations
AndoApiKeyBearerApiKey
Workspace API key. Current accepted keys use the ando_sk_ prefix.
Headers
Idempotency key for safely retrying this write. Idempotency key.
Maximum string length:
255Path Parameters
Task identifier.
Body
application/json
Record a task worklog/checkpoint update and optional task/resource changes.
Task update entry.
Show child attributes
Show child attributes
Optimistic task state version expected by the caller.
Required range:
x >= 0Resource changes.
Task resource operation.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Task fields to update.
Show child attributes
Show child attributes
⌘I