Join fundraise investor

View as Markdown
Joins an entity or person investor to a fundraise round with optional amountInvested attribution. amountInvested is a plain decimal number in the fundraise transaction currency. API and MCP request bodies use JSON numbers such as 220000 or 123456.78; aventure-cli uses --amount-invested 220000 or --amount-invested 123456.78. Do not send currency signs, currency codes, comma grouping, quoted numeric strings, or abbreviations such as 220k or 0.22M. PATCH with amountInvested:null clears the value. Use --entity-id or --entity-slug for the fundraising/portfolio company that raised the round — always a company, never the fund or investment firm that supplied the capital. For an Investment Firm's outgoing investment, pass the portfolio company that received the money here and identify the firm with --investor-entity-id or --investor-entity-slug. Use transactionId for the round id, or round plus dateAnnounced when transactionId is unknown. Investor entity/person selectors reference existing records only. Create a referenced investor entity first with POST /v1/entities/detail or a referenced investor person first with POST /v1/people/detail, then create the join.

Authentication

AuthorizationBearer

User bearer token: Supabase or Clerk session JWT, Clerk OAuth access token, or Clerk personal API key

OR
X-API-Keystring

Admin API key for system-to-system write operations

Query parameters

idstringOptionalformat: "uuid"

Owner-scoped resource UUID selector.

slugstringOptionalformat: "^[a-z0-9_-]+$"<=255 characters

Owner-scoped resource slug selector.

sourceTypeenumRequired
Write provenance source type.
sourceDetailstringRequired
Source detail or reviewer reference for the write.
sourceProviderstringOptional

Provider name for provider-native IDs or slugs.

sourceProviderIdstringOptional

Provider-native source ID.

sourceProviderSlugstringOptional

Provider-native source slug.

actorTypeenumOptional

Actor type; inferred as agent when agentChassis and agentModel are supplied, or as employee from an authenticated user JWT session.

Allowed values:
agentChassisstringOptional

Agent chassis token for agent-authored writes.

agentModelstringOptional

Agent model id for agent-authored writes.

Request

This endpoint expects an object.
amountInvesteddouble or nullOptional

Investor-level attributed amount invested in the fundraise transaction currency. API and MCP request bodies use a JSON number such as 220000 or 123456.78; aventure-cli uses —amount-invested 220000 or —amount-invested 123456.78. Do not send currency signs, currency codes, comma grouping, quoted numeric strings, or abbreviations such as 220k or 0.22M. In PATCH application/merge-patch+json, amountInvested:null clears the value.

dateAnnounceddatetime or nullOptional

Exact announced timestamp used to disambiguate same-label rounds

financialInstrumentTypeenum or nullOptional

Financial instrument/vehicle for this investor’s participation (e.g. SAFE, Preferred Stock, Convertible Note). Lets one round carry distinct vehicles per investor join. In PATCH application/merge-patch+json, omit to preserve the current value; financialInstrumentType:null clears it.

investorEntityIdstring or nullOptionalformat: "uuid"

Existing investor entity identifier. The entity must already exist; create a referenced investor entity first with POST /v1/entities/detail.

investorEntitySlugstring or nullOptional

Existing investor entity slug when investorEntityId is omitted. The entity must already exist; create it first with POST /v1/entities/detail.

investorPersonIdstring or nullOptionalformat: "uuid"

Existing investor person identifier. The person must already exist; create a referenced investor person first with POST /v1/people/detail.

investorPersonSlugstring or nullOptional

Existing investor person slug when investorPersonId is omitted. The person must already exist; create it first with POST /v1/people/detail.

leadInvestorboolean or nullOptional

Whether this investor led the round — the lead/anchor investor that set terms or made the primary commitment. Optional: defaults to false on create and replace when omitted; in PATCH application/merge-patch+json, omit to preserve the current value.

roundstring or nullOptional
Raw fundraise round label used when transactionId is omitted
transactionIdstring or nullOptionalformat: "uuid"

Fundraise round transaction id. The target entity id/slug is the entity that raised the round; for an Investment Firm investment, use the portfolio/fundraising company as target and identify the firm with investorEntityId or investorEntitySlug. When omitted, round lookup uses the target entity plus round/dateAnnounced.

Response

Created
createdAtdatetime
Created timestamp
idstringformat: "uuid"
Fundraise investor join identifier
investorobject

Investor identity, nested: investor.entityId for a firm/fund investor or investor.personId for an angel — exactly one is set. Read responses carry ids only, never flat investor* fields or names; resolve display names with GET /v1/entities/detail or GET /v1/people/detail.

leadInvestorboolean

Whether this investor is the lead investor for the round — the lead/anchor investor that set the round terms or made the primary commitment.

transactionIdstringformat: "uuid"
Fundraise transaction identifier
updatedAtdatetime
Updated timestamp
amountInvesteddouble or nullOptional

Investor-level attributed amount invested in the fundraise transaction currency. Serialized as a plain JSON number such as 220000 or 123456.78; no currency sign, currency code, comma grouping, or abbreviated amount text is valid.

financialInstrumentTypeenum or nullOptional

Financial instrument/vehicle for this investor’s participation in the round (e.g. SAFE, Preferred Stock, Convertible Note). Distinct from the round-level financialInstrumentType: a single round can record different vehicles per investor join — e.g. an accelerator batch holding a capped SAFE and an uncapped-MFN SAFE as two joins.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
406
Not Acceptable Error
409
Conflict Error
415
Unsupported Media Type Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error