OpenProject Portfolios API

Portfolios are one of the types of [workspaces](https://www.openproject.org/docs/api/endpoints/workspaces) in OpenProject structuring the information (e.g. work packages, wikis) into smaller sets. They are typically used to group, structure and manage sub-portfolios, programs and projects that target similar strategic goals of the organization. As containers, they also control behaviour of the elements within them. One of the most important aspects of this is that portfolios limit permissions by having members with a certain permission set (roles) assigned to them. ## Actions | Link | Description | Condition | |:--------------------------: |----------------------------------------------------------------------| --------------------------------- | | update | Form endpoint that aids in updating this portfolio | **Permission**: edit workspace | | updateImmediately | Directly update this portfolio | **Permission**: edit workspace | | delete | Delete this portfolio | **Permission**: admin | | favor | Mark this portfolio as favorited by the current user | **Permission**: none but login is required, only present if the portfolio is not yet favorited | | disfavor | Mark this portfolio as no longer favorited by the current user | **Permission**: none but login is required, only present if the portfolio is favorited | | createWorkPackage | Form endpoint that aids in preparing and creating a work package | **Permission**: add work packages | | createWorkPackageImmediately | Directly creates a work package in the portfolio | **Permission**: add work packages | ## Linked Properties | Link | Description | Type | Constraints | Supported operations |Condition | | :----------: | ------------- | ---- | ----------- | -------------------- |----------------------------------------- | | self | This portfolio | Portfolio | not null | READ | | | ancestors | Array of all ancestors of the portfolio, down from the root node (first element) to the parent (last element). | Collection | not null | READ | **Permission** view portfolio on the ancestor portfolio. Non visible portfolios will be omitted | | categories | Categories available in this portfolio | Collection | not null | READ | | | types | Types available in this portfolio | Collection | not null | READ | **Permission**: view work packages or manage types | | versions | Versions available in this portfolio | Collection | not null | READ | **Permission**: view work packages or manage versions | | memberships | Memberships in the portfolio | Collection | not null | READ | **Permission**: view members | | workPackages | Work Packages of this portfolio | Collection | not null | READ | | | parent | Parent portfolio of the portfolio | Portfolio | | READ/WRITE | **Permission** edit workspace | | status | Denotes the status of the portfolio, so whether the portfolio is on track, at risk or is having trouble. | PortfolioStatus | | READ/WRITE | **Permission** edit workspace | Depending on custom fields defined for portfolios, additional links might exist. Note, that the parent and ancestor links may contain the "undisclosed uri" `urn:openportfolio-org:api:v3:undisclosed` in case an ancestor portfolio is defined but the client lacks permission to see it. See the [general introduction into links' properties](https://www.openportfolio.org/docs/api/basic-objects/#local-properties) for more information. ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------------------:| ------------- | ---- | ----------- | -------------------- | | id | Portfolios' id | Integer | x > 0 | READ/WRITE | | identifier | | String | | READ/WRITE | | name | | String | | READ/WRITE | | active | Indicates whether the portfolio is currently active or already archived | Boolean | | READ/WRITE | | favorited | Indicates whether the portfolio is favorited by the current user | Boolean | | READ | | statusExplanation | A text detailing and explaining why the portfolio has the reported status | Formattable | | READ/WRITE | | public | Indicates whether the portfolio is accessible for everybody | Boolean | | READ/WRITE | | description | | Formattable | | READ/WRITE | | createdAt | Time of creation | DateTime | | READ | | updatedAt | Time of the most recent change to the portfolio | DateTime | | READ | Depending on custom fields defined for portfolios, additional properties might exist.

Business capability
Portfolio Management BC-900.10

Operations 5

GET /api/v3/portfolios List portfolios #
GET /api/v3/portfolios/{id} View portfolio #
PATCH /api/v3/portfolios/{id} Update Portfolio #
DELETE /api/v3/portfolios/{id} Delete Portfolio #
POST /api/v3/portfolios/{id}/form Portfolio update form #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openproject-portfolios-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openproject-portfolios-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: You're looking at the current **stable** documentation of the OpenProject APIv3.
  title: OpenProject API V3 (Stable) Portfolios API
  version: '3'
servers:
- url: https://qa.openproject-edge.com
  description: Edge QA instance
- url: https://qa.openproject-stage.com
  description: Staging instance
- url: https://community.openproject.org
  description: Community instance
security:
- BasicAuth: []
tags:


# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openproject/refs/heads/main/openapi/openproject-portfolios-api-openapi.yml