API Documentation
Todos ¶
Todos ¶
A to-do is a component of a task that requires completion and can be assigned to an individual.
Once to-do is assigned, task appears in the assignee’s list of assigned tasks.
There’s no cap on the number of to-dos a single task can include.
To-dos can be either open or closed.
You can find out more about To-dos in our [Help documentation] (https://help.productive.io/en/articles/4097412-task-to-do)
Supported filter params
-
deal_id (array)
-
task_id (array)
-
assignee_id (array)
-
status (1: open, 2: closed)
-
due_date
GET /api/v2/todos
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": [
{
"id": "8",
"type": "todos",
"attributes": {
"description": "You need to do this.",
"closed_at": null,
"closed": false,
"due_date": "2025-08-02",
"created_at": "2025-08-02T02:21:28.363+02:00",
"todoable_type": "deal",
"due_time": null,
"position": 1
},
"relationships": {
"organization": {
"data": {
"type": "organizations",
"id": "2160"
}
},
"assignee": {
"meta": {
"included": false
}
},
"deal": {
"meta": {
"included": false
}
},
"task": {
"meta": {
"included": false
}
}
}
}
],
"links": {
"first": "http://api-test.productive.io/api/v2/todos?page%5Bnumber%5D=1&page%5Bsize%5D=30",
"last": "http://api-test.productive.io/api/v2/todos?page%5Bnumber%5D=1&page%5Bsize%5D=30"
},
"meta": {
"current_page": 1,
"total_pages": 1,
"total_count": 1,
"page_size": 30,
"max_page_size": 200
}
}
Get todosGET/api/v2/todos
GET /api/v2/todos/9
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "9",
"type": "todos",
"attributes": {
"description": "You need to do this.",
"closed_at": null,
"closed": false,
"due_date": "2025-08-02",
"created_at": "2025-08-02T02:21:28.494+02:00",
"todoable_type": "deal",
"due_time": null,
"position": 1
},
"relationships": {
"organization": {
"data": {
"type": "organizations",
"id": "2161"
}
},
"assignee": {
"meta": {
"included": false
}
},
"deal": {
"meta": {
"included": false
}
},
"task": {
"meta": {
"included": false
}
}
}
},
"meta": {}
}
POST /api/v2/todos
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todos",
"attributes": {
"description": "Test description"
},
"relationships": {
"task": {
"data": {
"type": "tasks",
"id": "539"
}
},
"assignee": {
"data": {
"type": "assignees",
"id": "8814"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "11",
"type": "todos",
"attributes": {
"description": "Test description",
"closed_at": null,
"closed": false,
"due_date": null,
"created_at": "2025-08-02T02:21:28.636+02:00",
"todoable_type": "task",
"due_time": null,
"position": 1
},
"relationships": {
"organization": {
"data": {
"type": "organizations",
"id": "2162"
}
},
"assignee": {
"meta": {
"included": false
}
},
"deal": {
"meta": {
"included": false
}
},
"task": {
"meta": {
"included": false
}
}
}
},
"meta": {}
}
POST /api/v2/todos
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todos",
"attributes": {
"description": "Test description"
},
"relationships": {
"deal": {
"data": {
"type": "deals",
"id": "1869"
}
},
"assignee": {
"data": {
"type": "assignees",
"id": "8815"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "13",
"type": "todos",
"attributes": {
"description": "Test description",
"closed_at": null,
"closed": false,
"due_date": null,
"created_at": "2025-08-02T02:21:28.770+02:00",
"todoable_type": "deal",
"due_time": null,
"position": 2
},
"relationships": {
"organization": {
"data": {
"type": "organizations",
"id": "2163"
}
},
"assignee": {
"meta": {
"included": false
}
},
"deal": {
"meta": {
"included": false
}
},
"task": {
"meta": {
"included": false
}
}
}
},
"meta": {}
}
POST /api/v2/todos
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todos",
"attributes": {
"description": "Test description"
},
"relationships": {
"deal": {
"data": {
"type": "deals",
"id": "0"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"errors": [
{
"status": "403",
"title": "Access Denied",
"detail": "You are not authorized to access this resource",
"source": {}
}
]
}
POST /api/v2/todos
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todos",
"attributes": {
"description": "Test description"
},
"relationships": {
"ticket": {
"data": {
"type": "tickets",
"id": "0"
}
}
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"errors": [
{
"status": "422",
"code": "invalid_attribute",
"title": "Invalid Attribute",
"detail": "can't be blank",
"source": {
"pointer": "data/attributes/deal"
}
},
{
"status": "422",
"code": "invalid_attribute",
"title": "Invalid Attribute",
"detail": "can't be blank",
"source": {
"pointer": "data/attributes/task"
}
}
]
}
POST /api/v2/todos
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todos",
"attributes": {
"description": ""
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"errors": [
{
"status": "422",
"code": "invalid_attribute",
"title": "Invalid Attribute",
"detail": "can't be blank",
"source": {
"pointer": "data/attributes/deal"
}
},
{
"status": "422",
"code": "invalid_attribute",
"title": "Invalid Attribute",
"detail": "can't be blank",
"source": {
"pointer": "data/attributes/task"
}
},
{
"status": "422",
"code": "invalid_attribute",
"title": "Invalid Attribute",
"detail": "can't be blank",
"source": {
"pointer": "data/attributes/description"
}
}
]
}
Create a todoPOST/api/v2/todos
- deal_id
number
(optional) Example: 1deal id
- task_id
number
(optional) Example: 1task id
- assignee_id
number
(required) Example: 1assignee id
- description
string
(required) Example: Descriptiondescription
PATCH /api/v2/todos/17
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todo",
"attributes": {
"description": "Update description",
"closed": true
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "17",
"type": "todos",
"attributes": {
"description": "Update description",
"closed_at": "2025-08-02T02:21:29.000+02:00",
"closed": true,
"due_date": "2025-08-02",
"created_at": "2025-08-02T02:21:29.512+02:00",
"todoable_type": "task",
"due_time": null,
"position": 1
},
"relationships": {
"organization": {
"data": {
"type": "organizations",
"id": "2167"
}
},
"assignee": {
"meta": {
"included": false
}
},
"deal": {
"meta": {
"included": false
}
},
"task": {
"meta": {
"included": false
}
}
}
},
"meta": {}
}
PATCH /api/v2/todos/18
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todo",
"attributes": {
"description": "Update description",
"closed": true
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"data": {
"id": "18",
"type": "todos",
"attributes": {
"description": "Update description",
"closed_at": "2025-08-02T02:21:29.000+02:00",
"closed": true,
"due_date": "2025-08-02",
"created_at": "2025-08-02T02:21:29.647+02:00",
"todoable_type": "deal",
"due_time": null,
"position": 1
},
"relationships": {
"organization": {
"data": {
"type": "organizations",
"id": "2168"
}
},
"assignee": {
"meta": {
"included": false
}
},
"deal": {
"meta": {
"included": false
}
},
"task": {
"meta": {
"included": false
}
}
}
},
"meta": {}
}
PATCH /api/v2/todos/19
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
"data": {
"type": "todos",
"attributes": {
"description": null
}
}
}
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
"errors": [
{
"status": "422",
"code": "invalid_attribute",
"title": "Invalid Attribute",
"detail": "can't be blank",
"source": {
"pointer": "data/attributes/description"
}
}
]
}
DELETE /api/v2/todos/20
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
DELETE /api/v2/todos/21
Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Generated by aglio on 02 Aug 2025