Skip to content

Data Matching API (2)

This API provides services for maintaining matching definitions used as configuration for matching jobs, as well as services for matching data with a job.

Download OpenAPI description
Languages
Servers
Mock server

https://developer.cdq.com/_mock/apis/data-matching-api/api-v2/

Production

https://api.cdq.com/data-matching/rest/

Analytics

Provides functionalities for generating and polling data matching reports. These endpoints support creating reports and checking their status, ensuring comprehensive analytics for data matching activities.

Operations

Data Matching

Provides functionalities for managing Data Matching Definitions, which are configurations for matching jobs to identify duplicates or link records across data sources. These endpoints support creating, reading, updating, and deleting these configurations.

Operations

Duplicate Matching

Provides functionalities for managing duplications within a single data source. These endpoints support creating Deduplication Job and checking the Deduplication Job Status.

Operations

Entity Matching

Provides functionalities for matching business partners. These endpoints support matching business partners against data matching definitions, ensuring comprehensive analytics for data matching activities.

Linkage Matching

Provides functionalities for managing linkages across multiple data sources. These endpoints support creating Linkage Job and checking the Linkage Job Status.

Operations

Public

Provides functionalities for polling the Matching Reports.

Operations

User Feedback

Provides functionalities for managing user feedback related to data matching decisions.

Operations
Operations
Operations

Retrieve duplicate business partner records

Request

<b style="color: white; background: #077fbb; border-radius: 5px; margin-left: 0; padding: 2px 10px; font-size: 14px; vertical-align: super;">BETA</b><br>Returns a paginated list of potential duplicate business partner records based on search criteria

Security
apiKey
Query
matchingScorenumber(double)[ 0 .. 1 ]required

Minimum matching score threshold

Default 0.8
Example: matchingScore=0.8
dataMonitorIdstringrequired

Unique Data Monitor identifier

Example: dataMonitorId=72d6900fce6b326088f5d9d91049e3e6
businessPartnerIdstring(BusinessPartnerId)

Business Partner ID provided by CDQ that is unique across all stored Business Partners in CDQ Cloud

Example: businessPartnerId=63e635235c06b7396330fe40
statusstring(EntityLinkStatusEnum)

Status of the entity matching link

Enum ValueDescription
INFERRED

This status means that the link was identified as a result of the matching process. It is purely algorithm based.

ASSERTED

This status means that the link was manually reviewed and approved.

RETRACTED

Status was INFERRED but status was manually changed. This can be either customer stating that the link was not valid, the data of the records changed or matching configuration was altered.

Example: status=INFERRED
limitinteger(int32)[ 1 .. 250 ]

Number of items to be returned.

Default 20
Example: limit=100
startAfterstring(StartAfter)

Indicator for the next page. Used together with nextStartAfter from the result.

Example: startAfter=5712566172571652
featuresOnArray of strings(EntityMatchingLinksReadFeatureEnum)

Enable additional features for entity matching links.

Items ValueDescription
NUMBER_OF_TOTAL

When enabled it will fetch total number of records.

Example: featuresOn=NUMBER_OF_TOTAL
dataSourceIdstring(BusinessPartnerStorageDataSourceId)

Unique Storage's Data Source identifier.

Example: dataSourceId=648824a691d8d2503d65103e
curl -i -X GET \
  'https://developer.cdq.com/_mock/apis/data-matching-api/api-v2/entityresolution/entitymatchinglinks?matchingScore=0.8&dataMonitorId=72d6900fce6b326088f5d9d91049e3e6' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

Successful response with list of duplicates

Bodyapplication/json
statusobject(Status)

Details about status or error of a service

startAfterstring(StartAfter)

The ID which is used to read the page.

Example: "5712566172571652"
limitinteger(Limit)

Number of items per page.

Example: "100"
nextStartAfterstring(NextStartAfter)

Provides a value to be used as a startAfter in next page request.

Example: "5712566172571652"
totalinteger(PageTotal)

Total number of items which can be paged.

Example: "67"
valuesArray of objects(EntityMatchingLink)

List of entity matching links.

Response
application/json
{ "limit": 20, "total": 125, "startAfter": "aXhcYWdlIjoxLCJzaXplIjoyMH0=", "nextStartAfter": "eyJwYWdlIjoyLCJzaXplIjoyMH0=", "values": [ {} ] }

Update entity matching link status

Request

<b style="color: white; background: #077fbb; border-radius: 5px; margin-left: 0; padding: 2px 10px; font-size: 14px; vertical-align: super;">BETA</b><br>Update the link status of an entity matching link. Allows changing status from:

  • INFERRED to RETRACTED or ASSERTED
  • RETRACTED to ASSERTED
  • ASSERTED to RETRACTED

Note: Cannot change status back to INFERRED once it has been manually modified.

Security
apiKey
Path
idstring(EntityMatchingLinkId)required

ID of the entity matching link to update

Example: 5712566172571652
Bodyapplication/jsonrequired
linkStatusstring(EntityLinkStatusUpdateEnum)required

Entity link status update enum (excludes INFERRED)

Enum ValueDescription
ASSERTED

Manually verified and approved as a correct match

RETRACTED

Manually marked as incorrect match or duplicate

Example: "RETRACTED"
linkStatusUserCommentstring<= 128 characters

Optional user comment explaining the status change

Example: "Small Update - completely wrong duplicate"
curl -i -X PATCH \
  https://developer.cdq.com/_mock/apis/data-matching-api/api-v2/entityresolution/entitymatchinglinks/5712566172571652 \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "linkStatus": "RETRACTED",
    "linkStatusUserComment": "Small Update - completely wrong duplicate"
  }'

Responses

Successfully updated entity matching link

Bodyapplication/json
idstring(EntityMatchingLinkId)

ID of the Entity Matching Link.

Example: "5712566172571652"
linkStatusstring(EntityLinkStatusEnum)

Link status enum.

Enum ValueDescription
INFERRED

This status means that the link was identified as a result of the matching process. It is purely algorithm based.

ASSERTED

This status means that the link was manually reviewed and approved.

RETRACTED

Status was INFERRED but status was manually changed. This can be either customer stating that the link was not valid, the data of the records changed or matching configuration was altered.

Example: "INFERRED"
linkStatusUserCommentstring

User comment associated with the status change

Example: "Small Update - completely wrong duplicate"
modifiedAtstring(ModifiedAt)

Date of modification (ISO 8601-compliant).

Example: "2025-08-29T09:46:53Z"
modifiedBystring(ModifiedBy)

User or Client UUID which modified the resource.

Example: "76248934691294444"
statusobject(Status)

Details about status or error of a service

Response
application/json
{ "id": "5712566172571652", "linkStatus": "INFERRED", "linkStatusUserComment": "Small Update - completely wrong duplicate", "modifiedAt": "2025-08-29T09:46:53Z", "modifiedBy": "76248934691294444", "status": { "code": "400", "technicalKey": "OK", "details": [], "path": "/v2/businesspartners/lookup", "timestamp": "2025-08-29T09:46:53Z" } }