Todos

Creates a todo on either a task or a deal — provide the description and one of task_id or deal_id. Optionally set assignee_id and closed.

due_date applies only to deal todos.

Task todo

{
  "data": {
    "type": "todos",
    "attributes": {
      "description": "Review the design draft",
      "task_id": 4421188,
      "assignee_id": 314
    }
  }
}

Deal todo

{
  "data": {
    "type": "todos",
    "attributes": {
      "description": "Follow up on contract terms",
      "deal_id": 88401,
      "assignee_id": 314,
      "due_date": "2026-06-01"
    }
  }
}
post/api/v2/todos

Request

  • Base URL
    https://developer.productive.io (the document declares no server; this is the origin it was published from)
  • URL
    https://developer.productive.io/api/v2/todos
  • Auth
    none declared

Request body

Example request

{
  "data": {
    "type": "todos",
    "attributes": {
      "description": "Write unit tests for authentication module",
      "due_date": "2026-03-20"
    },
    "relationships": {
      "task": {
        "data": {
          "type": "tasks",
          "id": "120501"
        }
      },
      "assignee": {
        "data": {
          "type": "people",
          "id": "12"
        }
      }
    }
  }
}

Response

Single todo

Example response

{
  "data": {
    "id": "24747",
    "type": "todos",
    "attributes": {
      "description": "Write unit tests for authentication module",
      "closed": false,
      "closed_at": null,
      "due_date": "2026-03-20",
      "due_time": null,
      "created_at": "2026-03-01T10:00:00.000+00:00",
      "todoable_type": "task",
      "position": 1
    },
    "relationships": {
      "assignee": {
        "data": {
          "type": "people",
          "id": "12"
        }
      },
      "task": {
        "data": {
          "type": "tasks",
          "id": "120501"
        }
      },
      "deal": {
        "data": null
      }
    }
  },
  "included": []
}

Changes

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • breaking

      response property data/attributes/due_time list-of-types was widened by adding types null to media type application/vnd.api+json of response 201

    • breaking

      the // response's property type changed from string to no type, and format from date-time to no format for status

    • breaking

      the // response's property type changed from string to no type, and format from date to no format for status

    • warning

      deleted the header request parameter X-Organization-Id

    This list may be incomplete.