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

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

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": "311",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "d2d580d28f07a86b4dc7008f08f6d6f1"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1985"
        }
      },
      "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": "1406"
        }
      },
      "board": {
        "data": {
          "type": "boards",
          "id": "328"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "313",
    "type": "task_lists",
    "attributes": {
      "name": "test name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "0be29cf174e43cf46c72e427f31c27ff"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1986"
        }
      },
      "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/316

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": "316",
    "type": "task_lists",
    "attributes": {
      "name": "new name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "7d39db161c4d912eb3d159b9b9473cd9"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1990"
        }
      },
      "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/317/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": "317",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": "2026-02-04T05:16:49.000+01:00",
      "email_key": "dd6abd8bf74edb17b1191b124940052f"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1991"
        }
      },
      "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/318/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": "318",
    "type": "task_lists",
    "attributes": {
      "name": "Milestone304",
      "position": null,
      "placement": 1010000,
      "archived_at": null,
      "email_key": "1a461eb78bb2e98464392391f9b92d2c"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1992"
        }
      },
      "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": 319,
      "project_id": 1412,
      "board_id": 334,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "320",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "08ef2d69beac434453235abc78c7d1b9"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1993"
        }
      },
      "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": 321,
      "project_id": 1413,
      "folder_id": 335,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "322",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "7b9ad39c101526b7608b81538ccdfee9"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1994"
        }
      },
      "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": 323,
      "project_id": 1415,
      "board_id": 337,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "324",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "a1e95b0aaf2530985ec0038bbde63bb3"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1995"
        }
      },
      "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": 325,
      "project_id": 1417,
      "board_id": 339,
      "copy_open_tasks": true,
      "copy_assignees": true
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "327",
    "type": "task_lists",
    "attributes": {
      "name": "copy task list",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "c16929c12c3ecaff9e86ac1a27b590c1"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1996"
        }
      },
      "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": 328,
      "project_id": 1420,
      "board_id": 342,
      "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": "20909b3c298ed84e6e435017e69c0e6b"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1997"
        }
      },
      "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/331/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": 345
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "331",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "email_key": "cd99a02e23af42b278ee7c30e2b0f961"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1998"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      },
      "board": {
        "meta": {
          "included": false
        }
      },
      "folder": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/task_lists/332/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",
      "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/333/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": 334
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "333",
    "type": "task_lists",
    "attributes": {
      "name": "task list name",
      "position": null,
      "placement": 90000,
      "archived_at": null,
      "email_key": "3a5de53d713da2a14f6db75aa29c3b7e"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2000"
        }
      },
      "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 04 Feb 2026