Tasks
Tasks let you create follow-up reminders and action items linked to contacts.
List Contact Tasks
GET /contacts/{contact_id}/tasks
Returns tasks linked to a specific contact.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
status | string | — | Filter by status: open or completed |
Example
curl "https://be.graph8.com/api/v1/contacts/12345/tasks?status=open" \ -H "Authorization: Bearer $API_KEY"response = requests.get( f"{BASE_URL}/contacts/12345/tasks", headers=HEADERS, params={"status": "open"})Response
{ "data": [ { "id": "task_uuid", "entity_type": "contact", "entity_id": "101", "title": "Follow up", "description": "...", "due_date": "2026-06-01T17:00:00Z", "assignee_id": "user_x", "assignee_name": "John", "status": "open", "priority": 2, "task_type": "...", "created_by": "user_y", "created_at": "...", "updated_at": "...", "parent_task_id": null, "subtask_sort_order": 0, "subtask_count": 0, "completed_subtask_count": 0 } ]}List All Tasks
GET /tasks
Returns all tasks across the organization, with optional filters.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
status | string | — | Filter by status |
priority | integer | — | Filter by priority (0=none, 1=urgent, 2=high, 3=normal, 4=low) |
assignee_id | string | — | Filter by assignee |
search | string | — | Partial match on task title |
Example
curl "https://be.graph8.com/api/v1/tasks?status=open&priority=2&assignee_id=user_x" \ -H "Authorization: Bearer $API_KEY"Create Task
POST /contacts/{contact_id}/tasks
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Task title |
description | string | No | Task details |
due_date | string | No | ISO 8601 due date |
assignee_id | string | No | User ID to assign |
priority | integer | No | 0=none, 1=urgent, 2=high, 3=normal, 4=low |
parent_task_id | string | No | ID of parent task — makes this a subtask (one level deep) |
subtask_sort_order | integer | No | Sort order among sibling subtasks |
Example
curl -X POST "https://be.graph8.com/api/v1/contacts/12345/tasks" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"title": "Send proposal", "due_date": "2026-03-05", "priority": 2}'Response 201 Created
Returns the full task object — same shape as the items in GET /contacts/{contact_id}/tasks.
Update Task
PATCH /tasks/{task_id}
Supports partial updates. Send only the fields you want to change.
Request Body
All fields are optional.
| Field | Type | Description |
|---|---|---|
title | string | Task title |
description | string | Task details |
due_date | string | ISO 8601 due date |
assignee_id | string | User ID to assign |
status | string | Task status (open or completed) |
priority | integer | 0=none, 1=urgent, 2=high, 3=normal, 4=low |
parent_task_id | string | ID of parent task (or null to remove subtask relationship) |
subtask_sort_order | integer | Sort order among sibling subtasks |
Example
curl -X PATCH "https://be.graph8.com/api/v1/tasks/task_uuid" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"status": "completed", "priority": 1}'