Skip to main content

Manage Relationships

Use relationship endpoints when you need to list, add, update, or remove links between records.
/api/v2/{record_type}/{record_id}/relationship/{api_name}

Read a relationship

curl "https://api.reevo.ai/api/v2/contact/<contact_id>/relationship/accounts" \
  -H "Authorization: Bearer <your-api-key>"
Responses include the parent, relationship name, related items, and pagination metadata.

Add a relationship

Add a target by ID:
{
  "related_record_id": "<account_id>"
}
Or match the target by a unique field:
{
  "related_record_match": {
    "domain_name": "acme.com"
  }
}
related_record_match is useful when an upstream system knows an account domain or contact email but not the Reevo record ID.

Update a relationship edge

Per-edge PATCH is available only on typed junction relationships where the edge has its own attributes.
curl -X PATCH "https://api.reevo.ai/api/v2/contact/<contact_id>/relationship/accounts/<target_id>" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "CTO",
    "is_primary": true
  }'
Generic relationship PATCH is not available. For relationships without per-edge state, delete and re-add the edge if needed.

Remove a relationship

curl -X DELETE "https://api.reevo.ai/api/v2/contact/<contact_id>/relationship/accounts/<target_id>" \
  -H "Authorization: Bearer <your-api-key>"

Relationship support by resource

ResourceRelationship support
contactTyped accounts, typed opportunities, plus generic relationship names
accountTyped contacts, plus generic relationship names
opportunityTyped contacts, plus generic relationship names
taskGeneric relationship names
noteGeneric relationship names
meetingGeneric relationship reads only; meeting writes are read-only
Custom objectsGeneric relationship names
activityNo relationship endpoints

Common errors

Error codeUsually meansHow to recover
unknown_relationshipRelationship API name is not declared for this record typeCheck /_schema/{record_type}
target_record_not_foundTarget record ID or match value did not resolveRe-query or create the target first
invalid_matching_fieldMatch key is not a unique target fieldUse a field marked unique in schema
ambiguous_matchMatch resolved to more than one targetResolve duplicates or match by ID
field_not_updatableThe relationship maps to a read-only or singleton field that cannot be changed through this pathUse the supported parent field or endpoint