{"openapi":"3.1.0","info":{"title":"Capital Company external API","version":"2","description":"Complete external API reference: v2 LP reads/writes, portfolio sync, documents, invitations, fund metadata and management; frozen v1 LP endpoints; separately authorized Form D automation. Use v2 for new LP integrations. Team-key scopes are independent: lp:read, lp:write, funds:read, funds:write. Fund management additionally requires an active acting team member and their current web app permissions. V2 baseline limits are 600/hour and 5,000/day per key, across endpoints. Follow RateLimit-* and Retry-After. There is no sandbox implied by this document: write operations change data and may deliver documents or initiate filing."},"servers":[{"url":"https://capitalcompany.ai"}],"tags":[{"name":"LPs"},{"name":"Portfolio sync"},{"name":"Fund metadata"},{"name":"Fund management"},{"name":"Legacy LP (v1)"},{"name":"Form D"}],"paths":{"/api/v2/lp/list":{"get":{"operationId":"lpList","tags":["LPs"],"summary":"List LP accounts and commitment progress","description":"Includes unverified invitation emails that resolve to an account. Unresolved invitations are listed separately by /lp/invitations. Sorted by display name, email and account ID. An account can have multiple emails with different portfolios; do not deduplicate solely by LP ID. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum rows per page (1–500). Omitted means 100.","schema":{"description":"Maximum rows per page (1–500). Omitted means 100.","type":"integer","minimum":1,"maximum":500}},{"name":"offset","in":"query","required":false,"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","schema":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Paginated LP accounts, prefixed entity IDs, commitment stages, KYC/agreement status and configured fee terms.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpListResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_PARAMS: request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/lp/portfolio":{"get":{"operationId":"lpPortfolio","tags":["LPs"],"summary":"Read an LP portfolio","description":"Returns investments visible through an invitation email in the key’s team, including unverified account emails. Valuations use the investor portal calculation. Holdings exclude subscriptions with no effective date. In-flight commitments appear separately. Summary totals across currencies are not FX-converted; use fundCurrencyCode/currencyCode for currency-aware aggregation. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"email","in":"query","required":true,"description":"Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.","schema":{"description":"Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.","type":"string"}},{"name":"fund_id","in":"query","required":false,"description":"Optional fnd_<uuid> from funds[].id. Takes precedence over fund_legal_name. A fund outside this LP’s team-visible portfolio returns FUND_NOT_FOUND.","schema":{"description":"Optional fnd_<uuid> from funds[].id. Takes precedence over fund_legal_name. A fund outside this LP’s team-visible portfolio returns FUND_NOT_FOUND.","type":"string"}},{"name":"fund_legal_name","in":"query","required":false,"description":"Optional case-insensitive exact legal name. All matching funds are included; prefer fund_id for an unambiguous selection.","schema":{"description":"Optional case-insensitive exact legal name. All matching funds are included; prefer fund_id for an unambiguous selection.","type":"string"}}],"responses":{"200":{"description":"Account identity, summary, fund and commitment totals/fee terms, holdings and valuations, tax-document metadata, pending signatures and unpaid capital calls. Percentages/returns are fractions. IDs use lp_, fnd_, cmt_, ent_, hld_, co_, fee_ and fcp_.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpPortfolioResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_PARAMS: missing or invalid email, fund identifier or query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"LP_NOT_FOUND, NO_PORTFOLIO_DATA or FUND_NOT_FOUND: the account, portfolio or requested fund is not visible in the key’s team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/lp/portfolios":{"get":{"operationId":"lpPortfolios","tags":["Portfolio sync"],"summary":"Read a page of all LP portfolios","description":"Full roster scan, up to 25 LP emails per page. Keep the FIRST page’s nextCursor until the entire scan succeeds; send its rosterVersion on later pages and advance offset by limit. Only save the cursor and reconcile removals after all pages succeed. ROSTER_CHANGED requires restarting from offset 0. Each portfolio can independently succeed or fail inside an HTTP 200 response. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum roster or affected-email rows examined per page (1–25). Omitted means 10; unchanged and removed rows also count.","schema":{"description":"Maximum roster or affected-email rows examined per page (1–25). Omitted means 10; unchanged and removed rows also count.","type":"integer","minimum":1,"maximum":25}},{"name":"offset","in":"query","required":false,"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","schema":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"rosterVersion","in":"query","required":false,"description":"Full-scan roster token returned by the first page. Send on later full-scan pages; on ROSTER_CHANGED restart at offset 0 without it. Do not combine with changeCursor.","schema":{"description":"Full-scan roster token returned by the first page. Send on later full-scan pages; on ROSTER_CHANGED restart at offset 0 without it. Do not combine with changeCursor.","type":"string","pattern":"^[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Versioned portfolios, roster token, durable change cursor and pagination. totalCount counts roster entries. unchangedEmails and removedEmails are empty for GET.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpPortfoliosResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_PARAMS: request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"409":{"description":"ROSTER_CHANGED: restart at offset 0 without rosterVersion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}},"post":{"operationId":"lpPortfolioSync","tags":["Portfolio sync"],"summary":"Conditionally sync full or changed portfolios","description":"A 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.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpPortfolioSync"},"example":{"knownVersions":[{"email":"investor@example.com","version":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],"limit":10,"offset":0}}}},"responses":{"200":{"description":"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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpPortfolioSyncResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or INVALID_CURSOR: check the body, cursor ownership and pagination constraints.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"405":{"description":"METHOD_NOT_ALLOWED: this endpoint requires POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Allow":{"description":"Allowed HTTP method: POST.","schema":{"type":"string"}}}},"409":{"description":"ROSTER_CHANGED: restart the scan. FULL_SYNC_REQUIRED: complete a full conditional scan without changeCursor, then save its first-page cursor. UTC day rollover, shared valuation changes and team-wide invalidations can require this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/lp/commit":{"post":{"operationId":"lpCommit","tags":["LPs"],"summary":"Submit or revise a commitment amount","description":"Uses the investor portal mutation. Requires a verified LP account and eligible invitation. The LP may revise while editing is enabled and the agreement is not fully signed. Repeating the same amount is unchanged. Changing the amount may void the previous agreement and send a replacement. Check subscriptionAgreement delivery fields even after HTTP 200; a saved commitment can outlive a delivery failure. Required key scope: lp:write.","x-required-scope":"lp:write","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpCommit"},"example":{"email":"investor@example.com","fund_legal_name":"Example Fund I, LP","amount":25000}}}},"responses":{"200":{"description":"Raw commitment/fund UUIDs, saved amount, created/updated/unchanged outcome, agreement delivery and next steps.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpCommitResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: correct the body or the subscription amount.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"LP_NOT_FOUND, FUND_NOT_FOUND or PENDING_COMMITMENT_NOT_FOUND: a verified account, team fund and eligible invitation are required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"405":{"description":"METHOD_NOT_ALLOWED: this endpoint requires POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Allow":{"description":"Allowed HTTP method: POST.","schema":{"type":"string"}}}},"409":{"description":"COMMITMENT_NOT_PENDING: investor editing is disabled or the subscription agreement is fully signed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/lp/invitations":{"get":{"operationId":"lpInvitations","tags":["LPs"],"summary":"Read unresolved invitations and their commitments","description":"Active invitations with commitments that cannot resolve to one LP account. missing-user-account means no account exists; ambiguous-email means ownership is not uniquely resolved. These records are not synthetic LP accounts. Join by commitmentId to avoid double-counting once an invitation resolves and appears in /lp/list. Sorted by invitation ID and commitment ID. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum rows per page (1–500). Omitted means 100.","schema":{"description":"Maximum rows per page (1–500). Omitted means 100.","type":"integer","minimum":1,"maximum":500}},{"name":"offset","in":"query","required":false,"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","schema":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Invitation, entity and fund identities, subscription amount/currency, reason, stage, KYC/agreement status and configured fee terms.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpInvitationsResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_PARAMS: request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/lp/documents":{"get":{"operationId":"lpDocuments","tags":["LPs"],"summary":"List investor documents and download links","description":"Allowlisted operating agreements, memoranda, current executed subscription agreements and durable closing notices for active, non-revoked commitments. Arbitrary untyped data-room files, wire instructions and EIN letters are excluded. Downloads expire; refresh the listing when needed. Sorted by document ID and fund ID. Do not cache or expose download links publicly. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"email","in":"query","required":true,"description":"Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.","schema":{"description":"Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.","type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum documents per page (1–100). Omitted means 50.","schema":{"description":"Maximum documents per page (1–100). Omitted means 50.","type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","schema":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Paginated typed documents with temporary signed download URLs and expiry in seconds (currently 3600).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpDocumentsResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_PARAMS: request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"LP_NOT_FOUND: no account portfolio for this email in the key’s team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/funds":{"get":{"operationId":"lpFunds","tags":["Fund metadata"],"summary":"Read fund pricing and close dates","description":"Team-level fund metadata shared across investors, sorted by fund ID. Paid company share prices take precedence over anticipated quotes for the same company/security. Includes all recorded purchases rather than inventing an average. Missing price data must be entered by the investment manager. Fee-inclusive anticipated pricing retains the quoted amount but cannot supply a fee-exclusive pricePerShare. finalCloseDate is fund closure, not the last LP marked closed. This read endpoint uses lp:read; fund management has separate funds:* scopes. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum rows per page (1–500). Omitted means 100.","schema":{"description":"Maximum rows per page (1–500). Omitted means 100.","type":"integer","minimum":1,"maximum":500}},{"name":"offset","in":"query","required":false,"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","schema":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Paginated funds, reporting currency, finalCloseDate, lastLpClosedAt and company-share entryPrices with source and fee inclusion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lpFundsResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_PARAMS: request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/funds/create":{"post":{"operationId":"create","tags":["Fund management"],"summary":"Create a fund","description":"Calls the same authorized creation mutation as the web app. Responds with done and the fund identifiers, or needs-input before anything is created. Keep creationIdempotencyKey across every retry and confirmation. Document generation and signature delivery continue asynchronously. Required key scope: funds:write.","x-required-scope":"funds:write","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create"},"example":{"creationIdempotencyKey":"a9699e36-dc7a-43c8-a949-c9c6e0b0f135","legalName":"Acme Ventures I, LP","isTestFund":false,"testFundConfirmation":null,"expectedAllocation":1000000,"memoAsMarkdown":"A primary investment fund.","usesFundUnits":false,"strategy":{"type":"primary","isVentureCapitalFund":true},"minAccreditationLevel":"accredited","fundClasses":[{"name":"Default","featuredCompany":null,"templateFees":[]}],"requiresBeneficialOwnerCheck":false,"requiresCfiusCheck":false,"requiresBeneficialOwnerId":"non-us-natural-persons","templateAgreementTogglesById":{},"administratorEntityId":"3c2b3a40-8ba9-4f17-b602-b3ad9dc3d06c","managers":{"kind":"roster","internalEntries":[{"entityId":"da51940b-1d85-4d5a-8ab2-a64d54cbbf7b","role":"management_company"}],"withinTeamAllocations":[],"feeRecipientInvites":null,"sendFeeAllocationAgreement":false},"newManager":null,"registeredAgentEntityId":null,"vehicle":{"type":"blind-pool","address":{"line1":"1 Main St","city":"New York","region":"NY","postalCode":"10001","countryCode":"US"}},"isContinuationVehiclePurchasingVehicle":false,"isRolloverVehicle":false,"taxContinuation":null,"useTemplateDocuments":true}}}},"responses":{"200":{"description":"data is {status:\"done\",result:{fundId:\"fnd_<uuid>\",fundSlug:string}} or {status:\"needs-input\",requirements:[{kind,subject}]}. confirm-test-fund supplies subject.legalName; gp-member-award-signatories supplies subject.generalPartnerEntityIds; entity-operating-agreement-emails supplies subject.entities [{id,legalName,slug}]. Resubmit the original complete input with the requested answers and the same creation key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/createResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"405":{"description":"METHOD_NOT_ALLOWED: this endpoint requires POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Allow":{"description":"Allowed HTTP method: POST.","schema":{"type":"string"}}}},"409":{"description":"CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/funds/update":{"post":{"operationId":"update","tags":["Fund management"],"summary":"Edit fund Details","description":"One atomic patch through the web app update mutation. Only supported Details fields are accepted. Omitted fields are not submitted as edits; the shared mutation still normalizes dependent settings. Null semantics are documented for each field. Permissions and effective carry configuration are validated again under the write transaction. Terminated funds are read-only. Required key scope: funds:write.","x-required-scope":"funds:write","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update"},"example":{"fundId":"fnd_a161c706-6d45-41e0-bc4f-c8a0a6e7d1c0","changes":{"fiscalYearEndMonth":12,"fiscalYearEndDay":31,"investorQuestionnaireCustomQuestionAsMarkdown":"Describe any additional beneficial owners."}}}}},"responses":{"200":{"description":"data is {status:\"done\",fundId:\"fnd_<uuid>\"}. Read /funds/details to observe server-normalized settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/updateResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"405":{"description":"METHOD_NOT_ALLOWED: this endpoint requires POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Allow":{"description":"Allowed HTTP method: POST.","schema":{"type":"string"}}}},"409":{"description":"CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/funds/setup":{"get":{"operationId":"setup","tags":["Fund management"],"summary":"Get creation defaults and agreement elections","description":"Returns the web app creation draft, its source fund, the team administration reserve and available agreement toggles. The draft is a starting point: add legalName, expectedAllocation, a new creationIdempotencyKey and any missing address/manager choices. Requires the acting member to have full-team settings edit access, as opening the creation form does. Required key scope: funds:read.","x-required-scope":"funds:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[],"responses":{"200":{"description":"data is {draft,carriedFrom,canManuallyMarkTestFund,adminReserveAmount,agreementTemplateToggles}. draft uses the create input fields except the three attempt-specific values and possibly an incomplete vehicle address. carriedFrom is null or {fundId,legalName}. Each toggle includes id,agreementTemplateId,variableName,name,description,defaultValue,editable,sortIndex,typeName,documentId. Toggle UUIDs key templateAgreementTogglesById.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/setupResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"409":{"description":"CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/funds/details":{"get":{"operationId":"details","tags":["Fund management"],"summary":"Read current Details settings","description":"Returns the fund identity, lifecycle flags, supported settings and editableFields for the acting member. Custom questionnaire text is omitted without LP-portal view access. editableFields is advisory; the mutation rechecks current permissions. This response does not certify completion of background document generation. Required key scope: funds:read.","x-required-scope":"funds:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"fundId","in":"query","required":true,"description":"Fund identifier with the fnd_ prefix, returned by creation or the existing /funds endpoint.","schema":{"type":"string","description":"Fund identifier with the fnd_ prefix, returned by creation or the existing /funds endpoint."}}],"responses":{"200":{"description":"data is {fundId,legalName,fundSlug,terminatedAt,isFullyClosed,settings,editableFields}. settings contains the supported patch properties visible to the member; dates are ISO 8601 strings or null. editableFields lists currently editable property names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/detailsResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"409":{"description":"CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/funds/entities":{"get":{"operationId":"entities","tags":["Fund management"],"summary":"Discover selectable entities","description":"Searches the same authorized entity directory as the web app, including platform-visible administrators and registered agents. Results use raw UUIDs for creation/update inputs. Being listed is not sufficient for every role: the mutation checks role-specific eligibility, master status and address completeness. Required key scope: funds:read.","x-required-scope":"funds:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"query","in":"query","required":true,"description":"Search text. An empty string lists the first available choices.","schema":{"type":"string","description":"Search text. An empty string lists the first available choices."}},{"name":"limit","in":"query","required":true,"description":"Maximum number of discovery results, from 1 through 100. Supply explicitly.","schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of discovery results, from 1 through 100. Supply explicitly."}},{"name":"offset","in":"query","required":true,"description":"Zero-based number of discovery results to skip. Increase by the returned count; stop on a short page.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Zero-based number of discovery results to skip. Increase by the returned count; stop on a short page."}}],"responses":{"200":{"description":"data is {entities:[{id,legalName,slug,teamId,teamName,teamSlug}],pagination:{query,limit,offset}}. Team properties may be null for teamless entities. id is a raw UUID. Stop pagination on a short page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitiesResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"409":{"description":"CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v2/funds/companies":{"get":{"operationId":"companies","tags":["Fund management"],"summary":"Discover portfolio companies","description":"Searches the web app company directory. Use bestCompanySourceId as featuredCompany.companySourceId, and confirm the companyLegalName. This endpoint does not create or change a company. Required key scope: funds:read.","x-required-scope":"funds:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"query","in":"query","required":true,"description":"Search text. An empty string lists the first available choices.","schema":{"type":"string","description":"Search text. An empty string lists the first available choices."}},{"name":"limit","in":"query","required":true,"description":"Maximum number of discovery results, from 1 through 100. Supply explicitly.","schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of discovery results, from 1 through 100. Supply explicitly."}},{"name":"offset","in":"query","required":true,"description":"Zero-based number of discovery results to skip. Increase by the returned count; stop on a short page.","schema":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Zero-based number of discovery results to skip. Increase by the returned count; stop on a short page."}}],"responses":{"200":{"description":"data is {companies:[{id,bestCompanySourceId,name,companyLegalName,domain}],pagination:{query,limit,offset}}. companyLegalName and domain may be null; confirm the legal name before submitting a featured investment. IDs are raw UUIDs. Stop on a short page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/companiesResponse"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"404":{"description":"FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"409":{"description":"CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}},"429":{"description":"RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait until both rolling windows permit another request.","schema":{"type":"integer"}}}},"500":{"description":"Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"RateLimit-Limit":{"description":"Request ceiling of the currently constraining rolling window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in that window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the oldest request ages out of that window; not a Unix timestamp.","schema":{"type":"integer"}}}}}}},"/api/v1/lp/list":{"get":{"operationId":"v1LpList","tags":["Legacy LP (v1)"],"summary":"List LPs (legacy)","description":"Frozen v1 contract. Only verified emails; all rows returned with no pagination. Query parameters including limit and offset are ignored. Uses raw userId and entityIds; no commitment progress or fee terms. No v2 rate limiter. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[],"responses":{"200":{"description":"totalCount and an unbounded lps array with raw UUIDs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1LpListResponse"}}}},"400":{"description":"INVALID_PARAMS: request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lp/portfolio":{"get":{"operationId":"v1LpPortfolio","tags":["Legacy LP (v1)"],"summary":"Read an LP portfolio (legacy)","description":"Frozen v1 contract; requires a verified account email. Optional case-insensitive legal-name filter. No v2 stable identifiers, currency, per-commitment fee breakdown, carry, stage or capital-return breakdown. No v2 rate limiter. Use v2 for new integrations. Required key scope: lp:read.","x-required-scope":"lp:read","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"parameters":[{"name":"email","in":"query","required":true,"description":"Verified invitation email, trimmed and lowercased. Unverified accounts are excluded from the frozen v1 API.","schema":{"description":"Verified invitation email, trimmed and lowercased. Unverified accounts are excluded from the frozen v1 API.","type":"string"}},{"name":"fund_legal_name","in":"query","required":false,"description":"Optional case-insensitive exact legal name. All matching funds are included; prefer fund_id for an unambiguous selection.","schema":{"description":"Optional case-insensitive exact legal name. All matching funds are included; prefer fund_id for an unambiguous selection.","type":"string"}}],"responses":{"200":{"description":"Legacy portfolio, holdings and totals, with name-based associations.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1LpPortfolioResponse"}}}},"400":{"description":"INVALID_PARAMS: missing or invalid email, fund identifier or query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"LP_NOT_FOUND, NO_PORTFOLIO_DATA or FUND_NOT_FOUND: the account, portfolio or requested fund is not visible in the key’s team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lp/commit":{"post":{"operationId":"v1LpCommit","tags":["Legacy LP (v1)"],"summary":"Submit a pending commitment (legacy)","description":"Frozen v1 contract. Requires a verified email and existing editable commitment awaiting its first amount. Fund name matching is case-sensitive. Revising or resubmitting an already populated commitment is rejected with COMMITMENT_NOT_PENDING. No v2 rate limiter. Required key scope: lp:write.","x-required-scope":"lp:write","security":[{"teamApiKey":[]},{"teamApiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1LpCommit"},"example":{"email":"investor@example.com","fund_legal_name":"Example Fund I, LP","amount":25000}}}},"responses":{"200":{"description":"Raw commitment/fund UUIDs, subscription amount, isNew, agreement delivery and next steps. No outcome or previousAgreementVoided fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1LpCommitResponse"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: correct the body or the subscription amount.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"INSUFFICIENT_SCOPE: the key lacks the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"LP_NOT_FOUND, FUND_NOT_FOUND or PENDING_COMMITMENT_NOT_FOUND: a verified account, team fund and eligible invitation are required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"METHOD_NOT_ALLOWED: this endpoint requires POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Allow":{"description":"Allowed HTTP method: POST.","schema":{"type":"string"}}}},"409":{"description":"COMMITMENT_NOT_PENDING: investor editing is disabled or the subscription agreement is fully signed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"INTERNAL_ERROR: unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/form-d/file-default":{"post":{"operationId":"fileDefaultFormD","tags":["Form D"],"summary":"Queue a Form D filing from recorded defaults","description":"Restricted automation endpoint using a separately provisioned public API key, NOT a team LP/fund key. Queues the existing Form D task using the web app’s recorded modal defaults. This initiates a real filing workflow; 202 means queued, not filed. Team-key scopes and the v2 rate limiter do not apply.","security":[{"publicApiKey":[]},{"publicApiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/fileDefaultFormD"},"example":{"taskId":"00000000-0000-4000-8000-000000000001"}}}},"responses":{"202":{"description":"Accepted job ID, task ID and public API key ID (raw UUIDs); processing is asynchronous.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/fileDefaultFormDResponse"}}}},"400":{"description":"INVALID_JSON, INVALID_PARAMS or DEFAULTS_INCOMPLETE: required filing defaults must be recorded before queuing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"TASK_NOT_FOUND: no pending Form D task was found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"METHOD_NOT_ALLOWED: this endpoint requires POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Allow":{"description":"Allowed HTTP method: POST.","schema":{"type":"string"}}}},"409":{"description":"JOB_ALREADY_IN_PROGRESS: the task already has an active filing job.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"INTERNAL_SERVER_ERROR: queuing failed; inspect task state before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"teamApiKey":{"type":"http","scheme":"bearer","description":"Team API key. Use Authorization: Bearer <key>. Required scope is listed per operation; funds:* also requires an explicit acting member."},"teamApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Alternative transport for the same team API key; either header is sufficient."},"publicApiKey":{"type":"http","scheme":"bearer","description":"Separately provisioned public API key for Form D automation. Team LP/fund API keys are not accepted."},"publicApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Alternative transport for the separate Form D public API key."}},"schemas":{"Error":{"type":"object","properties":{"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"path":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}]}},"message":{"type":"string"}},"required":["code","path","message"]}}},"required":["code","message"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":false},"lpList":{"type":"object","properties":{"limit":{"description":"Maximum rows per page (1–500). Omitted means 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}}},"lpListResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"lp_<uuid> account ID; one account may occur for multiple invitation emails."},"email":{"type":"string"},"displayName":{"type":["string","null"]},"commitmentCount":{"type":"number"},"fundCount":{"type":"number"},"entityIds":{"type":"array","items":{"type":"string"}},"commitments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"fundId":{"type":"string"},"fundLegalName":{"type":"string"},"stage":{"type":"string","enum":["Removed","Inactive","Revoked — Pending Refund","Closed — Final Close Notice Issued","Finalized — Awaiting Fund Close","Awaiting Funds","Awaiting Capital Call","Missing lookthrough owners","Awaiting Amendment Signature","Awaiting Amendment Countersignature","Awaiting Signatory","Awaiting Countersignature","Awaiting Fee Approval","Awaiting Commit Details","Awaiting KYC Approval","Awaiting KYC"],"description":"Current blocking stage, using the same member status as the web app."},"kycStatus":{"type":"string","enum":["missing","pending-approval","approved"]},"subscriptionAgreementStatus":{"type":"string","enum":["none","pending","completed","not-applicable"]},"agreementPartiesSigned":{"type":"boolean"},"feeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"fee_<uuid> fee schedule identifier."},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"Whether the provider earns the fee on its occurrence date or only when the fund closes."},"displayName":{"type":["string","null"]},"percentage":{"description":"Configured fraction, e.g. 0.02 means 2%; null for a fixed amount.","type":["number","null"]},"amount":{"type":["number","null"]},"basisAmountOverride":{"type":["number","null"]},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"],"description":"Frequency of the quoted percentage or amount; does not itself determine ledger accrual timing."},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"]},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}]},"isRefundable":{"type":"boolean"},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"]},"fromYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"note":{"type":["string","null"]},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"hurdles":{"type":"array","items":{"type":"object","properties":{"carryRate":{"type":"number"},"threshold":{"type":"number","description":"IRR as a fraction or MOIC as a multiple, according to metric."},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"]},"withinWindowInMonths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"catchUpRate":{"type":["number","null"]},"prefCompounding":{"anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["carryRate","threshold","metric","withinWindowInMonths","catchUpRate","prefCompounding"],"additionalProperties":false}}},"required":["id","type","earningCondition","displayName","percentage","amount","basisAmountOverride","quotedFrequency","accrualType","accrualFrequency","isRefundable","collectionMethod","fromYear","toYear","note","currencyCode","hurdles"],"additionalProperties":false},"description":"Configured fees for this commitment, including negotiated terms. These are schedules, not cash paid or accrued totals."},"fundClassFeeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"feeType":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"poolAmount":{"type":"number","description":"Whole fund-class pool amount, not this investor’s allocated share."},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"allocation":{"type":"string","const":"pro-rata"},"treatment":{"type":"string","enum":["fee-pool","standalone-expense"]},"recognitionModel":{"type":"string","enum":["fixed-fee","refundable-reserve"]},"isIncludedInSubscription":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["id","feeType","poolAmount","currencyCode","allocation","treatment","recognitionModel","isIncludedInSubscription","note"],"additionalProperties":false},"description":"Applicable class pools after commitment exclusions; amounts must not be summed as individual LP charges."}},"required":["id","fundId","fundLegalName","stage","kycStatus","subscriptionAgreementStatus","agreementPartiesSigned","feeTerms","fundClassFeeTerms"],"additionalProperties":false}}},"required":["id","email","displayName","commitmentCount","fundCount","entityIds","commitments"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["limit","offset","hasMore"],"additionalProperties":false}},"required":["totalCount","lps","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"lpPortfolio":{"type":"object","properties":{"email":{"description":"Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.","type":"string"},"fund_id":{"description":"Optional fnd_<uuid> from funds[].id. Takes precedence over fund_legal_name. A fund outside this LP’s team-visible portfolio returns FUND_NOT_FOUND.","type":"string"},"fund_legal_name":{"description":"Optional case-insensitive exact legal name. All matching funds are included; prefer fund_id for an unambiguous selection.","type":"string"}},"required":["email"]},"lpPortfolioResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"lp":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"displayName":{"type":["string","null"]},"entityCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","email","displayName","entityCount"],"additionalProperties":false},"summary":{"type":"object","properties":{"totalCommitted":{"type":"number"},"totalCalled":{"type":"number"},"totalPaid":{"type":"number"},"totalDistributed":{"type":"number"},"totalFeesAccrued":{"type":"number"},"fundCount":{"type":"number"},"totalCarryBorne":{"type":"number"}},"required":["totalCommitted","totalCalled","totalPaid","totalDistributed","totalFeesAccrued","fundCount","totalCarryBorne"],"additionalProperties":false},"funds":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"capitalCalled":{"type":"number"},"capitalPaid":{"type":"number"},"distributed":{"type":"number"},"feesAccrued":{"type":"number"},"feesByType":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Recognized fee amounts keyed by fee type; excludes realized carry, reported separately."},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isActive":{"type":"boolean"},"id":{"type":"string"},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"carryBorne":{"type":"number"},"carryReceived":{"type":"number"}},"required":["fundLegalName","fundClassName","subscriptionAmount","capitalCalled","capitalPaid","distributed","feesAccrued","feesByType","signedAt","isActive","id","currencyCode","carryBorne","carryReceived"],"additionalProperties":false}},"commitments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"subscribedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"id":{"type":"string"},"fundId":{"type":"string"},"feesAccrued":{"type":"number"},"feesByType":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Recognized fee amounts keyed by fee type; excludes realized carry, reported separately."},"stage":{"type":"string","enum":["Removed","Inactive","Revoked — Pending Refund","Closed — Final Close Notice Issued","Finalized — Awaiting Fund Close","Awaiting Funds","Awaiting Capital Call","Missing lookthrough owners","Awaiting Amendment Signature","Awaiting Amendment Countersignature","Awaiting Signatory","Awaiting Countersignature","Awaiting Fee Approval","Awaiting Commit Details","Awaiting KYC Approval","Awaiting KYC"],"description":"Current blocking stage, using the same member status as the web app."},"kycStatus":{"type":"string","enum":["missing","pending-approval","approved"]},"subscriptionAgreementStatus":{"type":"string","enum":["none","pending","completed","not-applicable"]},"agreementPartiesSigned":{"type":"boolean"},"feeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"fee_<uuid> fee schedule identifier."},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"Whether the provider earns the fee on its occurrence date or only when the fund closes."},"displayName":{"type":["string","null"]},"percentage":{"description":"Configured fraction, e.g. 0.02 means 2%; null for a fixed amount.","type":["number","null"]},"amount":{"type":["number","null"]},"basisAmountOverride":{"type":["number","null"]},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"],"description":"Frequency of the quoted percentage or amount; does not itself determine ledger accrual timing."},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"]},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}]},"isRefundable":{"type":"boolean"},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"]},"fromYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"note":{"type":["string","null"]},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"hurdles":{"type":"array","items":{"type":"object","properties":{"carryRate":{"type":"number"},"threshold":{"type":"number","description":"IRR as a fraction or MOIC as a multiple, according to metric."},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"]},"withinWindowInMonths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"catchUpRate":{"type":["number","null"]},"prefCompounding":{"anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["carryRate","threshold","metric","withinWindowInMonths","catchUpRate","prefCompounding"],"additionalProperties":false}}},"required":["id","type","earningCondition","displayName","percentage","amount","basisAmountOverride","quotedFrequency","accrualType","accrualFrequency","isRefundable","collectionMethod","fromYear","toYear","note","currencyCode","hurdles"],"additionalProperties":false},"description":"Configured fees for this commitment, including negotiated terms. These are schedules, not cash paid or accrued totals."},"fundClassFeeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"feeType":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"poolAmount":{"type":"number","description":"Whole fund-class pool amount, not this investor’s allocated share."},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"allocation":{"type":"string","const":"pro-rata"},"treatment":{"type":"string","enum":["fee-pool","standalone-expense"]},"recognitionModel":{"type":"string","enum":["fixed-fee","refundable-reserve"]},"isIncludedInSubscription":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["id","feeType","poolAmount","currencyCode","allocation","treatment","recognitionModel","isIncludedInSubscription","note"],"additionalProperties":false},"description":"Applicable class pools after commitment exclusions; amounts must not be summed as individual LP charges."}},"required":["fundLegalName","fundClassName","subscriptionAmount","signedAt","subscribedAt","createdAt","id","fundId","feesAccrued","feesByType","stage","kycStatus","subscriptionAgreementStatus","agreementPartiesSigned","feeTerms","fundClassFeeTerms"],"additionalProperties":false}},"taxDocuments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"taxYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fileName":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","taxYear","fileName","createdAt"],"additionalProperties":false}},"pendingSignatures":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"purpose":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","purpose","createdAt"],"additionalProperties":false}},"unpaidCapitalCalls":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"amount":{"type":"number"},"dueDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"emailSentAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["fundLegalName","amount","dueDate","emailSentAt"],"additionalProperties":false}},"holdings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"fund-interest"},"status":{"type":"string","enum":["active","pending-subscription"]},"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"holderEntityName":{"type":["string","null"]},"featuredPortfolioCompanies":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"logoUrl":{"type":["string","null"]},"sourceId":{"type":["string","null"]}},"required":["name","logoUrl","sourceId"],"additionalProperties":false}},"entryPrice":{"type":"number","description":"Funded gross cost basis of the holding, not company share price."},"entryDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"numUnits":{"type":["number","null"]},"unitPrice":{"description":"Price of a fund unit. For company share entry pricing use GET /api/v2/funds.","type":["number","null"]},"grossValue":{"type":"number"},"distributionsReceived":{"type":"number","description":"Total cash returned: capitalReturnedReceived + netDistributionsReceived + saleProceedsReceived."},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"irr":{"type":["number","null"]},"isActive":{"type":"boolean"},"endedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"id":{"type":"string","description":"hld_<uuid>, backed by a commitment or transfer according to holdingType."},"holdingType":{"type":"string","enum":["commitment","transfer"]},"commitmentId":{"type":["string","null"]},"fundId":{"type":"string"},"holderEntityId":{"type":"string"},"fundCurrencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"holderEntityType":{"anyOf":[{"type":"string","enum":["natural-person","limited-partnership","limited-company","corporation","individual-retirement-account","revocable-or-single-owner-grantor-trust","irrevocable-or-non-grantor-trust","revocable-or-multi-owner-grantor-trust"]},{"type":"null"}]},"valuationDate":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"valuationBasis":{"type":"string","enum":["fund_reported","manual","gross_cost"]},"usesGrossCostBasis":{"type":"boolean"},"capitalReturnedReceived":{"type":"number","description":"Refunds of excess capital, separate from investment distributions."},"netDistributionsReceived":{"type":"number"},"saleProceedsReceived":{"type":"number"},"netCashGain":{"type":["number","null"]}},"required":["type","status","fundLegalName","fundClassName","holderEntityName","featuredPortfolioCompanies","entryPrice","entryDate","numUnits","unitPrice","grossValue","distributionsReceived","totalGrowthAmount","totalGrowthPercent","irr","isActive","endedAt","id","holdingType","commitmentId","fundId","holderEntityId","fundCurrencyCode","holderEntityType","valuationDate","valuationBasis","usesGrossCostBasis","capitalReturnedReceived","netDistributionsReceived","saleProceedsReceived","netCashGain"],"additionalProperties":false}},"holdingsSummary":{"type":"object","properties":{"totalEntryPrice":{"type":"number"},"totalGrossValue":{"type":"number"},"totalDistributionsReceived":{"type":"number"},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"weightedIrr":{"description":"Portfolio money-weighted XIRR, despite the legacy field name; a fraction, not a percentage number.","type":["number","null"]},"totalCapitalReturnedReceived":{"type":"number"}},"required":["totalEntryPrice","totalGrossValue","totalDistributionsReceived","totalGrowthAmount","totalGrowthPercent","weightedIrr","totalCapitalReturnedReceived"],"additionalProperties":false}},"required":["lp","summary","funds","commitments","taxDocuments","pendingSignatures","unpaidCapitalCalls","holdings","holdingsSummary"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"lpPortfolios":{"type":"object","properties":{"limit":{"description":"Maximum roster or affected-email rows examined per page (1–25). Omitted means 10; unchanged and removed rows also count.","type":"integer","minimum":1,"maximum":25},"offset":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991},"rosterVersion":{"description":"Full-scan roster token returned by the first page. Send on later full-scan pages; on ROSTER_CHANGED restart at offset 0 without it. Do not combine with changeCursor.","type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"lpPortfoliosResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Full-scan roster size or incremental affected-email count, including unchanged and removed rows."},"nextCursor":{"type":"string","description":"Opaque revision token. For a full scan retain the FIRST page’s cursor and save it only after completing all pages. For an incremental scan use it as windowCursor on later pages, then save it after the whole window succeeds."},"rosterVersion":{"type":"string","pattern":"^[a-f0-9]{64}$"},"portfolios":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"lp":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"displayName":{"type":["string","null"]},"entityCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","email","displayName","entityCount"],"additionalProperties":false},"summary":{"type":"object","properties":{"totalCommitted":{"type":"number"},"totalCalled":{"type":"number"},"totalPaid":{"type":"number"},"totalDistributed":{"type":"number"},"totalFeesAccrued":{"type":"number"},"fundCount":{"type":"number"},"totalCarryBorne":{"type":"number"}},"required":["totalCommitted","totalCalled","totalPaid","totalDistributed","totalFeesAccrued","fundCount","totalCarryBorne"],"additionalProperties":false},"funds":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"capitalCalled":{"type":"number"},"capitalPaid":{"type":"number"},"distributed":{"type":"number"},"feesAccrued":{"type":"number"},"feesByType":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Recognized fee amounts keyed by fee type; excludes realized carry, reported separately."},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isActive":{"type":"boolean"},"id":{"type":"string"},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"carryBorne":{"type":"number"},"carryReceived":{"type":"number"}},"required":["fundLegalName","fundClassName","subscriptionAmount","capitalCalled","capitalPaid","distributed","feesAccrued","feesByType","signedAt","isActive","id","currencyCode","carryBorne","carryReceived"],"additionalProperties":false}},"commitments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"subscribedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"id":{"type":"string"},"fundId":{"type":"string"},"feesAccrued":{"type":"number"},"feesByType":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Recognized fee amounts keyed by fee type; excludes realized carry, reported separately."},"stage":{"type":"string","enum":["Removed","Inactive","Revoked — Pending Refund","Closed — Final Close Notice Issued","Finalized — Awaiting Fund Close","Awaiting Funds","Awaiting Capital Call","Missing lookthrough owners","Awaiting Amendment Signature","Awaiting Amendment Countersignature","Awaiting Signatory","Awaiting Countersignature","Awaiting Fee Approval","Awaiting Commit Details","Awaiting KYC Approval","Awaiting KYC"],"description":"Current blocking stage, using the same member status as the web app."},"kycStatus":{"type":"string","enum":["missing","pending-approval","approved"]},"subscriptionAgreementStatus":{"type":"string","enum":["none","pending","completed","not-applicable"]},"agreementPartiesSigned":{"type":"boolean"},"feeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"fee_<uuid> fee schedule identifier."},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"Whether the provider earns the fee on its occurrence date or only when the fund closes."},"displayName":{"type":["string","null"]},"percentage":{"description":"Configured fraction, e.g. 0.02 means 2%; null for a fixed amount.","type":["number","null"]},"amount":{"type":["number","null"]},"basisAmountOverride":{"type":["number","null"]},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"],"description":"Frequency of the quoted percentage or amount; does not itself determine ledger accrual timing."},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"]},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}]},"isRefundable":{"type":"boolean"},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"]},"fromYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"note":{"type":["string","null"]},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"hurdles":{"type":"array","items":{"type":"object","properties":{"carryRate":{"type":"number"},"threshold":{"type":"number","description":"IRR as a fraction or MOIC as a multiple, according to metric."},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"]},"withinWindowInMonths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"catchUpRate":{"type":["number","null"]},"prefCompounding":{"anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["carryRate","threshold","metric","withinWindowInMonths","catchUpRate","prefCompounding"],"additionalProperties":false}}},"required":["id","type","earningCondition","displayName","percentage","amount","basisAmountOverride","quotedFrequency","accrualType","accrualFrequency","isRefundable","collectionMethod","fromYear","toYear","note","currencyCode","hurdles"],"additionalProperties":false},"description":"Configured fees for this commitment, including negotiated terms. These are schedules, not cash paid or accrued totals."},"fundClassFeeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"feeType":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"poolAmount":{"type":"number","description":"Whole fund-class pool amount, not this investor’s allocated share."},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"allocation":{"type":"string","const":"pro-rata"},"treatment":{"type":"string","enum":["fee-pool","standalone-expense"]},"recognitionModel":{"type":"string","enum":["fixed-fee","refundable-reserve"]},"isIncludedInSubscription":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["id","feeType","poolAmount","currencyCode","allocation","treatment","recognitionModel","isIncludedInSubscription","note"],"additionalProperties":false},"description":"Applicable class pools after commitment exclusions; amounts must not be summed as individual LP charges."}},"required":["fundLegalName","fundClassName","subscriptionAmount","signedAt","subscribedAt","createdAt","id","fundId","feesAccrued","feesByType","stage","kycStatus","subscriptionAgreementStatus","agreementPartiesSigned","feeTerms","fundClassFeeTerms"],"additionalProperties":false}},"taxDocuments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"taxYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fileName":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","taxYear","fileName","createdAt"],"additionalProperties":false}},"pendingSignatures":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"purpose":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","purpose","createdAt"],"additionalProperties":false}},"unpaidCapitalCalls":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"amount":{"type":"number"},"dueDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"emailSentAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["fundLegalName","amount","dueDate","emailSentAt"],"additionalProperties":false}},"holdings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"fund-interest"},"status":{"type":"string","enum":["active","pending-subscription"]},"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"holderEntityName":{"type":["string","null"]},"featuredPortfolioCompanies":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"logoUrl":{"type":["string","null"]},"sourceId":{"type":["string","null"]}},"required":["name","logoUrl","sourceId"],"additionalProperties":false}},"entryPrice":{"type":"number","description":"Funded gross cost basis of the holding, not company share price."},"entryDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"numUnits":{"type":["number","null"]},"unitPrice":{"description":"Price of a fund unit. For company share entry pricing use GET /api/v2/funds.","type":["number","null"]},"grossValue":{"type":"number"},"distributionsReceived":{"type":"number","description":"Total cash returned: capitalReturnedReceived + netDistributionsReceived + saleProceedsReceived."},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"irr":{"type":["number","null"]},"isActive":{"type":"boolean"},"endedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"id":{"type":"string","description":"hld_<uuid>, backed by a commitment or transfer according to holdingType."},"holdingType":{"type":"string","enum":["commitment","transfer"]},"commitmentId":{"type":["string","null"]},"fundId":{"type":"string"},"holderEntityId":{"type":"string"},"fundCurrencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"holderEntityType":{"anyOf":[{"type":"string","enum":["natural-person","limited-partnership","limited-company","corporation","individual-retirement-account","revocable-or-single-owner-grantor-trust","irrevocable-or-non-grantor-trust","revocable-or-multi-owner-grantor-trust"]},{"type":"null"}]},"valuationDate":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"valuationBasis":{"type":"string","enum":["fund_reported","manual","gross_cost"]},"usesGrossCostBasis":{"type":"boolean"},"capitalReturnedReceived":{"type":"number","description":"Refunds of excess capital, separate from investment distributions."},"netDistributionsReceived":{"type":"number"},"saleProceedsReceived":{"type":"number"},"netCashGain":{"type":["number","null"]}},"required":["type","status","fundLegalName","fundClassName","holderEntityName","featuredPortfolioCompanies","entryPrice","entryDate","numUnits","unitPrice","grossValue","distributionsReceived","totalGrowthAmount","totalGrowthPercent","irr","isActive","endedAt","id","holdingType","commitmentId","fundId","holderEntityId","fundCurrencyCode","holderEntityType","valuationDate","valuationBasis","usesGrossCostBasis","capitalReturnedReceived","netDistributionsReceived","saleProceedsReceived","netCashGain"],"additionalProperties":false}},"holdingsSummary":{"type":"object","properties":{"totalEntryPrice":{"type":"number"},"totalGrossValue":{"type":"number"},"totalDistributionsReceived":{"type":"number"},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"weightedIrr":{"description":"Portfolio money-weighted XIRR, despite the legacy field name; a fraction, not a percentage number.","type":["number","null"]},"totalCapitalReturnedReceived":{"type":"number"}},"required":["totalEntryPrice","totalGrossValue","totalDistributionsReceived","totalGrowthAmount","totalGrowthPercent","weightedIrr","totalCapitalReturnedReceived"],"additionalProperties":false}},"required":["lp","summary","funds","commitments","taxDocuments","pendingSignatures","unpaidCapitalCalls","holdings","holdingsSummary"],"additionalProperties":false}},"required":["email","version","success","data"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_PARAMS"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"LP_NOT_FOUND"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"NO_PORTFOLIO_DATA"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"FUND_NOT_FOUND"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false}]}},"unchangedEmails":{"type":"array","items":{"type":"string"},"description":"Portfolios on this page whose successful response matches a submitted version. Keep the locally stored payload."},"removedEmails":{"type":"array","items":{"type":"string"},"description":"Emails no longer in the visible roster. Reconcile removals only after all pages complete successfully."},"pagination":{"type":"object","properties":{"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["limit","offset","hasMore"],"additionalProperties":false}},"required":["totalCount","nextCursor","rosterVersion","portfolios","unchangedEmails","removedEmails","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"lpPortfolioSync":{"type":"object","properties":{"limit":{"description":"Maximum roster or affected-email rows examined per page (1–25). Omitted means 10; unchanged and removed rows also count.","type":"integer","minimum":1,"maximum":25},"offset":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991},"rosterVersion":{"description":"Full-scan roster token returned by the first page. Send on later full-scan pages; on ROSTER_CHANGED restart at offset 0 without it. Do not combine with changeCursor.","type":"string","pattern":"^[a-f0-9]{64}$"},"knownVersions":{"maxItems":5000,"type":"array","items":{"type":"object","properties":{"email":{"description":"Email for a locally saved portfolio. Emails must be unique after normalization.","type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Opaque version returned with the saved portfolio. Only successful matches are omitted; errors remain visible."}},"required":["email","version"],"additionalProperties":false},"description":"Required list of saved email/version pairs (maximum 5,000); send [] for a first sync. Changed portfolios are returned in full, unchanged ones by email only."},"changeCursor":{"description":"Opaque nextCursor saved from a completed scan. Requests only affected emails since that revision. Omit for a full conditional scan; FULL_SYNC_REQUIRED requires a full scan.","type":"string","minLength":1,"maxLength":512},"windowCursor":{"description":"For subsequent incremental pages, send nextCursor from the first incremental page. Keep changeCursor fixed through the scan; windowCursor requires it and is mandatory for offset > 0.","type":"string","minLength":1,"maxLength":512}},"required":["knownVersions"],"additionalProperties":false},"lpPortfolioSyncResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Full-scan roster size or incremental affected-email count, including unchanged and removed rows."},"nextCursor":{"type":"string","description":"Opaque revision token. For a full scan retain the FIRST page’s cursor and save it only after completing all pages. For an incremental scan use it as windowCursor on later pages, then save it after the whole window succeeds."},"rosterVersion":{"type":"string","pattern":"^[a-f0-9]{64}$"},"portfolios":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"lp":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"displayName":{"type":["string","null"]},"entityCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","email","displayName","entityCount"],"additionalProperties":false},"summary":{"type":"object","properties":{"totalCommitted":{"type":"number"},"totalCalled":{"type":"number"},"totalPaid":{"type":"number"},"totalDistributed":{"type":"number"},"totalFeesAccrued":{"type":"number"},"fundCount":{"type":"number"},"totalCarryBorne":{"type":"number"}},"required":["totalCommitted","totalCalled","totalPaid","totalDistributed","totalFeesAccrued","fundCount","totalCarryBorne"],"additionalProperties":false},"funds":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"capitalCalled":{"type":"number"},"capitalPaid":{"type":"number"},"distributed":{"type":"number"},"feesAccrued":{"type":"number"},"feesByType":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Recognized fee amounts keyed by fee type; excludes realized carry, reported separately."},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isActive":{"type":"boolean"},"id":{"type":"string"},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"carryBorne":{"type":"number"},"carryReceived":{"type":"number"}},"required":["fundLegalName","fundClassName","subscriptionAmount","capitalCalled","capitalPaid","distributed","feesAccrued","feesByType","signedAt","isActive","id","currencyCode","carryBorne","carryReceived"],"additionalProperties":false}},"commitments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"subscribedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"id":{"type":"string"},"fundId":{"type":"string"},"feesAccrued":{"type":"number"},"feesByType":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Recognized fee amounts keyed by fee type; excludes realized carry, reported separately."},"stage":{"type":"string","enum":["Removed","Inactive","Revoked — Pending Refund","Closed — Final Close Notice Issued","Finalized — Awaiting Fund Close","Awaiting Funds","Awaiting Capital Call","Missing lookthrough owners","Awaiting Amendment Signature","Awaiting Amendment Countersignature","Awaiting Signatory","Awaiting Countersignature","Awaiting Fee Approval","Awaiting Commit Details","Awaiting KYC Approval","Awaiting KYC"],"description":"Current blocking stage, using the same member status as the web app."},"kycStatus":{"type":"string","enum":["missing","pending-approval","approved"]},"subscriptionAgreementStatus":{"type":"string","enum":["none","pending","completed","not-applicable"]},"agreementPartiesSigned":{"type":"boolean"},"feeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"fee_<uuid> fee schedule identifier."},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"Whether the provider earns the fee on its occurrence date or only when the fund closes."},"displayName":{"type":["string","null"]},"percentage":{"description":"Configured fraction, e.g. 0.02 means 2%; null for a fixed amount.","type":["number","null"]},"amount":{"type":["number","null"]},"basisAmountOverride":{"type":["number","null"]},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"],"description":"Frequency of the quoted percentage or amount; does not itself determine ledger accrual timing."},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"]},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}]},"isRefundable":{"type":"boolean"},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"]},"fromYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"note":{"type":["string","null"]},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"hurdles":{"type":"array","items":{"type":"object","properties":{"carryRate":{"type":"number"},"threshold":{"type":"number","description":"IRR as a fraction or MOIC as a multiple, according to metric."},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"]},"withinWindowInMonths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"catchUpRate":{"type":["number","null"]},"prefCompounding":{"anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["carryRate","threshold","metric","withinWindowInMonths","catchUpRate","prefCompounding"],"additionalProperties":false}}},"required":["id","type","earningCondition","displayName","percentage","amount","basisAmountOverride","quotedFrequency","accrualType","accrualFrequency","isRefundable","collectionMethod","fromYear","toYear","note","currencyCode","hurdles"],"additionalProperties":false},"description":"Configured fees for this commitment, including negotiated terms. These are schedules, not cash paid or accrued totals."},"fundClassFeeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"feeType":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"poolAmount":{"type":"number","description":"Whole fund-class pool amount, not this investor’s allocated share."},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"allocation":{"type":"string","const":"pro-rata"},"treatment":{"type":"string","enum":["fee-pool","standalone-expense"]},"recognitionModel":{"type":"string","enum":["fixed-fee","refundable-reserve"]},"isIncludedInSubscription":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["id","feeType","poolAmount","currencyCode","allocation","treatment","recognitionModel","isIncludedInSubscription","note"],"additionalProperties":false},"description":"Applicable class pools after commitment exclusions; amounts must not be summed as individual LP charges."}},"required":["fundLegalName","fundClassName","subscriptionAmount","signedAt","subscribedAt","createdAt","id","fundId","feesAccrued","feesByType","stage","kycStatus","subscriptionAgreementStatus","agreementPartiesSigned","feeTerms","fundClassFeeTerms"],"additionalProperties":false}},"taxDocuments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"taxYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fileName":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","taxYear","fileName","createdAt"],"additionalProperties":false}},"pendingSignatures":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"purpose":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","purpose","createdAt"],"additionalProperties":false}},"unpaidCapitalCalls":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"amount":{"type":"number"},"dueDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"emailSentAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["fundLegalName","amount","dueDate","emailSentAt"],"additionalProperties":false}},"holdings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"fund-interest"},"status":{"type":"string","enum":["active","pending-subscription"]},"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"holderEntityName":{"type":["string","null"]},"featuredPortfolioCompanies":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"logoUrl":{"type":["string","null"]},"sourceId":{"type":["string","null"]}},"required":["name","logoUrl","sourceId"],"additionalProperties":false}},"entryPrice":{"type":"number","description":"Funded gross cost basis of the holding, not company share price."},"entryDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"numUnits":{"type":["number","null"]},"unitPrice":{"description":"Price of a fund unit. For company share entry pricing use GET /api/v2/funds.","type":["number","null"]},"grossValue":{"type":"number"},"distributionsReceived":{"type":"number","description":"Total cash returned: capitalReturnedReceived + netDistributionsReceived + saleProceedsReceived."},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"irr":{"type":["number","null"]},"isActive":{"type":"boolean"},"endedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"id":{"type":"string","description":"hld_<uuid>, backed by a commitment or transfer according to holdingType."},"holdingType":{"type":"string","enum":["commitment","transfer"]},"commitmentId":{"type":["string","null"]},"fundId":{"type":"string"},"holderEntityId":{"type":"string"},"fundCurrencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"holderEntityType":{"anyOf":[{"type":"string","enum":["natural-person","limited-partnership","limited-company","corporation","individual-retirement-account","revocable-or-single-owner-grantor-trust","irrevocable-or-non-grantor-trust","revocable-or-multi-owner-grantor-trust"]},{"type":"null"}]},"valuationDate":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"valuationBasis":{"type":"string","enum":["fund_reported","manual","gross_cost"]},"usesGrossCostBasis":{"type":"boolean"},"capitalReturnedReceived":{"type":"number","description":"Refunds of excess capital, separate from investment distributions."},"netDistributionsReceived":{"type":"number"},"saleProceedsReceived":{"type":"number"},"netCashGain":{"type":["number","null"]}},"required":["type","status","fundLegalName","fundClassName","holderEntityName","featuredPortfolioCompanies","entryPrice","entryDate","numUnits","unitPrice","grossValue","distributionsReceived","totalGrowthAmount","totalGrowthPercent","irr","isActive","endedAt","id","holdingType","commitmentId","fundId","holderEntityId","fundCurrencyCode","holderEntityType","valuationDate","valuationBasis","usesGrossCostBasis","capitalReturnedReceived","netDistributionsReceived","saleProceedsReceived","netCashGain"],"additionalProperties":false}},"holdingsSummary":{"type":"object","properties":{"totalEntryPrice":{"type":"number"},"totalGrossValue":{"type":"number"},"totalDistributionsReceived":{"type":"number"},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"weightedIrr":{"description":"Portfolio money-weighted XIRR, despite the legacy field name; a fraction, not a percentage number.","type":["number","null"]},"totalCapitalReturnedReceived":{"type":"number"}},"required":["totalEntryPrice","totalGrossValue","totalDistributionsReceived","totalGrowthAmount","totalGrowthPercent","weightedIrr","totalCapitalReturnedReceived"],"additionalProperties":false}},"required":["lp","summary","funds","commitments","taxDocuments","pendingSignatures","unpaidCapitalCalls","holdings","holdingsSummary"],"additionalProperties":false}},"required":["email","version","success","data"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_PARAMS"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"LP_NOT_FOUND"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"NO_PORTFOLIO_DATA"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false},{"type":"object","properties":{"email":{"type":"string"},"version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","const":"FUND_NOT_FOUND"},"message":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","status"],"additionalProperties":false}},"required":["email","version","success","error"],"additionalProperties":false}]}},"unchangedEmails":{"type":"array","items":{"type":"string"},"description":"Portfolios on this page whose successful response matches a submitted version. Keep the locally stored payload."},"removedEmails":{"type":"array","items":{"type":"string"},"description":"Emails no longer in the visible roster. Reconcile removals only after all pages complete successfully."},"pagination":{"type":"object","properties":{"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["limit","offset","hasMore"],"additionalProperties":false}},"required":["totalCount","nextCursor","rosterVersion","portfolios","unchangedEmails","removedEmails","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"lpCommit":{"type":"object","properties":{"email":{"description":"Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.","type":"string"},"fund_legal_name":{"type":"string","minLength":1,"description":"Fund legal name, matched case-insensitively within the key’s team. The fund with the lowest ID is selected if names collide."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Positive subscription amount in the fund’s currency, in major units (not cents). The same minimum/maximum and editing rules as the investor portal apply."}},"required":["email","fund_legal_name","amount"]},"lpCommitResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"commitmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw UUID, unlike the cmt_ IDs on read endpoints."},"fundId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw UUID, unlike the fnd_ IDs on read endpoints."},"fundLegalName":{"type":"string"},"entityLegalName":{"type":["string","null"]},"subscriptionAmount":{"type":["number","null"]},"isNew":{"type":"boolean"},"nextSteps":{"type":"object","properties":{"kycRequired":{"type":"boolean"},"imApprovalRequired":{"type":"boolean"}},"required":["kycRequired","imApprovalRequired"],"additionalProperties":false},"outcome":{"type":"string","enum":["created","updated","unchanged"]},"subscriptionAgreement":{"type":"object","properties":{"sent":{"type":"boolean"},"pending":{"type":"boolean"},"error":{"type":["string","null"]},"previousAgreementVoided":{"type":"boolean"}},"required":["sent","pending","error","previousAgreementVoided"],"additionalProperties":false}},"required":["commitmentId","fundId","fundLegalName","entityLegalName","subscriptionAmount","isNew","nextSteps","outcome","subscriptionAgreement"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"lpInvitations":{"type":"object","properties":{"limit":{"description":"Maximum rows per page (1–500). Omitted means 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"lpInvitationsResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"invitations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":["string","null"]},"commitmentId":{"type":"string"},"fundId":{"type":"string"},"entityId":{"type":"string"},"fundLegalName":{"type":"string"},"entityLegalName":{"type":"string"},"subscriptionAmount":{"type":"number"},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"reason":{"type":"string","enum":["ambiguous-email","missing-user-account"]},"stage":{"type":"string","enum":["Removed","Inactive","Revoked — Pending Refund","Closed — Final Close Notice Issued","Finalized — Awaiting Fund Close","Awaiting Funds","Awaiting Capital Call","Missing lookthrough owners","Awaiting Amendment Signature","Awaiting Amendment Countersignature","Awaiting Signatory","Awaiting Countersignature","Awaiting Fee Approval","Awaiting Commit Details","Awaiting KYC Approval","Awaiting KYC"],"description":"Current blocking stage, using the same member status as the web app."},"kycStatus":{"type":"string","enum":["missing","pending-approval","approved"]},"subscriptionAgreementStatus":{"type":"string","enum":["none","pending","completed","not-applicable"]},"agreementPartiesSigned":{"type":"boolean"},"feeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"fee_<uuid> fee schedule identifier."},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"Whether the provider earns the fee on its occurrence date or only when the fund closes."},"displayName":{"type":["string","null"]},"percentage":{"description":"Configured fraction, e.g. 0.02 means 2%; null for a fixed amount.","type":["number","null"]},"amount":{"type":["number","null"]},"basisAmountOverride":{"type":["number","null"]},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"],"description":"Frequency of the quoted percentage or amount; does not itself determine ledger accrual timing."},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"]},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}]},"isRefundable":{"type":"boolean"},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"]},"fromYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"note":{"type":["string","null"]},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"hurdles":{"type":"array","items":{"type":"object","properties":{"carryRate":{"type":"number"},"threshold":{"type":"number","description":"IRR as a fraction or MOIC as a multiple, according to metric."},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"]},"withinWindowInMonths":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"catchUpRate":{"type":["number","null"]},"prefCompounding":{"anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["carryRate","threshold","metric","withinWindowInMonths","catchUpRate","prefCompounding"],"additionalProperties":false}}},"required":["id","type","earningCondition","displayName","percentage","amount","basisAmountOverride","quotedFrequency","accrualType","accrualFrequency","isRefundable","collectionMethod","fromYear","toYear","note","currencyCode","hurdles"],"additionalProperties":false},"description":"Configured fees for this commitment, including negotiated terms. These are schedules, not cash paid or accrued totals."},"fundClassFeeTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"feeType":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"poolAmount":{"type":"number","description":"Whole fund-class pool amount, not this investor’s allocated share."},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"allocation":{"type":"string","const":"pro-rata"},"treatment":{"type":"string","enum":["fee-pool","standalone-expense"]},"recognitionModel":{"type":"string","enum":["fixed-fee","refundable-reserve"]},"isIncludedInSubscription":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["id","feeType","poolAmount","currencyCode","allocation","treatment","recognitionModel","isIncludedInSubscription","note"],"additionalProperties":false},"description":"Applicable class pools after commitment exclusions; amounts must not be summed as individual LP charges."}},"required":["id","email","commitmentId","fundId","entityId","fundLegalName","entityLegalName","subscriptionAmount","currencyCode","reason","stage","kycStatus","subscriptionAgreementStatus","agreementPartiesSigned","feeTerms","fundClassFeeTerms"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["limit","offset","hasMore"],"additionalProperties":false}},"required":["totalCount","invitations","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"lpDocuments":{"type":"object","properties":{"email":{"description":"Invitation email, trimmed and lowercased. Reads include unverified emails that resolve to an account; commitment writes require a verified account.","type":"string"},"limit":{"description":"Maximum documents per page (1–100). Omitted means 50.","type":"integer","minimum":1,"maximum":100},"offset":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["email"],"additionalProperties":false},"lpDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"fundId":{"type":"string"},"commitmentId":{"type":["string","null"]},"type":{"type":"string","enum":["operating-agreement","private-placement-memorandum","subscription-agreement","closing-notice"]},"fileName":{"type":"string"},"contentType":{"type":"string"},"downloadUrl":{"type":"string","description":"Temporary signed private download URL; treat as sensitive and refresh after expiry."},"expiresInSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","fundId","commitmentId","type","fileName","contentType","downloadUrl","expiresInSeconds"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["limit","offset","hasMore"],"additionalProperties":false}},"required":["totalCount","documents","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"lpFunds":{"type":"object","properties":{"limit":{"description":"Maximum rows per page (1–500). Omitted means 100.","type":"integer","minimum":1,"maximum":500},"offset":{"description":"Number of roster rows to skip; omitted means 0. Advance by the requested limit, not the number of changed portfolios.","type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"lpFundsResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"funds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"fundLegalName":{"type":"string"},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"finalCloseDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}],"description":"Fund-level fully-closed timestamp (the funds list’s Closed At). Null until recorded; independent of last LP closure."},"lastLpClosedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}],"description":"Most recent LP close notice date; not the fund final close date."},"entryPrices":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"companySourceId":{"type":"string"},"securityType":{"type":["string","null"]},"quotedPricePerShare":{"type":"number"},"source":{"type":"string","const":"purchase"},"fundClassName":{"type":"null"},"pricePerShare":{"type":"number","description":"Paid company share price excluding fees."},"currencyCode":{"anyOf":[{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},{"type":"null"}]},"feeInclusion":{"type":"string","const":"excludes-fee"},"date":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["companySourceId","securityType","quotedPricePerShare","source","fundClassName","pricePerShare","currencyCode","feeInclusion","date"],"additionalProperties":false},{"type":"object","properties":{"companySourceId":{"type":"string"},"securityType":{"type":["string","null"]},"quotedPricePerShare":{"type":"number"},"source":{"type":"string","const":"anticipated"},"fundClassName":{"type":"string"},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"date":{"type":"null"},"feeInclusion":{"type":"string","const":"excludes-fee"},"pricePerShare":{"type":"number","description":"Anticipated company share price excluding fees."}},"required":["companySourceId","securityType","quotedPricePerShare","source","fundClassName","currencyCode","date","feeInclusion","pricePerShare"],"additionalProperties":false},{"type":"object","properties":{"companySourceId":{"type":"string"},"securityType":{"type":["string","null"]},"quotedPricePerShare":{"type":"number"},"source":{"type":"string","const":"anticipated"},"fundClassName":{"type":"string"},"currencyCode":{"type":"string","description":"Currency code for monetary amounts; amounts are major units, not cents."},"date":{"type":"null"},"feeInclusion":{"type":"string","const":"includes-fee"},"pricePerShare":{"type":"null","description":"A fee-inclusive quote cannot supply a fee-exclusive price. Use quotedPricePerShare with feeInclusion."}},"required":["companySourceId","securityType","quotedPricePerShare","source","fundClassName","currencyCode","date","feeInclusion","pricePerShare"],"additionalProperties":false}]},"description":"Recorded purchases through today, otherwise anticipated quotes for company/security pairs without a purchase. Missing source data produces no entry. Multiple purchases remain separate."}},"required":["id","fundLegalName","currencyCode","finalCloseDate","lastLpClosedAt","entryPrices"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["limit","offset","hasMore"],"additionalProperties":false}},"required":["totalCount","funds","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"create":{"type":"object","properties":{"legalName":{"type":"string","minLength":1,"description":"Legal name of the fund or entity being created. Include its legal suffix. Series fund names must follow the selected master’s naming requirements. Inside testFundConfirmation, repeat the exact fund legalName being confirmed."},"isTestFund":{"type":"boolean","description":"Whether this is a test fund excluded from tax filings and Form D tracking. Marking a fund manually still requires the same team permission as the web app."},"testFundConfirmation":{"anyOf":[{"type":"object","properties":{"legalName":{"type":"string","minLength":1,"description":"Legal name of the fund or entity being created. Include its legal suffix. Series fund names must follow the selected master’s naming requirements. Inside testFundConfirmation, repeat the exact fund legalName being confirmed."},"isTestFund":{"type":"boolean","description":"Whether this is a test fund excluded from tax filings and Form D tracking. Marking a fund manually still requires the same team permission as the web app."}},"required":["legalName","isTestFund"]},{"type":"null"}],"description":"Explicit answer to confirm-test-fund. Initially null; when requested, supply the exact legalName and whether it is a test fund, then resubmit with the same creation key."},"usesFundUnits":{"type":"boolean","description":"Whether investor interests are represented using fund units. Fund-unit pricing is separate from company share pricing."},"minAccreditationLevel":{"type":"string","enum":["accredited","qualified-client","qualified-purchaser"],"description":"Minimum investor accreditation required at creation. Regulatory checks can require a higher level for the selected strategy and jurisdictions."},"requiresBeneficialOwnerCheck":{"type":"boolean","description":"Require beneficial-owner screening. CFIUS screening requires this to be enabled; disabling it clears the stored ownership threshold."},"requiresCfiusCheck":{"type":"boolean","description":"Require CFIUS screening. Enabling it also enables beneficial-owner screening; explicitly disabling beneficial-owner screening in the same request is rejected."},"requiresBeneficialOwnerId":{"type":"string","enum":["non-us-natural-persons","all-natural-persons"],"description":"Which beneficial owners must supply identification. Uses the same choices as the fund Details tab."},"creationIdempotencyKey":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Client-generated UUID for one intended fund. Keep it unchanged across confirmations and retries. After creation, reuse returns the original fund; it does not update it."},"expectedAllocation":{"type":"number","exclusiveMinimum":0,"description":"Fundraising target in USD. Must be positive; this describes the target and does not create an investment or capital call."},"memoAsMarkdown":{"type":["string","null"],"description":"Initial investor-portal summary in Markdown. Blank text is normalized to null. Available at creation only."},"strategy":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"secondary","description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"primary","description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."},"isVentureCapitalFund":{"type":"boolean","description":"Election to use the venture-capital exemption. Used with a primary strategy; the Details tab displays this election for primary funds."}},"required":["type","isVentureCapitalFund"],"additionalProperties":false}],"description":"Investment strategy. Secondary has only type; primary also requires isVentureCapitalFund."},"acknowledgesNonVcRegulatoryRequirements":{"type":"boolean","description":"Explicit acknowledgement of the regulatory requirements presented for a non-venture-capital strategy. The shared server validator determines when this is required."},"fundClasses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Display name of this fund class."},"featuredCompany":{"anyOf":[{"$ref":"#/components/schemas/create/$defs/__schema0"},{"type":"null"}],"description":"Optional featured investment. Identifies the company at the root and describes its security or a chain of intermediate SPV/fund interests."},"templateFees":{"type":"array","items":{"type":"object","properties":{"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"occurrence-date earns on the contractual schedule occurrence; fund-close earns on the later of that occurrence and the recorded successful final fundraising close. initial-investment earns on the later of that occurrence and the documented initial investment event. An unknown event remains unearned; bank payment is not an earning event."},"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Existing fee-schedule raw UUID when retaining a draft row’s identity. Omit or use null for a new schedule."},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"],"description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}],"description":"Optional investor-facing name for this fee, up to 120 characters."},"percentage":{"description":"The rate as a fraction of one: 0.02 for 2%.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"amount":{"type":["number","null"],"description":"Fixed fee amount in the applicable currency. Null means no fixed amount quote."},"basisAmountOverride":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Documented invested capital for a fee collected from invested capital, in the fee currency. Null leaves that basis unresolved. This is not the subscription amount, because contributions can include fees, expenses or uninvested cash."},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"],"description":"Period for which the fee is quoted: one-time, quarterly or annually. This is separate from when it accrues or is collected."},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"],"description":"The fee assessment cadence: upfront, periodic or at exit. The earning condition separately controls provider recognition."},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}],"description":"Accrual cadence. Required for periodic accrual; must be null for other accrual types."},"isRefundable":{"type":"boolean","description":"Whether the schedule permits refunding the fee under its configured terms."},"fromYear":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"First subscription year to which this schedule applies, starting at 1."},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Last subscription year, inclusive. Null means no fixed end. Periodic fees included in subscriptions require a finite term."},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"],"description":"How the fee is funded: the subscription, an amount on top, or investment proceeds. See the enum; accrual timing is configured separately."},"splitProRata":{"type":["boolean","null"],"description":"Whether this fee is split pro rata under the shared fee-allocation rules. Null leaves the optional election unset."},"note":{"type":["string","null"],"description":"Optional explanatory note attached to this fee schedule."},"hurdles":{"type":"array","items":{"type":"object","properties":{"hurdle":{"type":"number","description":"Threshold for this tier, in the selected metric’s units: a fraction for IRR or a multiple for MOIC."},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"],"description":"Performance metric used to decide when this carry tier applies."},"feeRate":{"type":"number","description":"Carry rate for this tier as a fraction of one."},"withinWindowInMonths":{"type":["number","null"],"description":"Optional month window in which this hurdle must be met."},"catchUpRate":{"description":"For an IRR tier, the share of each distribution taken during catch-up: 1 for a full catch-up, null for none.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"prefCompounding":{"description":"For an IRR tier, how the preferred return accrues: 'annual' or 'simple'.","anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["hurdle","metric","feeRate"]},"description":"Optional carry tiers. Each defines its metric, threshold, fee rate and any permitted preferred-return/catch-up settings."}},"required":["earningCondition","type","quotedFrequency","accrualType","accrualFrequency","isRefundable","fromYear","collectionMethod"]},"description":"Initial fee schedules. Percentage rates are fractions; fixed amounts use the applicable currency. Rows with neither percentage nor amount are removed by the shared schema."},"fundUnitPrice":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Price of one fund unit. This is not the price of an underlying company share."},"fundUnitPriceFeeInclusion":{"type":"string","enum":["includes-management-fee","excludes-management-fee","includes-all-fees","excludes-all-fees"],"description":"Whether the quoted fund-unit price includes fees."},"adminFeeReserveAmount":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}],"description":"Administration reserve amount for this class in fund currency. Use the team’s suggested reserve returned by /funds/setup."},"isAdminFeeReserveIncludedInSubscription":{"type":"boolean","description":"Whether the administration reserve is included in the subscription amount."},"minCommitAmount":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}],"description":"Minimum subscription for this class, in fund currency. Null means no configured minimum."},"maxCommitAmount":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}],"description":"Maximum subscription for this class, in fund currency. Must be at least minCommitAmount when both are set."},"subscriptionAmountNotes":{"type":["string","null"],"description":"Notes shown with the class’s subscription terms. Null means no notes."}},"required":["name","templateFees"]},"description":"Fund classes to create with their subscription terms, template fees and optional featured investments. Arrays describe the complete initial configuration."},"minBeneficialOwnershipPercentage":{"type":"number","minimum":0,"maximum":0.25,"description":"Beneficial ownership threshold as a fraction (0.25 means 25%). Maximum 0.25. Null retains the current threshold (or the platform threshold when absent) while screening is enabled. Disabling screening clears it."},"templateAgreementTogglesById":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"boolean"},"description":"Map of agreement-toggle UUIDs from /funds/setup to boolean elections. Read toggle explanations and availability before choosing. Disabled elections retain the server’s configured value."},"administratorEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw entity UUID of the administrator, chosen from /funds/entities. Its address and role eligibility are checked by the shared mutation."},"investmentManagerEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Legacy single-manager raw entity UUID. Prefer managers.kind=roster and internalEntries; the roster takes precedence."},"feeRecipientEntries":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw entity UUID for this roster or allocation row. Must be selectable by the acting member for the key’s team."},"legalName":{"type":"string","minLength":1,"description":"Legal name of the fund or entity being created. Include its legal suffix. Series fund names must follow the selected master’s naming requirements. Inside testFundConfirmation, repeat the exact fund legalName being confirmed."},"role":{"type":"string","enum":["general_partner","management_company"],"description":"Role of this entity on the fund. The first management-company row becomes the primary manager."},"mancoEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Advising management-company raw UUID for a general-partner row. Cannot refer to the GP itself or another roster entity."},"managementFeeShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}],"description":"Partner’s default fraction of LP management fees, from 0 to 1. Null on an existing-entity row means unresolved and uses role defaults."},"carryShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}],"description":"Partner’s default fraction of carried interest, from 0 to 1. Null on an existing-entity row means unresolved and uses role defaults."},"paymentPrincipalEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Sponsor raw entity UUID for which the fee recipient collects. Null means the recipient acts for itself; cannot equal entityId."}},"required":["entityId","role"]},"description":"Existing external fee-recipient entity rows at creation. Distinct from the creating team’s internalEntries; an entity cannot occupy conflicting roles."},"generalPartners":{"maxItems":100,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":"Legacy array of general-partner raw entity UUIDs. Prefer a manager roster; its general-partner rows take precedence."},"managers":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"none","description":"Manager configuration discriminator. none has no roster; roster requires internalEntries, withinTeamAllocations, feeRecipientInvites and sendFeeAllocationAgreement."}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"roster","description":"Manager configuration discriminator. none has no roster; roster requires internalEntries, withinTeamAllocations, feeRecipientInvites and sendFeeAllocationAgreement."},"internalEntries":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw entity UUID for this roster or allocation row. Must be selectable by the acting member for the key’s team."},"legalName":{"type":"string","minLength":1,"description":"Legal name of the fund or entity being created. Include its legal suffix. Series fund names must follow the selected master’s naming requirements. Inside testFundConfirmation, repeat the exact fund legalName being confirmed."},"role":{"type":"string","enum":["general_partner","management_company"],"description":"Role of this entity on the fund. The first management-company row becomes the primary manager."},"mancoEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Advising management-company raw UUID for a general-partner row. Cannot refer to the GP itself or another roster entity."},"managementFeeShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}],"description":"Partner’s default fraction of LP management fees, from 0 to 1. Null on an existing-entity row means unresolved and uses role defaults."},"carryShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}],"description":"Partner’s default fraction of carried interest, from 0 to 1. Null on an existing-entity row means unresolved and uses role defaults."},"paymentPrincipalEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Sponsor raw entity UUID for which the fee recipient collects. Null means the recipient acts for itself; cannot equal entityId."}},"required":["entityId","role"]},"description":"Complete initial roster of this team’s manager/GP entities. Each entity occurs once; the first management-company row is primary."},"withinTeamAllocations":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw entity UUID for this roster or allocation row. Must be selectable by the acting member for the key’s team."},"feeType":{"type":"string","enum":["management-fee","carry"],"description":"Fee category for this within-team allocation: management-fee or carry."},"participationPct":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}],"description":"Fraction of this team’s retained share allocated to the entity, from 0 to 1. Null records an unresolved split."}},"required":["entityId","feeType","participationPct"]},"description":"Default division of the team’s retained management-fee and carry shares among its entities. At most one row per entity and fee type."},"feeRecipientInvites":{"anyOf":[{"type":"object","properties":{"partners":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"email":{"type":"string","description":"Email receiving the partner invitation; normalized to lowercase and trimmed."},"legalName":{"type":"string","minLength":1,"description":"Legal name of the fund or entity being created. Include its legal suffix. Series fund names must follow the selected master’s naming requirements. Inside testFundConfirmation, repeat the exact fund legalName being confirmed."},"address":{"type":"object","properties":{"line1":{"type":["string","null"],"description":"First street-address line."},"line2":{"type":["string","null"],"description":"Optional second street-address line."},"city":{"type":["string","null"],"description":"City or locality."},"region":{"type":["string","null"],"description":"State, province or region. Use the postal state abbreviation for a U.S. address or jurisdiction."},"postalCode":{"type":["string","null"],"description":"Postal or ZIP code, unless hasNoPostalCode is permitted and true."},"hasNoPostalCode":{"type":["boolean","null"],"description":"Explicitly indicates an address in a jurisdiction that does not use postal codes."},"countryCode":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter ISO country code, for example US."}},"required":["countryCode"],"description":"Mailing address for the vehicle or invited entity. Non-series vehicles need a complete valid address; a series inherits its master’s address."},"managementFeeShare":{"type":"number","minimum":0,"maximum":1,"description":"Partner’s default fraction of LP management fees, from 0 to 1. Null on an existing-entity row means unresolved and uses role defaults."},"carryShare":{"type":"number","minimum":0,"maximum":1,"description":"Partner’s default fraction of carried interest, from 0 to 1. Null on an existing-entity row means unresolved and uses role defaults."}},"required":["email","managementFeeShare","carryShare"]},"description":"Partners to invite, with distinct normalized emails and their default fee shares. Up to 10 in one creation request."},"mutualLpPrivacy":{"type":"boolean","description":"Hide each partner team’s investor names from the other team."},"showHiddenLpAmounts":{"type":"boolean","description":"When mutualLpPrivacy is enabled, show amounts on anonymous investor rows; false exposes only the count. Ignored when privacy is off."},"sendSideLetter":{"type":"boolean","description":"Send the partner a platform side letter. False means the agreement was made off platform and the split applies without a signature request."}},"required":["partners","mutualLpPrivacy","showHiddenLpAmounts","sendSideLetter"]},{"type":"null"}],"description":"New external partners to invite after the fund is committed. Null sends no invitations. Side-letter and privacy choices apply to the entire batch."},"sendFeeAllocationAgreement":{"type":"boolean","description":"Generate a fee-allocation agreement for each GP with an advising management company."}},"required":["kind","internalEntries","withinTeamAllocations","feeRecipientInvites","sendFeeAllocationAgreement"],"additionalProperties":false}],"description":"Choose none for no investor entities, or roster for the creating team’s manager/GP entities, allocation rules and partner invitations."},"newManager":{"anyOf":[{"type":"object","properties":{"legalName":{"type":"string","minLength":1,"description":"Legal name of the fund or entity being created. Include its legal suffix. Series fund names must follow the selected master’s naming requirements. Inside testFundConfirmation, repeat the exact fund legalName being confirmed."},"jurisdiction":{"type":"object","properties":{"countryCode":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter ISO country code, for example US."},"region":{"type":["string","null"],"description":"State, province or region. Use the postal state abbreviation for a U.S. address or jurisdiction."}},"required":["countryCode"],"description":"Country and region where the new management company is formed."},"operatingAgreementEmail":{"type":["string","null"],"description":"Email of the representative signing the new manager’s operating agreement. Null leaves delivery for later in the web app."}},"required":["legalName","jurisdiction","operatingAgreementEmail"]},{"type":"null"}],"description":"Optional new management company created atomically with the fund and seated first on its roster. Null means use existing entities."},"registeredAgentEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw entity UUID of the registered agent. Required for a series; role and address are validated. Null is accepted only where the shared mutation permits it."},"vehicle":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"blind-pool","description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."},"address":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"description":"First street-address line."},"line2":{"type":["string","null"],"description":"Optional second street-address line."},"city":{"type":"string","minLength":1,"description":"City or locality."},"region":{"type":["string","null"],"description":"State, province or region. Use the postal state abbreviation for a U.S. address or jurisdiction."},"postalCode":{"type":["string","null"],"description":"Postal or ZIP code, unless hasNoPostalCode is permitted and true."},"hasNoPostalCode":{"type":["boolean","null"],"description":"Explicitly indicates an address in a jurisdiction that does not use postal codes."},"countryCode":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter ISO country code, for example US."}},"required":["line1","city","countryCode"],"description":"Mailing address for the vehicle or invited entity. Non-series vehicles need a complete valid address; a series inherits its master’s address."}},"required":["type","address"],"additionalProperties":false},{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"spv","description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."},"isSeries":{"type":"boolean","const":false,"description":"Whether this SPV is a series of an existing master entity. True requires masterEntityId; false requires address."},"address":{"type":"object","properties":{"line1":{"type":"string","minLength":1,"description":"First street-address line."},"line2":{"type":["string","null"],"description":"Optional second street-address line."},"city":{"type":"string","minLength":1,"description":"City or locality."},"region":{"type":["string","null"],"description":"State, province or region. Use the postal state abbreviation for a U.S. address or jurisdiction."},"postalCode":{"type":["string","null"],"description":"Postal or ZIP code, unless hasNoPostalCode is permitted and true."},"hasNoPostalCode":{"type":["boolean","null"],"description":"Explicitly indicates an address in a jurisdiction that does not use postal codes."},"countryCode":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter ISO country code, for example US."}},"required":["line1","city","countryCode"],"description":"Mailing address for the vehicle or invited entity. Non-series vehicles need a complete valid address; a series inherits its master’s address."}},"required":["type","isSeries","address"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"spv","description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."},"isSeries":{"type":"boolean","const":true,"description":"Whether this SPV is a series of an existing master entity. True requires masterEntityId; false requires address."},"masterEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw UUID of an authorized master entity from /funds/entities. A series inherits its address. This is a creation-only selection."}},"required":["type","isSeries","masterEntityId"],"additionalProperties":false}]}],"description":"Choose blind-pool with an address, a standalone spv with isSeries=false and an address, or a series spv with isSeries=true and masterEntityId."},"isContinuationVehiclePurchasingVehicle":{"type":"boolean","description":"Whether creation should process continuation-vehicle purchaser templates when template documents are enabled."},"isRolloverVehicle":{"type":"boolean","description":"Whether this vehicle continues an existing investment structure. True requires taxContinuation; false requires taxContinuation=null."},"taxContinuation":{"anyOf":[{"type":"object","properties":{"predecessorFundId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw UUID of an existing predecessor fund, or null when the predecessor is not recorded as a fund on the platform."},"predecessorLegalName":{"type":"string","minLength":1,"description":"Predecessor’s full legal name for the tax continuity record."},"predecessorEin":{"type":["string","null"],"description":"Predecessor EIN, required when continuing its prior U.S. partnership return identity."},"predecessorCountryCode":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}],"description":"Predecessor’s two-letter country code, or null if unknown."},"predecessorAddress":{"anyOf":[{"type":"object","properties":{"line1":{"type":"string","minLength":1,"description":"First street-address line."},"line2":{"type":["string","null"],"description":"Optional second street-address line."},"city":{"type":"string","minLength":1,"description":"City or locality."},"region":{"type":["string","null"],"description":"State, province or region. Use the postal state abbreviation for a U.S. address or jurisdiction."},"postalCode":{"type":["string","null"],"description":"Postal or ZIP code, unless hasNoPostalCode is permitted and true."},"hasNoPostalCode":{"type":["boolean","null"],"description":"Explicitly indicates an address in a jurisdiction that does not use postal codes."},"countryCode":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter ISO country code, for example US."}},"required":["line1","city","countryCode"]},{"type":"null"}],"description":"Predecessor’s address, or null if unknown."},"originalInvestmentAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Original investment date; must precede the reorganization. ISO 8601 date-time or null."},"reorganizationEffectiveAt":{"type":"string","format":"date-time","description":"Reorganization effective date as an ISO 8601 date-time."},"assetTransferAt":{"type":"string","format":"date-time","description":"Asset title-transfer date, no earlier than the reorganization effective date."},"partnerInterestsTransferAt":{"type":"string","format":"date-time","description":"Replacement-interest transfer date, no earlier than the reorganization effective date."},"predecessorCeasedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Date the predecessor ceased, or null. Cannot precede the reorganization."},"federalForm":{"type":"string","enum":["nominee-asset-formation","same-partnership-continuation","assets-over","section-721-contribution","review-required"],"description":"Federal tax structure for the continuity intake. A nominee formation requires a first U.S. return and the corresponding nominee/shell classifications."},"federalReturnIdentity":{"type":"string","enum":["prior-us-return","first-us-return","review-required"],"description":"Whether the successor starts its first U.S. return or continues the predecessor’s U.S. return identity."},"predecessorReturnStatus":{"type":"string","enum":["nominee-not-separate-taxpayer","form-1065-filed","not-required-foreign-partnership","review-required"],"description":"Predecessor’s federal return classification for the continuity analysis."},"successorShellStatus":{"type":"string","enum":["not-separate-federal-partnership","separate-federal-partnership","review-required"],"description":"Successor’s federal partnership/shell classification for the continuity analysis."},"admitsNonContributingMember":{"type":"boolean","description":"Whether the successor admits a member who contributes no predecessor property."},"propertyContributions":{"type":"array","items":{"type":"object","properties":{"contributorEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw entity UUID of the contributing owner."},"stockTransferId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw UUID of the contributed stock position, or null. Exactly one position reference must be set."},"safeTransferId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw UUID of the contributed SAFE position, or null. Exactly one position reference must be set."},"fundCommitmentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw UUID of the contributed fund interest, or null. Exactly one position reference must be set."},"loanId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw UUID of the contributed loan receivable, or null. Exactly one position reference must be set."},"fixedPriceStockForwardId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw UUID of the contributed fixed-price forward, or null. Exactly one position reference must be set."},"assetName":{"type":"string","minLength":1,"description":"Name of the contributed asset for the tax continuity record."},"ownershipFraction":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Fraction of the asset contributed, greater than zero and at most 1."},"acquiredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","minLength":1}],"description":"Historical acquisition date of the contributed property; cannot follow contributedAt."},"contributedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","minLength":1}],"description":"Date property was contributed, as an ISO 8601 date-time."},"adjustedTaxBasisUsd":{"type":"number","minimum":0,"description":"Adjusted tax basis of the contributed property in USD, nonnegative."},"fairMarketValueUsd":{"type":"number","minimum":0,"description":"Fair market value of the contributed property in USD, nonnegative."},"valuationAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","minLength":1}],"description":"As-of date of the tax mark. Must equal contributedAt."},"valuationMethod":{"type":"string","minLength":1,"description":"Method used to determine the contributed property’s fair market value."},"valuationEvidence":{"type":"string","minLength":1,"description":"Evidence supporting that fair market value."}},"required":["contributorEntityId","stockTransferId","safeTransferId","fundCommitmentId","assetName","ownershipFraction","acquiredAt","contributedAt","adjustedTaxBasisUsd","fairMarketValueUsd","valuationAt","valuationMethod","valuationEvidence"]},"description":"Contributed property and tax marks for a nominee formation. Each row must link exactly one recorded position."}},"required":["predecessorFundId","predecessorLegalName","predecessorEin","predecessorCountryCode","predecessorAddress","originalInvestmentAt","reorganizationEffectiveAt","assetTransferAt","partnerInterestsTransferAt","predecessorCeasedAt","federalForm","federalReturnIdentity","predecessorReturnStatus","successorShellStatus","admitsNonContributingMember"]},{"type":"null"}],"description":"Tax continuity intake for a rollover vehicle. Dates, predecessor identity and any contributed property must satisfy the shared intake rules; this does not approve a tax conclusion."},"useTemplateDocuments":{"default":true,"type":"boolean","description":"Whether creation generates platform template documents and signature packets. Set explicitly. False skips those documents and their signer requirements."},"coGpSideLetterSignatories":{"type":"object","properties":{"primaryImEmails":{"maxItems":100,"type":"array","items":{"type":"string"},"description":"Email addresses of the primary investment manager’s side-letter signers."},"coGpEmailsByEntityId":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"maxItems":100,"type":"array","items":{"type":"string"}},"description":"Map of Co-GP raw entity UUID to its side-letter signer emails."}},"additionalProperties":false,"description":"Optional signer email maps for Co-GP side letters generated during creation. Keys must refer to the relevant entities on this fund."},"gpMemberAwardSignatories":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"object","properties":{"memberEmails":{"maxItems":100,"type":"array","items":{"type":"string"},"description":"GP member signer emails. One member-award packet is created per member."},"companySignatoryEmail":{"type":"string","description":"Email of the person signing on behalf of the GP company."}},"required":["memberEmails","companySignatoryEmail"],"additionalProperties":false},"description":"Map from GP raw entity UUID to memberEmails and companySignatoryEmail. Supply when requested by gp-member-award-signatories; {} explicitly records that no packets were requested."},"entityOperatingAgreementEmails":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"string"},"description":"Map from selected raw entity UUID to representative signer email. Supply when requested by entity-operating-agreement-emails; {} explicitly records that no emails were supplied."}},"required":["legalName","isTestFund","testFundConfirmation","usesFundUnits","minAccreditationLevel","requiresBeneficialOwnerCheck","requiresCfiusCheck","requiresBeneficialOwnerId","creationIdempotencyKey","expectedAllocation","strategy","fundClasses","templateAgreementTogglesById","administratorEntityId","managers","vehicle","isContinuationVehiclePurchasingVehicle","isRolloverVehicle","taxContinuation"],"additionalProperties":false,"$defs":{"__schema0":{"type":"object","properties":{"instrument":{"type":"string","enum":["stock","forward-contract","fund-interest","safe","note","other"],"description":"Type of the featured security. fund-interest represents an intermediate vehicle and requires underlying."},"companySourceId":{"type":"string","description":"Raw company-source UUID from bestCompanySourceId in /funds/companies. Required at the root of a featured investment."},"companyLegalName":{"type":"string","description":"Legal name of the portfolio company. Required at the root of a featured investment."},"companyName":{"type":["string","null"],"description":"Optional common/display name captured from company discovery; not persisted as the legal name."},"anticipatedFeeInclusion":{"type":"string","enum":["includes-fee","excludes-fee"],"description":"Whether the anticipated share price includes the underlying investment’s fees."},"anticipatedValuation":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Expected company valuation in currencyCode, or null when unknown or based on the next round."},"anticipatedValuationType":{"type":"string","enum":["pre-money","post-money"],"description":"Basis of the anticipated valuation, such as pre-money or post-money."},"isAnticipatedValuationBasedOnNextRound":{"type":"boolean","description":"Use the next financing round to determine valuation. Clears the numeric anticipatedValuation; a SAFE requires a discount."},"isAnticipatedPricingUnknown":{"type":"boolean","description":"Record pricing as unknown; clears anticipatedValuation and anticipatedSharePrice."},"areFeesUnknown":{"type":"boolean","description":"For an intermediate fund-interest layer, record its fees as unknown and omit templateFees. Cleared for leaf securities."},"anticipatedSharePrice":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Expected price per company share in currencyCode. This differs from fundUnitPrice."},"currencyCode":{"type":"string","pattern":"^[A-Z]{3}$","description":"Three-letter uppercase ISO currency code for anticipated share price and valuation. Newly created funds themselves use USD."},"securityType":{"type":["string","null"],"description":"Description of the leaf security. Cleared on intermediate fund-interest layers."},"discountRate":{"anyOf":[{"type":"number","minimum":0,"exclusiveMaximum":1},{"type":"null"}],"description":"SAFE discount as a fraction, below 1. Cleared for other instruments."},"hasMostFavoredNationClause":{"type":["boolean","null"],"description":"SAFE most-favored-nation election. Required for a SAFE; cleared for other instruments."},"hasProRataRight":{"type":["boolean","null"],"description":"SAFE pro-rata right election. Required for a SAFE; cleared for other instruments."},"templateFees":{"type":"array","items":{"type":"object","properties":{"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"occurrence-date earns on the contractual schedule occurrence; fund-close earns on the later of that occurrence and the recorded successful final fundraising close. initial-investment earns on the later of that occurrence and the documented initial investment event. An unknown event remains unearned; bank payment is not an earning event."},"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Existing fee-schedule raw UUID when retaining a draft row’s identity. Omit or use null for a new schedule."},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"],"description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}],"description":"Optional investor-facing name for this fee, up to 120 characters."},"percentage":{"description":"The rate as a fraction of one: 0.02 for 2%.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"amount":{"type":["number","null"],"description":"Fixed fee amount in the applicable currency. Null means no fixed amount quote."},"basisAmountOverride":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Documented invested capital for a fee collected from invested capital, in the fee currency. Null leaves that basis unresolved. This is not the subscription amount, because contributions can include fees, expenses or uninvested cash."},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"],"description":"Period for which the fee is quoted: one-time, quarterly or annually. This is separate from when it accrues or is collected."},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"],"description":"The fee assessment cadence: upfront, periodic or at exit. The earning condition separately controls provider recognition."},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}],"description":"Accrual cadence. Required for periodic accrual; must be null for other accrual types."},"isRefundable":{"type":"boolean","description":"Whether the schedule permits refunding the fee under its configured terms."},"fromYear":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"First subscription year to which this schedule applies, starting at 1."},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Last subscription year, inclusive. Null means no fixed end. Periodic fees included in subscriptions require a finite term."},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"],"description":"How the fee is funded: the subscription, an amount on top, or investment proceeds. See the enum; accrual timing is configured separately."},"splitProRata":{"type":["boolean","null"],"description":"Whether this fee is split pro rata under the shared fee-allocation rules. Null leaves the optional election unset."},"note":{"type":["string","null"],"description":"Optional explanatory note attached to this fee schedule."},"hurdles":{"type":"array","items":{"type":"object","properties":{"hurdle":{"type":"number","description":"Threshold for this tier, in the selected metric’s units: a fraction for IRR or a multiple for MOIC."},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"],"description":"Performance metric used to decide when this carry tier applies."},"feeRate":{"type":"number","description":"Carry rate for this tier as a fraction of one."},"withinWindowInMonths":{"type":["number","null"],"description":"Optional month window in which this hurdle must be met."},"catchUpRate":{"description":"For an IRR tier, the share of each distribution taken during catch-up: 1 for a full catch-up, null for none.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"prefCompounding":{"description":"For an IRR tier, how the preferred return accrues: 'annual' or 'simple'.","anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["hurdle","metric","feeRate"]},"description":"Optional carry tiers. Each defines its metric, threshold, fee rate and any permitted preferred-return/catch-up settings."}},"required":["earningCondition","type","quotedFrequency","accrualType","accrualFrequency","isRefundable","fromYear","collectionMethod"]},"description":"Initial fee schedules. Percentage rates are fractions; fixed amounts use the applicable currency. Rows with neither percentage nor amount are removed by the shared schema."},"underlying":{"allOf":[{"$ref":"#/components/schemas/create/$defs/__schema0"}],"description":"Next investment in an intermediate fund-interest chain. Required for fund-interest nodes; absent on leaf securities."}},"required":["instrument","anticipatedFeeInclusion","anticipatedValuationType","isAnticipatedValuationBasedOnNextRound","isAnticipatedPricingUnknown","areFeesUnknown","currencyCode"]}}},"createResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"done"},"result":{"type":"object","properties":{"fundId":{"type":"string"},"fundSlug":{"type":"string"}},"required":["fundId","fundSlug"],"additionalProperties":false}},"required":["status","result"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"needs-input"},"requirements":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"confirm-test-fund"},"subject":{"type":"object","properties":{"legalName":{"type":"string"}},"required":["legalName"],"additionalProperties":false}},"required":["kind","subject"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"gp-member-award-signatories"},"subject":{"type":"object","properties":{"generalPartnerEntityIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["generalPartnerEntityIds"],"additionalProperties":false}},"required":["kind","subject"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"entity-operating-agreement-emails"},"subject":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"legalName":{"type":"string"},"slug":{"type":"string"}},"required":["id","legalName","slug"],"additionalProperties":false}}},"required":["entities"],"additionalProperties":false}},"required":["kind","subject"],"additionalProperties":false}]}}},"required":["status","requirements"],"additionalProperties":false}]}},"required":["success","data"],"additionalProperties":false},"update":{"type":"object","properties":{"fundId":{"type":"string","description":"Fund identifier with the fnd_ prefix, returned by creation or the existing /funds endpoint."},"changes":{"type":"object","properties":{"launchedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Fund launch date as an ISO 8601 date-time; null clears it."},"fiscalYearEndMonth":{"type":"integer","minimum":1,"maximum":12,"description":"Fiscal year-end month as an integer from 1 through 12. Send with fiscalYearEndDay when changing both."},"fiscalYearEndDay":{"type":"integer","minimum":1,"maximum":31,"description":"Fiscal year-end day in the selected month. The resulting month/day must form a valid annual date."},"type":{"type":"string","enum":["primary","secondary"],"description":"Discriminator for this object: primary/secondary for strategy, spv/blind-pool for vehicle, or the fee category for a template fee. See this property’s enum for the applicable choices."},"vehicleType":{"type":"string","enum":["blind-pool","spv"],"description":"Fund vehicle classification. This edit does not move master entities or change series membership; use the web app for structural workflows."},"isVentureCapitalFund":{"type":"boolean","description":"Election to use the venture-capital exemption. Used with a primary strategy; the Details tab displays this election for primary funds."},"isRegulationSOffering":{"type":"boolean","description":"Whether this fund is a Regulation S offering."},"requiresCfiusCheck":{"type":"boolean","description":"Require CFIUS screening. Enabling it also enables beneficial-owner screening; explicitly disabling beneficial-owner screening in the same request is rejected."},"requiresBeneficialOwnerCheck":{"type":"boolean","description":"Require beneficial-owner screening. CFIUS screening requires this to be enabled; disabling it clears the stored ownership threshold."},"requiresBeneficialOwnerId":{"type":"string","enum":["non-us-natural-persons","all-natural-persons"],"description":"Which beneficial owners must supply identification. Uses the same choices as the fund Details tab."},"minBeneficialOwnershipPercentage":{"anyOf":[{"type":"number","minimum":0,"maximum":0.25},{"type":"null"}],"description":"Beneficial ownership threshold as a fraction (0.25 means 25%). Maximum 0.25. Null retains the current threshold (or the platform threshold when absent) while screening is enabled. Disabling screening clears it."},"investorQuestionnaireCustomQuestionAsMarkdown":{"type":["string","null"],"description":"Custom investor questionnaire question in Markdown. Null or blank clears it. Requires LP-portal edit permission."},"distributionStrategy":{"type":"string","enum":["time-weighted-irr","pro-rata"],"description":"Default strategy used to allocate fund distributions."},"carryWaterfallStyle":{"anyOf":[{"type":"string","enum":["european","american"]},{"type":"null"}],"description":"Whole-fund (european) or deal-by-deal (american) carry. Null retains the effective current/default style. American requires an LP-level basis plus loss-recovery and clawback choices in the same request."},"carryBasisType":{"anyOf":[{"type":"string","enum":["fund-purchase-only","fund-purchase-plus-fees","lp-net-capital","lp-all-in-capital"]},{"type":"null"}],"description":"Basis on which carry is computed. Null retains the effective current/default basis. American waterfalls require an LP-level basis."},"carryDealLossRecovery":{"anyOf":[{"type":"string","enum":["none","realized-losses"]},{"type":"null"}],"description":"Whether a deal-by-deal waterfall recovers realized losses before carry. Cleared for a whole-fund waterfall."},"carryClawback":{"anyOf":[{"type":"string","enum":["fund-end","none"]},{"type":"null"}],"description":"Whether deal-by-deal carry not earned by the whole fund is clawed back. Required for an american waterfall; cleared for european."},"crystallizeCarryOnTransfer":{"type":"boolean","description":"Whether a sale crystallizes carry. Allowed only for a european waterfall with an LP-level carry basis."},"enableCatchupFees":{"type":"boolean","description":"Enable fee catch-up for later subscriptions using the fund’s configured start date."},"catchupFeesStartDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Catch-up start date as an ISO 8601 date-time, or null to clear. Enabling catch-up without a date lets the shared mutation choose the operating-agreement signature date or earliest subscription date. Changing it while catch-up is enabled synchronizes applicable accrual dates."},"feeAccrualRule":{"type":"string","enum":["subscription-agreement-signed","subscription-closed"],"description":"Rule selecting the subscription/signature/closing anchor used by fee accrual."},"administratorEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw entity UUID of the administrator, chosen from /funds/entities. Its address and role eligibility are checked by the shared mutation."},"registeredAgentEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Raw entity UUID of the registered agent. Required for a series; role and address are validated. Null is accepted only where the shared mutation permits it."}},"additionalProperties":false,"description":"Nonempty patch of supported Details fields. Omitted properties are not submitted as edits. Related settings still follow the shared normalization rules. Null behavior is documented per field."}},"required":["fundId","changes"],"additionalProperties":false},"updateResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"status":{"type":"string","const":"done"},"fundId":{"type":"string"}},"required":["status","fundId"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"setup":{"type":"object","properties":{},"additionalProperties":false},"setupResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"draft":{"type":"object","properties":{"isTestFund":{"type":"boolean"},"testFundConfirmation":{"anyOf":[{"type":"object","properties":{"legalName":{"type":"string","minLength":1},"isTestFund":{"type":"boolean"}},"required":["legalName","isTestFund"]},{"type":"null"}]},"usesFundUnits":{"type":"boolean"},"minAccreditationLevel":{"type":"string","enum":["accredited","qualified-client","qualified-purchaser"]},"requiresBeneficialOwnerCheck":{"type":"boolean"},"requiresCfiusCheck":{"type":"boolean"},"requiresBeneficialOwnerId":{"type":"string","enum":["non-us-natural-persons","all-natural-persons"]},"memoAsMarkdown":{"type":["string","null"]},"strategy":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"secondary"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"primary"},"isVentureCapitalFund":{"type":"boolean"}},"required":["type","isVentureCapitalFund"],"additionalProperties":false}]},"acknowledgesNonVcRegulatoryRequirements":{"type":"boolean"},"fundClasses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"featuredCompany":{"anyOf":[{"$ref":"#/components/schemas/setupResponse/$defs/__schema0"},{"type":"null"}]},"templateFees":{"type":"array","items":{"type":"object","properties":{"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"occurrence-date earns on the contractual schedule occurrence; fund-close earns on the later of that occurrence and the recorded successful final fundraising close. initial-investment earns on the later of that occurrence and the documented initial investment event. An unknown event remains unearned; bank payment is not an earning event."},"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"percentage":{"description":"The rate as a fraction of one: 0.02 for 2%.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"amount":{"type":["number","null"]},"basisAmountOverride":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"]},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"]},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}]},"isRefundable":{"type":"boolean"},"fromYear":{"type":"integer","minimum":1,"maximum":9007199254740991},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"]},"splitProRata":{"type":["boolean","null"]},"note":{"type":["string","null"]},"hurdles":{"type":"array","items":{"type":"object","properties":{"hurdle":{"type":"number"},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"]},"feeRate":{"type":"number"},"withinWindowInMonths":{"type":["number","null"]},"catchUpRate":{"description":"For an IRR tier, the share of each distribution taken during catch-up: 1 for a full catch-up, null for none.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"prefCompounding":{"description":"For an IRR tier, how the preferred return accrues: 'annual' or 'simple'.","anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["hurdle","metric","feeRate"]}}},"required":["earningCondition","type","quotedFrequency","accrualType","accrualFrequency","isRefundable","fromYear","collectionMethod"]}},"fundUnitPrice":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"fundUnitPriceFeeInclusion":{"type":"string","enum":["includes-management-fee","excludes-management-fee","includes-all-fees","excludes-all-fees"]},"adminFeeReserveAmount":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}]},"isAdminFeeReserveIncludedInSubscription":{"type":"boolean"},"minCommitAmount":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}]},"maxCommitAmount":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}]},"subscriptionAmountNotes":{"type":["string","null"]}},"required":["name","templateFees"]}},"minBeneficialOwnershipPercentage":{"type":"number","minimum":0,"maximum":0.25},"templateAgreementTogglesById":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"boolean"}},"administratorEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"investmentManagerEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"feeRecipientEntries":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"legalName":{"type":"string","minLength":1},"role":{"type":"string","enum":["general_partner","management_company"]},"mancoEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"managementFeeShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"carryShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"paymentPrincipalEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["entityId","role"]}},"generalPartners":{"maxItems":100,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"managers":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"none"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"roster"},"internalEntries":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"legalName":{"type":"string","minLength":1},"role":{"type":"string","enum":["general_partner","management_company"]},"mancoEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"managementFeeShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"carryShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"paymentPrincipalEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["entityId","role"]}},"withinTeamAllocations":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"feeType":{"type":"string","enum":["management-fee","carry"]},"participationPct":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]}},"required":["entityId","feeType","participationPct"]}},"feeRecipientInvites":{"anyOf":[{"type":"object","properties":{"partners":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"legalName":{"type":"string","minLength":1},"address":{"type":"object","properties":{"line1":{"type":["string","null"]},"line2":{"type":["string","null"]},"city":{"type":["string","null"]},"region":{"type":["string","null"]},"postalCode":{"type":["string","null"]},"hasNoPostalCode":{"type":["boolean","null"]},"countryCode":{"type":"string","minLength":2,"maxLength":2}},"required":["countryCode"]},"managementFeeShare":{"type":"number","minimum":0,"maximum":1},"carryShare":{"type":"number","minimum":0,"maximum":1}},"required":["email","managementFeeShare","carryShare"]}},"mutualLpPrivacy":{"type":"boolean"},"showHiddenLpAmounts":{"type":"boolean"},"sendSideLetter":{"type":"boolean"}},"required":["partners","mutualLpPrivacy","showHiddenLpAmounts","sendSideLetter"]},{"type":"null"}]},"sendFeeAllocationAgreement":{"type":"boolean"}},"required":["kind","internalEntries","withinTeamAllocations","feeRecipientInvites","sendFeeAllocationAgreement"],"additionalProperties":false}]},"newManager":{"anyOf":[{"type":"object","properties":{"legalName":{"type":"string","minLength":1},"jurisdiction":{"type":"object","properties":{"countryCode":{"type":"string","minLength":2,"maxLength":2},"region":{"type":["string","null"]}},"required":["countryCode"]},"operatingAgreementEmail":{"type":["string","null"]}},"required":["legalName","jurisdiction","operatingAgreementEmail"]},{"type":"null"}]},"registeredAgentEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"isContinuationVehiclePurchasingVehicle":{"type":"boolean"},"isRolloverVehicle":{"type":"boolean"},"taxContinuation":{"anyOf":[{"type":"object","properties":{"predecessorFundId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"predecessorLegalName":{"type":"string","minLength":1},"predecessorEin":{"type":["string","null"]},"predecessorCountryCode":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}]},"predecessorAddress":{"anyOf":[{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":["string","null"]},"city":{"type":"string","minLength":1},"region":{"type":["string","null"]},"postalCode":{"type":["string","null"]},"hasNoPostalCode":{"type":["boolean","null"]},"countryCode":{"type":"string","minLength":2,"maxLength":2}},"required":["line1","city","countryCode"]},{"type":"null"}]},"originalInvestmentAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"reorganizationEffectiveAt":{"type":"string","format":"date-time"},"assetTransferAt":{"type":"string","format":"date-time"},"partnerInterestsTransferAt":{"type":"string","format":"date-time"},"predecessorCeasedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"federalForm":{"type":"string","enum":["nominee-asset-formation","same-partnership-continuation","assets-over","section-721-contribution","review-required"]},"federalReturnIdentity":{"type":"string","enum":["prior-us-return","first-us-return","review-required"]},"predecessorReturnStatus":{"type":"string","enum":["nominee-not-separate-taxpayer","form-1065-filed","not-required-foreign-partnership","review-required"]},"successorShellStatus":{"type":"string","enum":["not-separate-federal-partnership","separate-federal-partnership","review-required"]},"admitsNonContributingMember":{"type":"boolean"},"propertyContributions":{"type":"array","items":{"type":"object","properties":{"contributorEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"stockTransferId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"safeTransferId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"fundCommitmentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"loanId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"fixedPriceStockForwardId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assetName":{"type":"string","minLength":1},"ownershipFraction":{"type":"number","exclusiveMinimum":0,"maximum":1},"acquiredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","minLength":1}]},"contributedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","minLength":1}]},"adjustedTaxBasisUsd":{"type":"number","minimum":0},"fairMarketValueUsd":{"type":"number","minimum":0},"valuationAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","minLength":1}]},"valuationMethod":{"type":"string","minLength":1},"valuationEvidence":{"type":"string","minLength":1}},"required":["contributorEntityId","stockTransferId","safeTransferId","fundCommitmentId","assetName","ownershipFraction","acquiredAt","contributedAt","adjustedTaxBasisUsd","fairMarketValueUsd","valuationAt","valuationMethod","valuationEvidence"]}}},"required":["predecessorFundId","predecessorLegalName","predecessorEin","predecessorCountryCode","predecessorAddress","originalInvestmentAt","reorganizationEffectiveAt","assetTransferAt","partnerInterestsTransferAt","predecessorCeasedAt","federalForm","federalReturnIdentity","predecessorReturnStatus","successorShellStatus","admitsNonContributingMember"]},{"type":"null"}]},"useTemplateDocuments":{"default":true,"type":"boolean"},"coGpSideLetterSignatories":{"type":"object","properties":{"primaryImEmails":{"maxItems":100,"type":"array","items":{"type":"string"}},"coGpEmailsByEntityId":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"maxItems":100,"type":"array","items":{"type":"string"}}}},"additionalProperties":false},"gpMemberAwardSignatories":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"object","properties":{"memberEmails":{"maxItems":100,"type":"array","items":{"type":"string"}},"companySignatoryEmail":{"type":"string"}},"required":["memberEmails","companySignatoryEmail"],"additionalProperties":false}},"entityOperatingAgreementEmails":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"string"}},"vehicle":{"type":"object","properties":{"type":{"type":"string","enum":["blind-pool","spv"]},"isSeries":{"type":"boolean"},"masterEntityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"address":{"type":"object","properties":{"line1":{"type":"string","minLength":1},"line2":{"type":["string","null"]},"city":{"type":"string","minLength":1},"region":{"type":["string","null"]},"postalCode":{"type":["string","null"]},"hasNoPostalCode":{"type":["boolean","null"]},"countryCode":{"type":"string","minLength":2,"maxLength":2}}}}}},"required":["isTestFund","testFundConfirmation","usesFundUnits","minAccreditationLevel","requiresBeneficialOwnerCheck","requiresCfiusCheck","requiresBeneficialOwnerId","strategy","fundClasses","templateAgreementTogglesById","administratorEntityId","managers","isContinuationVehiclePurchasingVehicle","isRolloverVehicle","taxContinuation","vehicle"],"additionalProperties":false},"carriedFrom":{"anyOf":[{"type":"object","properties":{"fundId":{"type":"string"},"legalName":{"type":"string"}},"required":["fundId","legalName"],"additionalProperties":false},{"type":"null"}]},"canManuallyMarkTestFund":{"type":"boolean"},"adminReserveAmount":{"type":"number"},"agreementTemplateToggles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"agreementTemplateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"variableName":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"defaultValue":{"type":"boolean"},"editable":{"type":"boolean"},"sortIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"typeName":{"type":"string"},"documentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id","agreementTemplateId","variableName","name","description","defaultValue","editable","sortIndex","typeName","documentId"],"additionalProperties":false}}},"required":["draft","carriedFrom","canManuallyMarkTestFund","adminReserveAmount","agreementTemplateToggles"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false,"$defs":{"__schema0":{"type":"object","properties":{"instrument":{"type":"string","enum":["stock","forward-contract","fund-interest","safe","note","other"]},"companySourceId":{"type":"string"},"companyLegalName":{"type":"string"},"companyName":{"type":["string","null"]},"anticipatedFeeInclusion":{"type":"string","enum":["includes-fee","excludes-fee"]},"anticipatedValuation":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"anticipatedValuationType":{"type":"string","enum":["pre-money","post-money"]},"isAnticipatedValuationBasedOnNextRound":{"type":"boolean"},"isAnticipatedPricingUnknown":{"type":"boolean"},"areFeesUnknown":{"type":"boolean"},"anticipatedSharePrice":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"currencyCode":{"type":"string","pattern":"^[A-Z]{3}$"},"securityType":{"type":["string","null"]},"discountRate":{"anyOf":[{"type":"number","minimum":0,"exclusiveMaximum":1},{"type":"null"}]},"hasMostFavoredNationClause":{"type":["boolean","null"]},"hasProRataRight":{"type":["boolean","null"]},"templateFees":{"type":"array","items":{"type":"object","properties":{"earningCondition":{"type":"string","enum":["occurrence-date","fund-close","initial-investment"],"description":"occurrence-date earns on the contractual schedule occurrence; fund-close earns on the later of that occurrence and the recorded successful final fundraising close. initial-investment earns on the later of that occurrence and the documented initial investment event. An unknown event remains unearned; bank payment is not an earning event."},"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"type":{"type":"string","enum":["admin-fee","management-fee","carried-interest","escrow-fee","fund-cost","deferral-fee","broker-fee"]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"percentage":{"description":"The rate as a fraction of one: 0.02 for 2%.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"amount":{"type":["number","null"]},"basisAmountOverride":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"quotedFrequency":{"type":"string","enum":["one-time","quarterly","annually"]},"accrualType":{"type":"string","enum":["upfront","periodic","at-exit"]},"accrualFrequency":{"anyOf":[{"type":"string","enum":["quarterly","annually"]},{"type":"null"}]},"isRefundable":{"type":"boolean"},"fromYear":{"type":"integer","minimum":1,"maximum":9007199254740991},"toYear":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"collectionMethod":{"type":"string","enum":["from-invested-capital","from-net-commitment","from-gross-commitment","from-proceeds","from-fee-capital-call","from-fee-capital-call-on-gross"]},"splitProRata":{"type":["boolean","null"]},"note":{"type":["string","null"]},"hurdles":{"type":"array","items":{"type":"object","properties":{"hurdle":{"type":"number"},"metric":{"type":"string","enum":["net-moic","net-irr","gross-moic","gross-irr"]},"feeRate":{"type":"number"},"withinWindowInMonths":{"type":["number","null"]},"catchUpRate":{"description":"For an IRR tier, the share of each distribution taken during catch-up: 1 for a full catch-up, null for none.","anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"prefCompounding":{"description":"For an IRR tier, how the preferred return accrues: 'annual' or 'simple'.","anyOf":[{"type":"string","enum":["annual","simple"]},{"type":"null"}]}},"required":["hurdle","metric","feeRate"]}}},"required":["earningCondition","type","quotedFrequency","accrualType","accrualFrequency","isRefundable","fromYear","collectionMethod"]}},"underlying":{"allOf":[{"$ref":"#/components/schemas/setupResponse/$defs/__schema0"}]}},"required":["instrument","anticipatedFeeInclusion","anticipatedValuationType","isAnticipatedValuationBasedOnNextRound","isAnticipatedPricingUnknown","areFeesUnknown","currencyCode"]}}},"details":{"type":"object","properties":{"fundId":{"type":"string","description":"Fund identifier with the fnd_ prefix, returned by creation or the existing /funds endpoint."}},"required":["fundId"],"additionalProperties":false},"detailsResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"fundId":{"type":"string"},"legalName":{"type":"string"},"fundSlug":{"type":"string"},"terminatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isFullyClosed":{"type":"boolean"},"settings":{"type":"object","properties":{"launchedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"fiscalYearEndMonth":{"anyOf":[{"type":"integer","minimum":1,"maximum":12},{"type":"null"}]},"fiscalYearEndDay":{"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"null"}]},"type":{"type":"string","enum":["primary","secondary"]},"vehicleType":{"type":"string","enum":["blind-pool","spv"]},"isVentureCapitalFund":{"type":"boolean"},"isRegulationSOffering":{"type":"boolean"},"requiresCfiusCheck":{"type":"boolean"},"requiresBeneficialOwnerCheck":{"type":"boolean"},"requiresBeneficialOwnerId":{"type":"string","enum":["non-us-natural-persons","all-natural-persons"]},"minBeneficialOwnershipPercentage":{"anyOf":[{"type":"number","minimum":0,"maximum":0.25},{"type":"null"}]},"investorQuestionnaireCustomQuestionAsMarkdown":{"type":["string","null"]},"distributionStrategy":{"type":"string","enum":["time-weighted-irr","pro-rata"]},"carryWaterfallStyle":{"anyOf":[{"type":"string","enum":["european","american"]},{"type":"null"}]},"carryBasisType":{"anyOf":[{"type":"string","enum":["fund-purchase-only","fund-purchase-plus-fees","lp-net-capital","lp-all-in-capital"]},{"type":"null"}]},"carryDealLossRecovery":{"anyOf":[{"type":"string","enum":["none","realized-losses"]},{"type":"null"}]},"carryClawback":{"anyOf":[{"type":"string","enum":["fund-end","none"]},{"type":"null"}]},"crystallizeCarryOnTransfer":{"type":"boolean"},"enableCatchupFees":{"type":"boolean"},"catchupFeesStartDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"feeAccrualRule":{"type":"string","enum":["subscription-agreement-signed","subscription-closed"]},"administratorEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"registeredAgentEntityId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"additionalProperties":false},"editableFields":{"type":"array","items":{"type":"string","enum":["launchedAt","fiscalYearEndMonth","fiscalYearEndDay","type","vehicleType","isVentureCapitalFund","isRegulationSOffering","requiresCfiusCheck","requiresBeneficialOwnerCheck","requiresBeneficialOwnerId","minBeneficialOwnershipPercentage","investorQuestionnaireCustomQuestionAsMarkdown","distributionStrategy","carryWaterfallStyle","carryBasisType","carryDealLossRecovery","carryClawback","crystallizeCarryOnTransfer","enableCatchupFees","catchupFeesStartDate","feeAccrualRule","administratorEntityId","registeredAgentEntityId"]}}},"required":["fundId","legalName","fundSlug","terminatedAt","isFullyClosed","settings","editableFields"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"entities":{"type":"object","properties":{"query":{"type":"string","description":"Search text. An empty string lists the first available choices."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of discovery results, from 1 through 100. Supply explicitly."},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Zero-based number of discovery results to skip. Increase by the returned count; stop on a short page."}},"required":["query","limit","offset"],"additionalProperties":false},"entitiesResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"legalName":{"type":"string"},"slug":{"type":"string"},"teamId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"teamName":{"type":["string","null"]},"teamSlug":{"type":["string","null"]}},"required":["id","legalName","slug","teamId","teamName","teamSlug"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"query":{"type":"string"},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["query","limit","offset"],"additionalProperties":false}},"required":["entities","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"companies":{"type":"object","properties":{"query":{"type":"string","description":"Search text. An empty string lists the first available choices."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of discovery results, from 1 through 100. Supply explicitly."},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Zero-based number of discovery results to skip. Increase by the returned count; stop on a short page."}},"required":["query","limit","offset"],"additionalProperties":false},"companiesResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"companies":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"bestCompanySourceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"companyLegalName":{"type":["string","null"]},"domain":{"type":["string","null"]}},"required":["id","bestCompanySourceId","name","companyLegalName","domain"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"query":{"type":"string"},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["query","limit","offset"],"additionalProperties":false}},"required":["companies","pagination"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"v1LpList":{"type":"object","properties":{}},"v1LpListResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"totalCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lps":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"displayName":{"type":["string","null"]},"commitmentCount":{"type":"number"},"fundCount":{"type":"number"},"entityIds":{"type":"array","items":{"type":"string"}}},"required":["userId","email","displayName","commitmentCount","fundCount","entityIds"],"additionalProperties":false}}},"required":["totalCount","lps"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"v1LpPortfolio":{"type":"object","properties":{"email":{"description":"Verified invitation email, trimmed and lowercased. Unverified accounts are excluded from the frozen v1 API.","type":"string"},"fund_legal_name":{"description":"Optional case-insensitive exact legal name. All matching funds are included; prefer fund_id for an unambiguous selection.","type":"string"}},"required":["email"]},"v1LpPortfolioResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"lp":{"type":"object","properties":{"email":{"type":"string"},"displayName":{"type":["string","null"]},"entityCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["email","displayName","entityCount"],"additionalProperties":false},"summary":{"type":"object","properties":{"totalCommitted":{"type":"number"},"totalCalled":{"type":"number"},"totalPaid":{"type":"number"},"totalDistributed":{"type":"number"},"totalFeesAccrued":{"type":"number"},"fundCount":{"type":"number"}},"required":["totalCommitted","totalCalled","totalPaid","totalDistributed","totalFeesAccrued","fundCount"],"additionalProperties":false},"funds":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"capitalCalled":{"type":"number"},"capitalPaid":{"type":"number"},"distributed":{"type":"number"},"feesAccrued":{"type":"number"},"feesByType":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Recognized fee amounts keyed by fee type; excludes realized carry, reported separately."},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"isActive":{"type":"boolean"}},"required":["fundLegalName","fundClassName","subscriptionAmount","capitalCalled","capitalPaid","distributed","feesAccrued","feesByType","signedAt","isActive"],"additionalProperties":false}},"commitments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"subscriptionAmount":{"type":"number"},"signedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"subscribedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","fundClassName","subscriptionAmount","signedAt","subscribedAt","createdAt"],"additionalProperties":false}},"taxDocuments":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"taxYear":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fileName":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","taxYear","fileName","createdAt"],"additionalProperties":false}},"pendingSignatures":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"purpose":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["fundLegalName","purpose","createdAt"],"additionalProperties":false}},"unpaidCapitalCalls":{"type":"array","items":{"type":"object","properties":{"fundLegalName":{"type":"string"},"amount":{"type":"number"},"dueDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"emailSentAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["fundLegalName","amount","dueDate","emailSentAt"],"additionalProperties":false}},"holdings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"fund-interest"},"status":{"type":"string","enum":["active","pending-subscription"]},"fundLegalName":{"type":"string"},"fundClassName":{"type":["string","null"]},"holderEntityName":{"type":["string","null"]},"featuredPortfolioCompanies":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"logoUrl":{"type":["string","null"]}},"required":["name","logoUrl"],"additionalProperties":false}},"entryPrice":{"type":"number"},"entryDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"numUnits":{"type":["number","null"]},"unitPrice":{"type":["number","null"]},"grossValue":{"type":"number"},"distributionsReceived":{"type":"number"},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"irr":{"type":["number","null"]},"isActive":{"type":"boolean"},"endedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["type","status","fundLegalName","fundClassName","holderEntityName","featuredPortfolioCompanies","entryPrice","entryDate","numUnits","unitPrice","grossValue","distributionsReceived","totalGrowthAmount","totalGrowthPercent","irr","isActive","endedAt"],"additionalProperties":false}},"holdingsSummary":{"type":"object","properties":{"totalEntryPrice":{"type":"number"},"totalGrossValue":{"type":"number"},"totalDistributionsReceived":{"type":"number"},"totalGrowthAmount":{"type":"number"},"totalGrowthPercent":{"type":["number","null"]},"weightedIrr":{"description":"Portfolio money-weighted XIRR, despite the legacy field name; a fraction, not a percentage number.","type":["number","null"]}},"required":["totalEntryPrice","totalGrossValue","totalDistributionsReceived","totalGrowthAmount","totalGrowthPercent","weightedIrr"],"additionalProperties":false}},"required":["lp","summary","funds","commitments","taxDocuments","pendingSignatures","unpaidCapitalCalls","holdings","holdingsSummary"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"v1LpCommit":{"type":"object","properties":{"email":{"description":"Verified invitation email, trimmed and lowercased. Unverified accounts are excluded from the frozen v1 API.","type":"string"},"fund_legal_name":{"type":"string","minLength":1,"description":"Exact, case-sensitive fund legal name within the key’s team. Duplicate names select an unspecified match."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Positive subscription amount in the fund’s currency, in major units (not cents). The same minimum/maximum and editing rules as the investor portal apply."}},"required":["email","fund_legal_name","amount"]},"v1LpCommitResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"commitmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw UUID, unlike the cmt_ IDs on read endpoints."},"fundId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw UUID, unlike the fnd_ IDs on read endpoints."},"fundLegalName":{"type":"string"},"entityLegalName":{"type":["string","null"]},"subscriptionAmount":{"type":["number","null"]},"isNew":{"type":"boolean"},"nextSteps":{"type":"object","properties":{"kycRequired":{"type":"boolean"},"imApprovalRequired":{"type":"boolean"}},"required":["kycRequired","imApprovalRequired"],"additionalProperties":false},"subscriptionAgreement":{"type":"object","properties":{"sent":{"type":"boolean"},"pending":{"type":"boolean"},"error":{"type":["string","null"]}},"required":["sent","pending","error"],"additionalProperties":false}},"required":["commitmentId","fundId","fundLegalName","entityLegalName","subscriptionAmount","isNew","nextSteps","subscriptionAgreement"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false},"fileDefaultFormD":{"type":"object","properties":{"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Raw UUID of the pending Form D task. Filing uses its existing modal defaults; all required filing details must already be recorded."}},"required":["taskId"]},"fileDefaultFormDResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"apiKeyId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"jobId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"taskId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"message":{"type":"string"}},"required":["apiKeyId","jobId","taskId","message"],"additionalProperties":false}},"required":["success","data"],"additionalProperties":false}}}}