API Documentation

API Endpoint

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.

Todo diagram

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
Requestsreturns todos

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
Responses200
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-03-26",
        "created_at": "2025-03-26T05:17:12.639+01:00",
        "todoable_type": "deal",
        "due_time": null,
        "position": 1
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2195"
          }
        },
        "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 todos
GET/api/v2/todos


GET /api/v2/todos/1
Requestsreturns deal status

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
Responses200
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-03-26",
      "created_at": "2025-03-26T05:17:12.772+01:00",
      "todoable_type": "deal",
      "due_time": null,
      "position": 1
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2196"
        }
      },
      "assignee": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "task": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Gets a todo
GET/api/v2/todos/{id}

URI Parameters
HideShow
id
number (required) Example: 1

todo id


POST /api/v2/todos
Requestscreates the todocreates the todoreturns errorreturns errorreturns error

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": "546"
        }
      },
      "assignee": {
        "data": {
          "type": "assignees",
          "id": "8859"
        }
      }
    }
  }
}
Responses201
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-03-26T05:17:12.921+01:00",
      "todoable_type": "task",
      "due_time": null,
      "position": 1
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2197"
        }
      },
      "assignee": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "task": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Create a todo
POST/api/v2/todos

URI Parameters
HideShow
deal_id
number (optional) Example: 1

deal id

task_id
number (optional) Example: 1

task id

assignee_id
number (required) Example: 1

assignee id

description
string (required) Example: Description

description


PATCH /api/v2/todos/1
Requestsupdates todoupdates todoreturns error

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
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "17",
    "type": "todos",
    "attributes": {
      "description": "Update description",
      "closed_at": "2025-03-26T05:17:13.000+01:00",
      "closed": true,
      "due_date": "2025-03-26",
      "created_at": "2025-03-26T05:17:13.585+01:00",
      "todoable_type": "task",
      "due_time": null,
      "position": 1
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2202"
        }
      },
      "assignee": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "task": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Update a todo
PATCH/api/v2/todos/{id}

URI Parameters
HideShow
id
number (required) Example: 1

todo id


DELETE /api/v2/todos/1
Requestsdeletes tododeletes todo

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
Responses204
This response has no content.

Deletes a todo
DELETE/api/v2/todos/{id}

URI Parameters
HideShow
id
number (required) Example: 1

todo id


Generated by aglio on 26 Mar 2025