{ "opencollection": "1.0.0", "info": { "name": "OpenProject API V3 (Stable) Actions & Capabilities Portfolios API", "version": "3" }, "request": { "auth": { "type": "basic", "username": "{{username}}", "password": "{{password}}" } }, "items": [ { "info": { "name": "Portfolios", "type": "folder" }, "items": [ { "info": { "name": "List portfolios", "type": "http" }, "http": { "method": "GET", "url": "https://qa.openproject-edge.com/api/v3/portfolios", "params": [ { "name": "filters", "value": "[{ \"ancestor\": { \"operator\": \"=\", \"values\": [\"1\"] }\" }]", "type": "query", "description": "JSON specifying filter conditions.\nAccepts the same format as returned by the [queries](https://www.openportfolio.org/docs/api/endpoints/queries/) endpoint.\nCurrently supported filters are:\n\n+ active: based on the active property of the portfolio\n+ ancestor: filters portfolios by their ancestor. A portfolio is not considered to be its own ancestor.\n+ available_project_attributes: filters portfolios based on the activated project attributes.\n+ created_at: based on the time the portfolio was created\n+ favorited: based on the favorited property of the portfolio\n+ id: based on portfolios' id.\n+ latest_activity_at: based on the time the last activity was registered on a portfolio.\n+ name_and_identifier: based on both the name and the identifier.\n+ parent_id: filters portfolios by their parent.\n+ principal: based on members of the portfolio.\n+ project_phase_any: based on the project phases active in a portfolio.\n+ project_status_code: based on status code of the portfolio\n+ storage_id: filters portfolios by linked storages\n+ storage_url: filters portfolios by linked storages identified by the host url\n+ type_id: based on the types active in a portfolio.\n+ user_action: based on the actions the current user has in the portfolio.\n+ visible: based on the visibility for the user (id) provided as the filter value. This filter is useful for admins to identify the portfolios visible to a user.\n\nThere might also be additional filters based on the custom fields that have been configured.\n\nEach defined lifecycle step will also define a filter in this list endpoint. Given that the elements are not\nstatic but rather dynamically created on each OpenProject instance, a list cannot be provided. Those filters follow the schema:\n+ project_start_gate_[id]: a filter on a project phase's start gate active in a portfolio. The id is the id of the phase the gate belongs to.\n+ project_finish_gate_[id]: a filter on a project phase's finish gate active in a portfolio. The id is the id of the phase the gate belongs to.\n+ project_phase_[id]: a filter on a project phase active in a portfolio. The id is the id of the phase queried for." }, { "name": "sortBy", "value": "[[\"id\", \"asc\"]]", "type": "query", "description": "JSON specifying sort criteria.\nCurrently supported orders are:\n\n+ id\n+ name\n+ typeahead (sorting by hierarchy and name)\n+ created_at\n+ public\n+ latest_activity_at\n+ required_disk_space\n\nThere might also be additional orders based on the custom fields that have been configured." }, { "name": "select", "value": "total,elements/identifier,elements/name", "type": "query", "description": "Comma separated list of properties to include." } ] }, "docs": "Returns a collection of portfolios. The collection can be filtered via query parameters similar to how work packages are filtered. In addition to the provided filter, the result set is always limited to only contain portfolios the client is allowed to see." }, { "info": { "name": "View portfolio", "type": "http" }, "http": { "method": "GET", "url": "https://qa.openproject-edge.com/api/v3/portfolios/:id", "params": [ { "name": "id", "value": "1", "type": "path", "description": "Portfolio id" } ] }, "docs": "View portfolio" }, { "info": { "name": "Update Portfolio", "type": "http" }, "http": { "method": "PATCH", "url": "https://qa.openproject-edge.com/api/v3/portfolios/:id", "params": [ { "name": "id", "value": "1", "type": "path", "description": "Portfolio id" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates the given portfolio by applying the attributes provided in the body." }, { "info": { "name": "Delete Portfolio", "type": "http" }, "http": { "method": "DELETE", "url": "https://qa.openproject-edge.com/api/v3/portfolios/:id", "params": [ { "name": "id", "value": "1", "type": "path", "description": "Portfolio id" } ] }, "docs": "Deletes the portfolio permanently. As this is a lengthy process, the actual deletion is carried out asynchronously.\nSo the portfolio might exist well after the request has returned successfully. To prevent unwanted changes to\nthe portfolio scheduled for deletion, it is archived at once." }, { "info": { "name": "Portfolio update form", "type": "http" }, "http": { "method": "POST", "url": "https://qa.openproject-edge.com/api/v3/portfolios/:id/form", "params": [ { "name": "id", "value": "1", "type": "path", "description": "Portfolio id" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Portfolio update form" } ] } ], "bundled": true }