Update a task
curl --request PATCH \
--url https://api.vegaminds.com/v1/tasks/{task_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "completed"
}
'import requests
url = "https://api.vegaminds.com/v1/tasks/{task_id}"
payload = { "status": "completed" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'completed'})
};
fetch('https://api.vegaminds.com/v1/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"is_external": false,
"id": "947ce01f-c25d-4778-a500-216c73667a95",
"name": "Send the updated beneficiary forms",
"status": "not_started",
"priority": "high",
"due_on": "2026-12-01T17:00:00Z",
"completed_on": null,
"assignee": {
"id": "e4c62422-6c8e-4b16-abea-df20da453204",
"name": "Morgan Lee"
},
"contacts": [
{
"id": "1f128fef-f499-4c88-a53e-75f235ccb65a",
"name": "Jordan Ellis"
}
],
"households": [],
"created_on": "2026-11-04T15:32:40Z",
"updated_on": "2026-11-04T15:32:40Z",
"description": "Use the forms from the custodian portal.",
"recurrence_rule": null,
"recurrence_id": null,
"workflow": null,
"owner": null,
"creator": null,
"tags": []
}{
"error": {
"code": "invalid_request",
"message": "The request body is invalid.",
"fields": {
"email_addresses[0].address": "Must be an email address."
}
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "invalid_token",
"message": "The access token is invalid, expired or revoked."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "insufficient_scope",
"message": "This request needs the contacts:write scope, which the user did not grant. Connect the user again, asking for it."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "not_found",
"message": "Contact not found."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {}
},
"request_id": "<string>"
}{
"error": {
"code": "rate_limited",
"message": "Too many requests. Wait the number of seconds in the Retry-After header, then try again."
}
}{
"error": {
"code": "internal_error",
"message": "Something went wrong on our side. Try again later, and contact Vega support with the request id if it keeps happening."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}Tasks
Update a task
A field left out is unchanged, and null clears it where allowed. A new assignee other than the connected user is notified in Vega and by email. Setting status to completed sets completed_on; another status clears it. A change to a task that repeats applies to that task alone.
PATCH
/
tasks
/
{task_id}
Update a task
curl --request PATCH \
--url https://api.vegaminds.com/v1/tasks/{task_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "completed"
}
'import requests
url = "https://api.vegaminds.com/v1/tasks/{task_id}"
payload = { "status": "completed" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'completed'})
};
fetch('https://api.vegaminds.com/v1/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"is_external": false,
"id": "947ce01f-c25d-4778-a500-216c73667a95",
"name": "Send the updated beneficiary forms",
"status": "not_started",
"priority": "high",
"due_on": "2026-12-01T17:00:00Z",
"completed_on": null,
"assignee": {
"id": "e4c62422-6c8e-4b16-abea-df20da453204",
"name": "Morgan Lee"
},
"contacts": [
{
"id": "1f128fef-f499-4c88-a53e-75f235ccb65a",
"name": "Jordan Ellis"
}
],
"households": [],
"created_on": "2026-11-04T15:32:40Z",
"updated_on": "2026-11-04T15:32:40Z",
"description": "Use the forms from the custodian portal.",
"recurrence_rule": null,
"recurrence_id": null,
"workflow": null,
"owner": null,
"creator": null,
"tags": []
}{
"error": {
"code": "invalid_request",
"message": "The request body is invalid.",
"fields": {
"email_addresses[0].address": "Must be an email address."
}
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "invalid_token",
"message": "The access token is invalid, expired or revoked."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "insufficient_scope",
"message": "This request needs the contacts:write scope, which the user did not grant. Connect the user again, asking for it."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "not_found",
"message": "Contact not found."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {}
},
"request_id": "<string>"
}{
"error": {
"code": "rate_limited",
"message": "Too many requests. Wait the number of seconds in the Retry-After header, then try again."
}
}{
"error": {
"code": "internal_error",
"message": "Something went wrong on our side. Try again later, and contact Vega support with the request id if it keeps happening."
},
"request_id": "3f6c1e9a-2b7d-4c58-9e41-8a0d5b7f2c16"
}Authorizations
Body
application/json
A field left out is unchanged.
Response
The updated task.
True when this record has an active integration link, including an export from Vega. This is current linkage, not historical origin, and is independent of linked contacts or households. Associated records cannot be patched or deleted through this API, except that a meeting may patch reviewed alone. No provider/account details are exposed.

