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

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": "74809f09b0e5dc9d81a8e5109e1b8700"
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "1968"
          }
        },
        "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=1883&page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/task_lists?filter%5Bproject_id%5D=1883&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": "a831b743d77d750a0cd5de3d5e731c80"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1970"
        }
      },
      "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": "1888"
        }
      },
      "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": "f0ea2af5a39f1ccbc48bd3e84f43bdc9"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1971"
        }
      },
      "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": "175ba338f1787c5194ece756dab3150c"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1975"
        }
      },
      "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-08-22T06:18:23.000+02:00",
      "email_key": "76bb5aba007df397a5e0a496690a4dde"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1976"
        }
      },
      "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": "fce368c2b4bb841f7ff37b7e4c296a01"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1977"
        }
      },
      "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": 1894,
      "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": "4b8d6426c490dd1c1a96ada0859dd162"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1978"
        }
      },
      "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": 1896,
      "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": "92caeb0dfb1dae387e95203fcaf5fad7"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1979"
        }
      },
      "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": 1898,
      "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": "590eb5bb63542b3ba0620be9ac6b5eb0"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1980"
        }
      },
      "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": 1903,
      "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": "b221639c6756548216d028039edf6485"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1981"
        }
      },
      "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": "201542fd056c531c9bb8f44a62ce2557"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1982"
        }
      },
      "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": "b664bc7ecdaa887cf51ba14ad609e9d3"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1984"
        }
      },
      "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 22 Aug 2025