List tasks
curl --request GET \
--url https://api.vegaminds.com/v1/tasks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vegaminds.com/v1/tasks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.vegaminds.com/v1/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": "947ce01f-c25d-4778-a500-216c73667a95",
"is_external": false,
"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"
}
],
"page": 1,
"limit": 50,
"has_more": false
}{
"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": "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
List tasks
The tasks the user can see, latest due date first. Tasks synced from another CRM without a due date come before the others. Rows are summaries; get a task for its description.
GET
/
tasks
List tasks
curl --request GET \
--url https://api.vegaminds.com/v1/tasks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vegaminds.com/v1/tasks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.vegaminds.com/v1/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": "947ce01f-c25d-4778-a500-216c73667a95",
"is_external": false,
"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"
}
],
"page": 1,
"limit": 50,
"has_more": false
}{
"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": "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
Query Parameters
Only the records whose updated_on is at or after this timestamp, which needs a time zone offset. To keep a copy in sync, pass the latest updated_on you have stored, as returned (it ends in Z); records updated in that same second come back again. Write an offset's + as %2B, since a + in a URL reads as a space.

