Unify and manage your data

Bulk update relation start or end entities

Learn more about the API to bulk update start or end entities of existing relationships.

Use this API to bulk update the start or end entities of an existing relationship, based on specified filter conditions. Earlier, to change the start or end object of a relation, you had to delete the existing relation and create a new one.

Request

POST {ApplicationURL}/updateRelationStartEnd
POST {ApplicationURL}/api/{tenantId}/updateRelationStartEnd

Parameters

Table 1. Parameters
Parameter Required Details
Headers Authorization Yes Information about authentication access token in format "Bearer <accessToken>" (see details in Authentication API ).
BodyfilterYesFilter condition to select the relation that you want to update. For more information, see topic Relations Filtering.
updateStartOrEndYesDenotes whether the start or end object has to be updated. Specify START to update the start object and END to update the end object.
entityURIYesThe URI of the new entity that will replace the start or end object.
uriListNoThe list of URIs that need to be updated. Omit this if you have specified a filter.

Task payload - examples

Example 1 - Update end entity for a specific relationship URI

{
  "filter": "in(uri, 'relations/0000sCT')",
  "updateStartOrEnd": "END",
  "entityURI": "entities/0000RYr"
}

Example 2 - Update all start entities for all relationships that have HasAddress relationship type

{
  "filter": "equals(type, 'configuration/relationTypes/HasAddress')",
  "updateStartOrEnd": "START",
  "entityURI": "entities/0000RYr"
}

Example 3 - Update start entity based on a URI list of relationships

{
   "uriList": [ "relations/0000sCT" , "relations/0000gUT"],
   "updateStartOrEnd": "START",
   "entityURI": "entities/0000RYr"
}

Example 4 - Update start entity for all relationships of type IndividualHasAddress and a specific start entity URI

{
    "filter": "equals(type, 'configuration/relationTypes/IndividualHasAddress') and equals(startObject, 'entities/0AFmt9f')",
    "updateStartOrEnd": "START",
    "entityURI": "entities/0AFmkd9"
}

Response

[
    {
        "id": "22dd5fbd-0a19-4736-b90e-8561ec4c2278",
        "groupId": "ef1f45e7-e8b4-4458-9b98-0787314e8c4d",
        "createdTime": 1749041087134,
        "createdBy": "saurabh.agarwal",
        "updatedTime": 1749041087134,
        "updatedBy": "saurabh.agarwal",
        "type": "com.reltio.businesslogic.tasks.update.UpdateRelationStartEndTask",
        "status": "SCHEDULED",
        "name": "Update Relation Start End Task for tenant : TurboView",
        "createdOnHost": "dataload-5685f5bf95-r4bmh",
        "parallelExecution": false,
        "nodesGroup": "default",
        "parameters": {
            "tenantId": "TurboView",
            "uriList": null,
            "distributed": "false",
            "filter": "equals(type, 'configuration/relationTypes/IndividualHasAddress') and equals(startObject, 'entities/0AFmt9f')",
            "entityUri": "0AFmkd9",
            "updateStartOrEnd": "START"
        },
        "currentState": {},
        "duration": "0s"
    }
]
This API submits a task to perform the requested updates. In the above response, note the id field , which denotes the task ID of the task that is created for the update.
Note: You can get information about this task by using the following request:
GET {TenantURL}/tasks/{taskId}
Headers: Authorization: Bearer c3f28fdd-e082-4f90-8840-9896914eaf41