Skip to content

Reference

Portfolio

Read portfolio companies and a fund's value.

These routes read the portfolio. They do not create a holding or post a valuation entry.

MethodPathWhat it does
GET/api/v1/x/portfolio/companiesPortfolio companies. Optional fundId
GET/api/v1/x/portfolio/companies/{id}One portfolio company
GET/api/v1/x/portfolio/valueValue series for a fund

Companies need pm.portfolio_company.view and the token scope portfolio:read. Value needs the same permission and finance:read.

cursor and starting_after on the company list work the same way as records.

A portfolio company includes version. It starts at 1. This API does not patch a portfolio company, so If-Match is not used here.

Value requires fundId. from and to are yyyy-MM-dd. markCurrentShares=true marks the current share count. interval is day, week, month, quarter, or year. Any other value is 400 invalid_parameter.

day is one point per weekday. week is each Friday. month is each month end. quarter is each quarter end. year is 31 December. Omitting interval uses weekdays when the range is 120 days or less, Fridays when it is 400 days or less, and month ends after that. The first and last dates are always included.

GET /api/v1/x/portfolio/value?fundId=00000000-0000-4000-8000-000000000010&from=2025-01-01&to=2026-01-01&interval=month

The series below is shortened. January 1 is the start of the range, so it is included. The month ends between January and the end of the range are left out of the example. A real response includes those month ends, and it includes the other fields on each point.

{
"fundId": "00000000-0000-4000-8000-000000000010",
"fundName": "Harbor Lane Fund I",
"currency": "USD",
"from": "2025-01-01",
"to": "2026-01-01",
"summary": { "nav": 120000000, "moic": 1.2 },
"series": [
{ "date": "2025-01-01", "nav": 100000000 },
{ "date": "2025-01-31", "nav": 100000000 },
{ "date": "2026-01-01", "nav": 120000000 }
]
}