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]=1862

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": "318",
      "type": "task_lists",
      "attributes": {
        "name": "task list name",
        "position": null,
        "placement": null,
        "archived_at": null,
        "email_key": "413049d0b40ae3f28f91a0e9b44d41c6"
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "1948"
          }
        },
        "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=1862&page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/task_lists?filter%5Bproject_id%5D=1862&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/321

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": "321",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "bbc80c624269e240cb34fbb20c0a83f8"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1950"
        }
      },
      "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": "1867"
        }
      },
      "board": {
        "data": {
          "type": "boards",
          "id": "338"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "323",
    "type": "task_lists",
    "attributes": {
      "name": "test name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "c7d61a52cfcf19c2e076125e5558f1ca"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1951"
        }
      },
      "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",
      "source": {
        "pointer": "data/attributes/name"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/project"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/board"
      }
    }
  ]
}

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/326

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": "326",
    "type": "task_lists",
    "attributes": {
      "name": "new name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "27238d1a09a43d79bcede5b8c9716d90"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1955"
        }
      },
      "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/327/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": "327",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": "2025-09-13T06:17:14.000+02:00",
      "email_key": "080059a7cdeb606dc7a88a2ccfdb51b2"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1956"
        }
      },
      "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/328/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": "328",
    "type": "task_lists",
    "attributes": {
      "name": "Milestone314",
      "position": null,
      "placement": 1010000,
      "archived_at": null,
      "email_key": "3bc448f62123a1938f3a961fbc8d64fa"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1957"
        }
      },
      "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 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": 329,
      "project_id": 1873,
      "board_id": 344,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "330",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "2afa9c2a215a7c141803a36699fa6b22"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1958"
        }
      },
      "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": 331,
      "project_id": 1875,
      "board_id": 346,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "332",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "29294ecbd8e140cfeb88e7ecba75db59"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1959"
        }
      },
      "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": 333,
      "project_id": 1877,
      "board_id": 348,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "335",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "93379a332259fabf0add767c67892971"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1960"
        }
      },
      "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": 336,
      "project_id": 1882,
      "board_id": 351,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "338",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "103710cd4d153ad5470969cfe1947e64"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1961"
        }
      },
      "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 projectreturns errors

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

PATCH  /api/v2/task_lists/340/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": ""
    }
  }
}
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",
      "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/341/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": 342
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "341",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": 90000,
      "archived_at": null,
      "email_key": "da20094687f913fec74f6400c923f67b"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1964"
        }
      },
      "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 13 Sep 2025