Transcend Docs
API referencePreference record identifiers

Update identifiers on preference records

POST
/v1/preferences/{partition}/update-identifiers

Batch update identifiers on preference records. This endpoint updates identifiers on preference records and does not trigger DSR workflows. Use mergeRecordsOnConflict to control merging behavior and returnIdentifiers to include identifiers in the response.

Rate Limits

  • 100 requests per organization per minute (default).
  • This limit can be increased upon request.

Rate Limiting Headers

  • X-RateLimit-Limit: The maximum number of requests allowed in the current window.
  • X-RateLimit-Remaining: The number of requests remaining in the current window.
  • X-RateLimit-Reset: The time at which the current rate limit window resets in ISO 8601 format.
  • Retry-After: (on 429) The number of seconds to wait before making a new request.

Transcend ID Restrictions

  • Use { "name": "transcend", "value": "<uuid>" } as the anchorIdentifier to locate a preference record.
  • You cannot update the transcend identifier value — doing so fails with: "The transcend identifier cannot be added, changed, or removed through this request; it is system-managed."

Authorization

Transcend_API_Key Modify User Stored Preferences
headerAuthorizationBearer <token>

authorization: Bearer <>

Scope: Modify User Stored Preferences

Path Parameters

partition*string

The ID of the partition in the Preference Store.

Header Parameters

authorization*string

An API key generated from the Transcend dashboard: https://app.transcend.io/infrastructure/api-keys.

x-sombra-authorization?string

The Sombra internal key. This header is only needed for self-hosted Sombra gateways. See https://docs.transcend.io/docs/dsr-automation/api-integration/authentication#authenticating-to-sombra

content-type*string

Specify content-type: application/json for a JSON response from the Transcend API.

Matchapplication-json

Request Body

application/json
  1. body
records*array<>

List of identifier update operations to apply in a single batch. Max 10 records.

Itemsitems <= 10

Response Body

The response includes the result of each update operation in the records array, along with any partial failures in failures and batch failures in errors. Note: When the response includes failures, clients can only retry the failed items from the original request after addressing the reported errors. When the response includes errors, clients should retry the entire batch after addressing the reported errors.

application/json
  1. response
records?array<>

Per-record results for each input operation. Order matches the input records array.

failures?array<>

List of failed operations within the batch. Use index to map back to the input record.

errors?array<string>

Top-level errors that caused the entire batch to fail. If present, clients should retry the request.

curl -X POST 'https://multi-tenant.sombra.transcend.io/v1/preferences/string/update-identifiers' \  -H 'authorization: string' \  -H 'content-type: string' \  -H 'Content-Type: application/json' \  -d '{  "records": [    {      "anchorIdentifier": {        "name": "email",        "value": "xyz@foo.com"      },      "update": {        "name": "phone",        "oldValue": "+1231231234",        "newValue": "+1231231235"      },      "timestamp": "2025-11-26T17:33:13.515Z"    }  ]}'
Example Response
{  "records": [    {      "success": true    },    {      "success": true    }  ],  "failures": [],  "errors": []}