Conditionally sync full or changed portfolios
Changed onA read-only POST: send knownVersions from your saved portfolios. Changed portfolios return their full payload; unchanged ones appear only in unchangedEmails, so keep their saved data. Without changeCursor, scan the full roster and retain the first page’s nextCursor. With changeCursor, scan affected emails since the saved revision; retain that changeCursor and use the first incremental page’s nextCursor as windowCursor for every later page. Advance offset by limit even when portfolios is empty. Save the new cursor and apply removals only after the entire scan succeeds. Errors per LP are always returned, even for matching versions. There is no updatedSince timestamp filter: the durable change cursor tracks affected LPs. FULL_SYNC_REQUIRED asks for a full conditional scan (including on UTC day rollover); ROSTER_CHANGED asks you to restart the current scan. Required key scope: lp:read.
Request
- Base URL: https://capitalcompany.ai
- URL: https://capitalcompany.ai/api/v2/lp/portfolios
- Auth: one of:
- HTTP bearer
- API key in header x-api-key
Request body
Response
Same shape as GET. In incremental mode totalCount counts affected emails including removals; in full mode it counts the roster. knownVersions is required even when empty. Tokens are opaque and team-scoped.
Changes
- warning
added the new
from-invested-capitalenum value to the/////////response property for the response status - warning
added the new
initial-investmentenum value to the/////////response property for the response status
- warning