Skip to main content

Portfolio

Portfolios allow you to group and manage multiple projects under a single umbrella. Use the endpoints below to create, read, update, and delete portfolios.

tip

Portfolios aggregate multiple projects, giving you a consolidated view of progress, budget, and resource allocation. Combine portfolios with PortfolioTarget entries to track budget goals against specific fiscal periods.

Properties

PropertyTypeDescription
PortfolioIdEdm.GuidUnique identifier of the portfolio.
NameEdm.StringPortfolio name.
DescriptionEdm.StringFree-text description of the portfolio.
PortfolioManagerContactIdEdm.GuidContact ID of the portfolio manager.

Endpoints

GET/odata/Portfolio

List all portfolios

Supports OData query options such as $filter, $select, $orderby, $top, and $skip.

GET /odata/Portfolio?$orderby=Name&$top=10
GET/odata/Portfolio/$count

Return the total number of portfolios

Returns a plain integer representing the count. Supports $filter for conditional counting.

GET /odata/Portfolio/$count?$filter=Name eq 'Q4 Initiatives'
GET/odata/Portfolio({key})

Get a single portfolio by ID

ParameterTypeRequiredDescription
keyEdm.GuidThe PortfolioId of the portfolio to retrieve.
GET /odata/Portfolio(3fa85f64-5717-4562-b3fc-2c963f66afa6)
POST/odata/Portfolio

Create a new portfolio

Supply the portfolio properties in the request body. PortfolioId is generated automatically if omitted.

{
"Name": "Digital Transformation 2025",
"Description": "All projects related to the 2025 digital transformation initiative.",
"PortfolioManagerContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
note

The response returns the created portfolio including the server-generated PortfolioId.

PATCH/odata/Portfolio({key})

Update an existing portfolio

ParameterTypeRequiredDescription
keyEdm.GuidThe PortfolioId of the portfolio to update.

Send only the properties you want to change:

{
"Description": "Updated scope: includes sustainability projects."
}
DELETE/odata/Portfolio({key})

Delete a portfolio

ParameterTypeRequiredDescription
keyEdm.GuidThe PortfolioId of the portfolio to delete.

Returns 204 No Content on success.


PortfolioTarget

Portfolio targets define budget goals for a portfolio within a specific fiscal period. Each target captures operational expenditure (Opex), capital expenditure (Capex), and total expenditure values.

Properties

PropertyTypeDescription
PortfolioTargetIdEdm.GuidUnique identifier of the portfolio target.
PortfolioIdEdm.GuidID of the parent portfolio this target belongs to.
FiscalPeriodIdEdm.GuidID of the fiscal period this target applies to.
DescriptionEdm.StringFree-text description of the target.
TargetOpexEdm.DecimalOperational expenditure target.
TargetCapexEdm.DecimalCapital expenditure target.
TargetTotalEdm.DecimalTotal expenditure target.

Endpoints

GET/odata/PortfolioTarget

List all portfolio targets

Supports standard OData query options. Filter by portfolio to retrieve targets for a specific portfolio:

GET /odata/PortfolioTarget?$filter=PortfolioId eq 3fa85f64-5717-4562-b3fc-2c963f66afa6
GET/odata/PortfolioTarget/$count

Return the total number of portfolio targets

GET /odata/PortfolioTarget/$count
GET/odata/PortfolioTarget({key})

Get a single portfolio target by ID

ParameterTypeRequiredDescription
keyEdm.GuidThe PortfolioTargetId to retrieve.
POST/odata/PortfolioTarget

Create a new portfolio target

{
"PortfolioId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"FiscalPeriodId": "c9a1e2b3-4d5f-6789-0abc-def123456789",
"Description": "Q1 2025 Budget Target",
"TargetOpex": 150000.00,
"TargetCapex": 75000.00,
"TargetTotal": 225000.00
}
PATCH/odata/PortfolioTarget({key})

Update an existing portfolio target

ParameterTypeRequiredDescription
keyEdm.GuidThe PortfolioTargetId to update.
{
"TargetTotal": 250000.00
}
DELETE/odata/PortfolioTarget({key})

Delete a portfolio target

ParameterTypeRequiredDescription
keyEdm.GuidThe PortfolioTargetId to delete.

Returns 204 No Content on success.