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.
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
| Property | Type | Description |
|---|---|---|
PortfolioId | Edm.Guid | Unique identifier of the portfolio. |
Name | Edm.String | Portfolio name. |
Description | Edm.String | Free-text description of the portfolio. |
PortfolioManagerContactId | Edm.Guid | Contact ID of the portfolio manager. |
Endpoints
/odata/PortfolioList all portfolios
Supports OData query options such as $filter, $select, $orderby, $top, and $skip.
GET /odata/Portfolio?$orderby=Name&$top=10
/odata/Portfolio/$countReturn 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'
/odata/Portfolio({key})Get a single portfolio by ID
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | The PortfolioId of the portfolio to retrieve. |
GET /odata/Portfolio(3fa85f64-5717-4562-b3fc-2c963f66afa6)
/odata/PortfolioCreate 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"
}
The response returns the created portfolio including the server-generated PortfolioId.
/odata/Portfolio({key})Update an existing portfolio
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | The PortfolioId of the portfolio to update. |
Send only the properties you want to change:
{
"Description": "Updated scope: includes sustainability projects."
}
/odata/Portfolio({key})Delete a portfolio
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | The 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
| Property | Type | Description |
|---|---|---|
PortfolioTargetId | Edm.Guid | Unique identifier of the portfolio target. |
PortfolioId | Edm.Guid | ID of the parent portfolio this target belongs to. |
FiscalPeriodId | Edm.Guid | ID of the fiscal period this target applies to. |
Description | Edm.String | Free-text description of the target. |
TargetOpex | Edm.Decimal | Operational expenditure target. |
TargetCapex | Edm.Decimal | Capital expenditure target. |
TargetTotal | Edm.Decimal | Total expenditure target. |
Endpoints
/odata/PortfolioTargetList 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
/odata/PortfolioTarget/$countReturn the total number of portfolio targets
GET /odata/PortfolioTarget/$count
/odata/PortfolioTarget({key})Get a single portfolio target by ID
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | The PortfolioTargetId to retrieve. |
/odata/PortfolioTargetCreate 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
}
/odata/PortfolioTarget({key})Update an existing portfolio target
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | The PortfolioTargetId to update. |
{
"TargetTotal": 250000.00
}
/odata/PortfolioTarget({key})Delete a portfolio target
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | The PortfolioTargetId to delete. |
Returns 204 No Content on success.