Manage tasks — to-do items linked to contacts, companies, and deals.
See also: Activities & Tasks concepts
| Method | Path | Description |
|---|---|---|
| POST | /tasks | Create a task |
| GET | /tasks | List tasks |
| GET | /tasks/:id | Get a task |
| PATCH | /tasks/:id | Update a task |
| DELETE | /tasks/:id | Delete a task |
POST /tasks
| Field | Type | Required | Description |
|---|---|---|---|
title | string | yes | Task title |
description | string | no | Detailed description |
contact_id | string | no | Associated contact |
company_id | string | no | Associated company |
deal_id | string | no | Associated deal |
owner_id | string | no | Assigned to (the person responsible) |
due_at | datetime | no | Due date |
priority | string | no | Priority: low, normal, high, urgent |
status | string | no | Status: pending, completed, cancelled |
metadata | object | no | Arbitrary key-value data |
curl -X POST "$REX_URL/tasks" \
-H "X-Api-Key: $REX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Send contract to Ada",
"contact_id": "cont_01HQ...",
"deal_id": "deal_01HQ...",
"owner_id": "user_01HQ...",
"due_at": "2026-03-20T17:00:00Z",
"priority": "high"
}'
{
"data": {
"id": "task_01HQ...",
"title": "Send contract to Ada",
"contact_id": "cont_01HQ...",
"deal_id": "deal_01HQ...",
"owner_id": "user_01HQ...",
"due_at": "2026-03-20T17:00:00Z",
"priority": "high",
"status": "pending",
"created_at": "2026-03-16T12:00:00Z",
"updated_at": "2026-03-16T12:00:00Z"
}
}
GET /tasks
| Parameter | Type | Description |
|---|---|---|
cursor | string | Pagination cursor |
limit | integer | Results per page (default 50, max 200) |
status | string | Filter by status: pending, completed, cancelled |
priority | string | Filter by priority: low, normal, high, urgent |
contact_id | string | Filter by contact |
company_id | string | Filter by company |
deal_id | string | Filter by deal |
owner_id | string | Filter by assigned owner |
due_before | datetime | Tasks due before this time |
due_after | datetime | Tasks due after this time |
curl "$REX_URL/tasks?status=pending&priority=high&owner_id=user_01HQ..." \
-H "X-Api-Key: $REX_API_KEY"
{
"data": [
{
"id": "task_01HQ...",
"title": "Send contract to Ada",
"contact_id": "cont_01HQ...",
"deal_id": "deal_01HQ...",
"owner_id": "user_01HQ...",
"due_at": "2026-03-20T17:00:00Z",
"priority": "high",
"status": "pending",
"created_at": "2026-03-16T12:00:00Z",
"updated_at": "2026-03-16T12:00:00Z"
}
],
"has_more": false
}
GET /tasks/:id
curl "$REX_URL/tasks/task_01HQ..." \
-H "X-Api-Key: $REX_API_KEY"
{
"data": {
"id": "task_01HQ...",
"title": "Send contract to Ada",
"description": "Enterprise plan contract, annual billing",
"contact_id": "cont_01HQ...",
"company_id": "comp_01HQ...",
"deal_id": "deal_01HQ...",
"owner_id": "user_01HQ...",
"created_by": "user_02HQ...",
"due_at": "2026-03-20T17:00:00Z",
"priority": "high",
"status": "pending",
"metadata": {},
"relationships": {
"contact": { "type": "contact", "id": "cont_01HQ...", "name": "Ada Lovelace" },
"deal": { "type": "deal", "id": "deal_01HQ...", "name": "Acme Enterprise Plan" },
"owner": { "type": "user", "id": "user_01HQ...", "name": "Jane Smith" }
},
"created_at": "2026-03-16T12:00:00Z",
"updated_at": "2026-03-16T12:00:00Z"
},
"included": [
{ "type": "contact", "id": "cont_01HQ...", "name": "Ada Lovelace" }
]
}
PATCH /tasks/:id
All fields from the create request body are accepted, plus completed_at. Only provided fields are updated.
curl -X PATCH "$REX_URL/tasks/task_01HQ..." \
-H "X-Api-Key: $REX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "completed",
"completed_at": "2026-03-18T10:00:00Z"
}'
Returns the full updated task in the same format as Get a task.
DELETE /tasks/:id
curl -X DELETE "$REX_URL/tasks/task_01HQ..." \
-H "X-Api-Key: $REX_API_KEY"
204 No Content on success.