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

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": "95ee708ce64339c8e26d7a85e2a8cd6b"
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "1967"
          }
        },
        "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=1383&page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/task_lists?filter%5Bproject_id%5D=1383&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": "2c8c820316beeddac2447d4ae386794f"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1969"
        }
      },
      "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": "1388"
        }
      },
      "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": "281bf36e61dfe2cd144869224846f467"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1970"
        }
      },
      "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"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "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": "1432bf177460d969ac4e089ed6db420e"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1974"
        }
      },
      "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": "2025-12-06T05:18:35.000+01:00",
      "email_key": "316a64b6f91c9bb310b87e0bde08c873"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1975"
        }
      },
      "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": "44463f2909482bce2e87e66707643a36"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1976"
        }
      },
      "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": 1394,
      "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": "6acdc33c4a8f8f8b7466af15bd2b0025"
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1977"
        }
      },
      "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": 1395,
      "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": "d97e7db671e442a1b36baaa3930a7b60"
    },
    "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": 323,
      "project_id": 1397,
      "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": "ff0b8e7a4af2d450f02da760e1def762"
    },
    "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": 325,
      "project_id": 1399,
      "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": "7d659a1cc7a71f5c6c59573250d60b3d"
    },
    "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": 328,
      "project_id": 1402,
      "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": "e57cc62a7cd90adc2428aa21118076cf"
    },
    "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/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": "6ce6ede1c6db53e753cf4faa81a68114"
    },
    "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/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": "f1c03e333e788bb63045cad4782fff5b"
    },
    "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 06 Dec 2025