Create relationship row
Authentication
User bearer token: Supabase or Clerk session JWT, Clerk OAuth access token, or Clerk personal API key
Admin API key for system-to-system write operations
Path parameters
Query parameters
Provider name for provider-native IDs or slugs.
Provider-native source ID.
Provider-native source slug.
Actor type; inferred as agent when agentChassis and agentModel are supplied, or as employee from an authenticated user JWT session.
Agent chassis token for agent-authored writes.
Agent model id for agent-authored writes.
Request
General relationship type. Writable values: acceleratorParticipant, affinity, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor. Use entities relationships types for policy flags; non-acquisition writes accept joinable=true values, while acquisition events must use the entity acquisitions endpoint with acquirerEntityId.
Source entity UUID. Non-acquisition PATCH/PUT writes may repoint this field in place. For type-oriented row writes this is the canonical source role: productService provider, fundManagerFirm fund, or acceleratorParticipant participant. For affinity this is the member organization. Move Product/Service provider ownership by repointing the productService row to the replacement provider; do not clear the current row.
Target entity UUID. Non-acquisition PATCH/PUT writes may repoint this field in place. For acceleratorParticipant this is the accelerator entity and must have typeRecord=Investment Firm. For affinity this is the provider organization.
Relationship-specific detail. Required for acceleratorParticipant as batch=<label>, or program=<name>; batch=<label> only when the program is a distinct sub-program (e.g. a Techstars track). The row already points to the accelerator entity, so program= must not repeat the accelerator name or the batch, and batch= must not contain the accelerator name; otherwise the write is rejected accelerator-detail-restates-target.
Current-state curation flag. CREATE and PUT default omitted values to true; PATCH preserves the existing value when omitted; false hides the row from default reads.
Primary/renderable curation flag. CREATE and PUT default omitted values to true; PATCH preserves the existing value when omitted; false hides the row from default reads.
Response
Joined entity on the other side of this relationship — read-only display projection. Writes identify both sides only via the flat sourceEntityId and targetEntityId UUIDs, never a nested entity object.
Canonical relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor. Similarity endpoint rows use stored relationship types when a curation row exists and calculated when the row comes from semantic/vector similarity.
Competitive comparison signals for the joined entity when it is a product/service provider — sells-to, pricing model, ownership, funding, and website. Null for every other joined entity. Lets comparison surfaces render provider columns without a second per-provider fetch.
Relationship-specific detail. acceleratorParticipant rows use batch=<label>, or program=<name>; batch=<label> only for a distinct sub-program. program= never repeats the accelerator name or the batch, and batch= never contains the accelerator name — the row already points to the accelerator entity.
Integer entity_relationship.id row id, not an entity UUID
Current-state curation flag for this relationship row. Default relationship reads return only rows where isCurrent=true and isPrimary=true.
Primary/renderable curation flag for this relationship row. isCurrent=false or isPrimary=false hides the row from default relationship reads.
Canonical source entity UUID stored on the relationship row. Compare with the requested entity id and /v1/entities/relationships/types sourceRole/targetRole to orient directional relationships such as parent.
Canonical target entity UUID stored on the relationship row. Compare with the requested entity id and /v1/entities/relationships/types sourceRole/targetRole to orient directional relationships such as parent.