API Documentation

API Endpoint

Folders

Folders

The Folder object represents a folder within the project management system. It sits between Projects and Task lists, meaning it belongs to a project and contains multiple task lists.

You can find out more about folders in our Help documentation: Folders

Following diagram shows folders in our data hierarchy:

Folder diagram

Supported filter params

  • id

  • project_id (array)

  • status (active: 1, archived: 2)

Supported relationship filter params

  • project
GET /api/v2/folders
Requestsreturns folders

GET  /api/v2/folders

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": "485",
      "type": "folders",
      "attributes": {
        "name": "Board461",
        "position": null,
        "placement": null,
        "archived_at": null,
        "hidden": false
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2334"
          }
        },
        "project": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "links": {
    "first": "http://api-test.productive.io/api/v2/folders?page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/folders?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 folders
GET/api/v2/folders


GET /api/v2/folders/1
Requestsreturns folder

GET  /api/v2/folders/486

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": "486",
    "type": "folders",
    "attributes": {
      "name": "folder name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2335"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Gets a folder
GET/api/v2/folders/{id}

URI Parameters
HideShow
id
number (required) Example: 1

folder id


POST /api/v2/folders
Requestscreates folderreturns errorreturns error

POST  /api/v2/folders

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": "folders",
    "attributes": {
      "name": "test name"
    },
    "relationships": {
      "project": {
        "data": {
          "type": "projects",
          "id": "1709"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "488",
    "type": "folders",
    "attributes": {
      "name": "test name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2336"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/folders

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": "folders",
    "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"
      }
    }
  ]
}

POST  /api/v2/folders

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": "folders",
    "attributes": {
      "name": "test name"
    },
    "relationships": {
      "project": {
        "data": {
          "type": "projects",
          "id": "0"
        }
      }
    }
  }
}
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/project"
      }
    }
  ]
}

Create a folder
POST/api/v2/folders

URI Parameters
HideShow
name
string (required) Example: Name

name


PATCH /api/v2/folders/1
Requestsupdates folderreturns error

PATCH  /api/v2/folders/489

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": "folders",
    "attributes": {
      "name": "new name"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "489",
    "type": "folders",
    "attributes": {
      "name": "new name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2339"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/folders/490

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": "folders",
    "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"
      }
    }
  ]
}

Update a folder
PATCH/api/v2/folders/{id}

URI Parameters
HideShow
id
number (required) Example: 1

folder id


PATCH /api/v2/folders/1/archive
Requestsarchives folder

PATCH  /api/v2/folders/491/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": "491",
    "type": "folders",
    "attributes": {
      "name": "folder name",
      "position": null,
      "placement": null,
      "archived_at": "2026-03-21T05:21:13.000+01:00",
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2341"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Archives a folder
PATCH/api/v2/folders/{id}/archive

URI Parameters
HideShow
id
number (required) Example: 1

folder id


PATCH /api/v2/folders/1/restore
Requestsrestores folder

PATCH  /api/v2/folders/492/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": "492",
    "type": "folders",
    "attributes": {
      "name": "folder name",
      "position": null,
      "placement": 1010000,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2342"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Restores a folder
PATCH/api/v2/folders/{id}/restore

URI Parameters
HideShow
id
number (required) Example: 1

folder id


POST /api/v2/folders/copy
Requestscopies folder and broadcasts created eventcopies folder and broadcasts created event

POST  /api/v2/folders/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": "folders",
    "attributes": {
      "name": "copy folder",
      "template_id": 493,
      "project_id": 1714
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "494",
    "type": "folders",
    "attributes": {
      "name": "copy folder",
      "position": null,
      "placement": null,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2343"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/folders/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": "folders",
    "attributes": {
      "name": "copy folder",
      "template_id": 495,
      "project_id": 1716
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "496",
    "type": "folders",
    "attributes": {
      "name": "copy folder",
      "position": null,
      "placement": null,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2344"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Copy a folder
POST/api/v2/folders/copy

URI Parameters
HideShow
id
number (required) Example: 1

folder id


PATCH /api/v2/folders/1/move
Requestsmoves folder to new project and broadcasts updated eventdoes not broadcast and returns errors

PATCH  /api/v2/folders/497/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": "folders",
    "attributes": {
      "project_id": 1718
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "497",
    "type": "folders",
    "attributes": {
      "name": "folder name",
      "position": null,
      "placement": null,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2345"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/folders/498/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": "folders",
    "attributes": {
      "project_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",
      "meta": {},
      "source": {
        "pointer": "data/attributes/project_id"
      }
    }
  ]
}

Move a folder
PATCH/api/v2/folders/{id}/move

URI Parameters
HideShow
id
number (required) Example: 1

folder id


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

PATCH  /api/v2/folders/499/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": "folders",
    "attributes": {
      "move_before_id": 500
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "499",
    "type": "folders",
    "attributes": {
      "name": "folder name",
      "position": null,
      "placement": 90000,
      "archived_at": null,
      "hidden": false
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2347"
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Reposition a folder
PATCH/api/v2/folders/{id}/reposition

URI Parameters
HideShow
id
number (required) Example: 1

folder id


Generated by aglio on 21 Mar 2026