API Documentation

API Endpoint

Task Lists

Task Lists

The Task list object represents a task list within the project management system. It sits between Boards and Tasks, meaning it belongs to a board and contains multiple tasks.

You can find out more about task lists in our Help documentation: Task lists

Following diagram shows task lists in our data hierarchy:

Task list diagram

Supported filter params

  • id

  • project_id (array)

  • board_id (array)

  • status (active: 1, archived: 2)

Supported relationship filter params

  • board

  • project

GET /api/v2/task_lists
Requestsreturns task lists

GET  /api/v2/task_lists?filter[project_id]=1394

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": "274",
      "type": "task_lists",
      "attributes": {
        "name": "task list name",
        "position": null,
        "placement": null,
        "archived_at": null,
        "email_key": "deca334ff6ae4ce1b8bef8280d0b74dc"
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2037"
          }
        },
        "project": {
          "meta": {
            "included": false
          }
        },
        "board": {
          "meta": {
            "included": false
          }
        },
        "folder": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "links": {
    "first": "http://api-test.productive.io/api/v2/task_lists?filter%5Bproject_id%5D=1394&page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/task_lists?filter%5Bproject_id%5D=1394&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 task lists
GET/api/v2/task_lists


GET /api/v2/task_lists/1
Requestsreturns task list

GET  /api/v2/task_lists/277

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": "277",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "fcb4149c4b1b92377bcce5cb905eaf30"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2039"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Gets a task list
GET/api/v2/task_lists/{id}

URI Parameters
HideShow
id
number (required) Example: 1

task list id


POST /api/v2/task_lists
Requestscreates task listreturns error

POST  /api/v2/task_lists

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": "task_lists",
    "attributes": {
      "name": "test name"
    },
    "relationships": {
      "project": {
        "data": {
          "type": "projects",
          "id": "1399"
        }
      },
      "board": {
        "data": {
          "type": "boards",
          "id": "294"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "279",
    "type": "task_lists",
    "attributes": {
      "name": "test name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "e9dba5c0f420fb3ea9c3696aa69e8f12"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2040"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/task_lists

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": "task_lists",
    "attributes": {
      "name": ""
    }
  }
}
Responses422
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",
      "meta": {},
      "source": {
        "pointer": "data/attributes/name"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "meta": {},
      "source": {
        "pointer": "data/attributes/project"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "meta": {
        "if": {}
      },
      "source": {
        "pointer": "data/attributes/board"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "meta": {
        "if": {}
      },
      "source": {
        "pointer": "data/attributes/folder"
      }
    }
  ]
}

Create a task list
POST/api/v2/task_lists

URI Parameters
HideShow
name
string (required) Example: Name

name

project_id
number (required) Example: 1

project id

board_id
number (required) Example: 1

board id


PATCH /api/v2/task_lists/1
Requestsupdates task list

PATCH  /api/v2/task_lists/282

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": "task_lists",
    "attributes": {
      "name": "new name"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "282",
    "type": "task_lists",
    "attributes": {
      "name": "new name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "22ce79a120b635fff75e2219040f8b04"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2044"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Update a task list
PATCH/api/v2/task_lists/{id}

URI Parameters
HideShow
id
number (required) Example: 1

task list id


PATCH /api/v2/task_lists/1/archive
Requestsarchives task list

PATCH  /api/v2/task_lists/283/archive

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": "283",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": "2026-04-01T06:15:25.000+02:00",
      "email_key": "ad9656083b879fea94d3769c1013bf89"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2045"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Archives a task list
PATCH/api/v2/task_lists/{id}/archive

URI Parameters
HideShow
id
number (required) Example: 1

task list id


PATCH /api/v2/task_lists/1/restore
Requestsrestores task list

PATCH  /api/v2/task_lists/284/restore

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": "284",
    "type": "task_lists",
    "attributes": {
      "name": "Milestone270",
      "position": null,
      "placement": 1010000,
      "archived_at": null,
      "email_key": "06a1a41f2d18d68a4d5fb87c8ed26f60"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2046"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Restores a task list
PATCH/api/v2/task_lists/{id}/restore

URI Parameters
HideShow
id
number (required) Example: 1

task list id


POST /api/v2/task_lists/copy
Requestscopy from templatecopy from templatecopy from templatecopy from templatecopy from template

POST  /api/v2/task_lists/copy

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": "task_lists",
    "attributes": {
      "name": "copy task list",
      "template_id": 285,
      "project_id": 1405,
      "board_id": 300,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "286",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "ac8e137db45166139c03910acd6eb0f2"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2047"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/task_lists/copy

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": "task_lists",
    "attributes": {
      "name": "copy task list",
      "template_id": 287,
      "project_id": 1406,
      "folder_id": 301,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "288",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "ea0531664600a5a2eea8524f0cd2167b"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2048"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/task_lists/copy

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": "task_lists",
    "attributes": {
      "name": "copy task list",
      "template_id": 289,
      "project_id": 1408,
      "board_id": 303,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "290",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "b81147cab27b3dbddcc6e2266586dd49"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2049"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/task_lists/copy

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": "task_lists",
    "attributes": {
      "name": "copy task list",
      "template_id": 291,
      "project_id": 1410,
      "board_id": 305,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "293",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "1a6ccc39eea71958e49a84a927746159"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2050"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/task_lists/copy

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": "task_lists",
    "attributes": {
      "name": "copy task list",
      "template_id": 294,
      "project_id": 1413,
      "board_id": 308,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "296",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "def695686c33f697497dc55bade3747c"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2051"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Copies a task list
POST/api/v2/task_lists/copy

URI Parameters
HideShow
id
number (required) Example: 1

task list id


PATCH /api/v2/task_lists/1/move
Requestsmoves task list to new projectdoes not broadcast and returns errors

PATCH  /api/v2/task_lists/297/move

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": "task_lists",
    "attributes": {
      "board_id": 311
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "297",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "8757e3f200658b03a5010880e8341746"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2052"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/task_lists/298/move

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": "task_lists",
    "attributes": {
      "board_id": "-1"
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "attribute is invalid",
      "meta": {},
      "source": {
        "pointer": "data/attributes/board_id"
      }
    }
  ]
}

Moves a task list
PATCH/api/v2/task_lists/{id}/move

URI Parameters
HideShow
id
number (required) Example: 1

task list id


PATCH /api/v2/task_lists/1/reposition
Requestsupdates placement

PATCH  /api/v2/task_lists/299/reposition

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": "task_lists",
    "attributes": {
      "move_before_id": 300
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "299",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": 90000,
      "archived_at": null,
      "email_key": "59731874306b52002bc04e85877dfab1"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2054"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Repoisition a task list
PATCH/api/v2/task_lists/{id}/reposition

URI Parameters
HideShow
id
number (required) Example: 1

task list id


Generated by aglio on 01 Apr 2026