Update relationship row by id

View as Markdown

Applies an RFC 7396 merge patch to one relationship row and returns the row, including isCurrent/isPrimary. Omitted isCurrent and isPrimary preserve the existing values; set both false to hide the row from default reads.

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

Path parameters

relationshipIdintegerRequired

Integer entity_relationship.id row id from EntityRelationship.id, not an entity UUID.

Query parameters

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

RFC 7396 merge patch
relationshipTypestringRequired

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.

sourceEntityIdstringRequiredformat: "uuid"

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.

targetEntityIdstringRequiredformat: "uuid"

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.

asOfdate or nullOptional
Effective date for this relationship when known
detailstring or nullOptional

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.

isCurrentboolean or nullOptional

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.

isPrimaryboolean or nullOptional

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.

sourcestring or nullOptional
Source URL or compact source label copied to the relationship row

Response

OK
entityobject

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.

relationshiplist of objects
Nested relationships for the joined entity
relationshipTypestring

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.

asOfdate or nullOptional
Effective date for this relationship when known
comparisonSignalsobject or nullOptional

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.

createdAtdatetime or nullOptional
detailstring or nullOptional

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.

idinteger or nullOptional

Integer entity_relationship.id row id, not an entity UUID

isCurrentboolean or nullOptional

Current-state curation flag for this relationship row. Default relationship reads return only rows where isCurrent=true and isPrimary=true.

isPrimaryboolean or nullOptional

Primary/renderable curation flag for this relationship row. isCurrent=false or isPrimary=false hides the row from default relationship reads.

sourcestring or nullOptional
Source URL or compact source label copied to the relationship row
sourceEntityIdstring or nullOptionalformat: "uuid"

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.

targetEntityIdstring or nullOptionalformat: "uuid"

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.

updatedAtdatetime or nullOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found 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