This API provides services for executing Business Partner Duplicate Matching process.
Data Matching API (3)
https://api.cdq.com/data-matching/rest/
Request
Create a new Data Matching Definition with the given configuration.
Configuration example:
<?xml version="1.0" standalone="no" ?>
<duke>
<object class="no.priv.garshol.duke.comparators.QGramComparator" name="NameComparator">
<param name="formula" value="DICE"/>
<param name="q" value="3"/>
</object>
<schema>
<threshold>0.7</threshold>
<property type="ignore">
<name>STORAGE_ID</name>
</property>
<property type="ignore">
<name>DATA_SOURCE_ID</name>
</property>
<property type="id">
<name>BUSINESS_PARTNER_ID</name>
</property>
<property lookup="required">
<name>COUNTRY_SHORTNAME</name>
<comparator>no.priv.garshol.duke.comparators.ExactComparator</comparator>
<low>0.0</low>
<high>0.5</high>
</property>
<property lookup="true">
<name>NAME</name>
<comparator>NameComparator</comparator>
<low>0.1</low>
<high>0.9</high>
</property>
</schema>
<database class="no.priv.garshol.duke.databases.LuceneDatabase">
<param name="max-search-hits" value="100"/>
<param name="min-relevance" value="0.9"/>
<param name="fuzzy-search" value="true"/>
<param name="boost-mode" value="INDEX"/>
</database>
<data-source class="cdq.cdl.matching.datasource.MatchingDataSource">
<column
cleaner="no.priv.garshol.duke.cleaners.LowerCaseNormalizeCleaner" name="businessPartner.address.country.shortName" property="COUNTRY_SHORTNAME"/>
<column
cleaner="no.priv.garshol.duke.cleaners.LowerCaseNormalizeCleaner"
configProperty="COUNTRY_SHORTNAME" name="businessPartner.names[0].value" property="NAME"/>
</data-source>
</duke>
A human-readable Name for the Data Matching Definition instance.
Type of the matching configuration.
Enum Value | Description |
---|---|
DEDUPLICATION | The matching configuration is used to identify duplicates in a storage. |
LINKAGE | The matching configuration is used to identify links between records in different storages. |
Holds the Duke XML configuration for data matching.
Configuration for generating reports related to the Data Matching Definition.
Configuration for creating Golden Records in the context of Data Matching.
- Production
https://api.cdq.com/data-matching/rest/datamatchingdefinitions
curl -i -X POST \
https://api.cdq.com/data-matching/rest/datamatchingdefinitions \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"name": "Custom Matching Definition Name",
"type": "DEDUPLICATION",
"xmlDukeConfiguration": "<duke>...</duke>",
"reportConfiguration": {
"header": [
{
"attributeJsonPath": "attributeJsonPath",
"columnName": "External ID"
}
]
},
"goldenRecordConfiguration": {
"decisionStrategy": {
"root": {
"rule": {
"type": "HAS_VALUE",
"jsonPath": "attributeJsonPath",
"valueType": "TEXT",
"expectedValues": [
"expectedValue"
]
},
"yesBranch": {},
"noBranch": {}
}
},
"creationStrategy": {
"type": "CONSTANT",
"protectedAttributes": [
"External ID"
],
"recordExclusionRules": [
{
"type": "HAS_VALUE",
"jsonPath": "attributeJsonPath",
"valueType": "TEXT",
"expectedValues": [
"expectedValue"
]
}
],
"attributeEnhancementRules": [
{
"attributes": [
"External ID"
],
"constraintChain": {
"constraints": [
{
"expectedValues": []
}
],
"allRecordsShouldMatch": "true",
"constraintChainType": "AND"
},
"creationType": "CONSTANT",
"creationConstant": "constantValue",
"executionType": "SET",
"fallbackExecutionType": "SET"
}
]
}
},
"workspace": {
"id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}'
OK
Id of the data matching definition.
A human-readable name for the Data Matching Definition instance.
Uniquely identifying ID of the organization.
Date of modification (ISO 8601-compliant).
Type of the matching configuration.
Enum Value | Description |
---|---|
DEDUPLICATION | The matching configuration is used to identify duplicates in a storage. |
LINKAGE | The matching configuration is used to identify links between records in different storages. |
Holds the Duke XML configuration for data matching.
Configuration for generating reports related to the Data Matching Definition.
Configuration for creating Golden Records in the context of Data Matching.
{ "id": "6461e6113b1865304b3038b6", "name": "Custom Matching Definition Name", "creatorUsername": "johndoe", "creatorOrganization": "cdq_monitor", "createdAt": "2025-08-15T11:08:26Z", "lastModifiedAt": "2025-08-15T11:08:26Z", "type": "DEDUPLICATION", "xmlDukeConfiguration": "<duke>...</duke>", "reportConfiguration": { "header": [ … ] }, "goldenRecordConfiguration": { "decisionStrategy": { … }, "creationStrategy": { … } }, "workspace": { "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4" } }
Maximum number of items to be returned in the result page.
Type of the matching configuration.
Enum Value | Description |
---|---|
DEDUPLICATION | The matching configuration is used to identify duplicates in a storage. |
LINKAGE | The matching configuration is used to identify links between records in different storages. |
- Production
https://api.cdq.com/data-matching/rest/datamatchingdefinitions
curl -i -X GET \
https://api.cdq.com/data-matching/rest/datamatchingdefinitions \
-H 'X-API-KEY: YOUR_API_KEY_HERE'
{ "page": "1", "pageSize": "100", "numberOfPages": "3", "total": "67", "values": [ { … } ] }
- Production
https://api.cdq.com/data-matching/rest/datamatchingdefinitions/{id}
curl -i -X GET \
https://api.cdq.com/data-matching/rest/datamatchingdefinitions/6461e6113b1865304b3038b6 \
-H 'X-API-KEY: YOUR_API_KEY_HERE'
OK
Id of the data matching definition.
A human-readable name for the Data Matching Definition instance.
Uniquely identifying ID of the organization.
Date of modification (ISO 8601-compliant).
Type of the matching configuration.
Enum Value | Description |
---|---|
DEDUPLICATION | The matching configuration is used to identify duplicates in a storage. |
LINKAGE | The matching configuration is used to identify links between records in different storages. |
Holds the Duke XML configuration for data matching.
Configuration for generating reports related to the Data Matching Definition.
Configuration for creating Golden Records in the context of Data Matching.
{ "id": "6461e6113b1865304b3038b6", "name": "Custom Matching Definition Name", "creatorUsername": "johndoe", "creatorOrganization": "cdq_monitor", "createdAt": "2025-08-15T11:08:26Z", "lastModifiedAt": "2025-08-15T11:08:26Z", "type": "DEDUPLICATION", "xmlDukeConfiguration": "<duke>...</duke>", "reportConfiguration": { "header": [ … ] }, "goldenRecordConfiguration": { "decisionStrategy": { … }, "creationStrategy": { … } }, "workspace": { "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4" } }
A human-readable name for the Data Matching Definition instance.
Type of the matching configuration.
Enum Value | Description |
---|---|
DEDUPLICATION | The matching configuration is used to identify duplicates in a storage. |
LINKAGE | The matching configuration is used to identify links between records in different storages. |
Holds the Duke XML configuration for data matching.
Configuration for generating reports related to the Data Matching Definition.
Configuration for creating Golden Records in the context of Data Matching.
- Production
https://api.cdq.com/data-matching/rest/datamatchingdefinitions/{id}
curl -i -X PUT \
https://api.cdq.com/data-matching/rest/datamatchingdefinitions/6461e6113b1865304b3038b6 \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"name": "Custom Matching Definition Name",
"type": "DEDUPLICATION",
"xmlDukeConfiguration": "<duke>...</duke>",
"reportConfiguration": {
"header": [
{
"attributeJsonPath": "attributeJsonPath",
"columnName": "External ID"
}
]
},
"goldenRecordConfiguration": {
"decisionStrategy": {
"root": {
"rule": {
"type": "HAS_VALUE",
"jsonPath": "attributeJsonPath",
"valueType": "TEXT",
"expectedValues": [
"expectedValue"
]
},
"yesBranch": {},
"noBranch": {}
}
},
"creationStrategy": {
"type": "CONSTANT",
"protectedAttributes": [
"External ID"
],
"recordExclusionRules": [
{
"type": "HAS_VALUE",
"jsonPath": "attributeJsonPath",
"valueType": "TEXT",
"expectedValues": [
"expectedValue"
]
}
],
"attributeEnhancementRules": [
{
"attributes": [
"External ID"
],
"constraintChain": {
"constraints": [
{
"expectedValues": []
}
],
"allRecordsShouldMatch": "true",
"constraintChainType": "AND"
},
"creationType": "CONSTANT",
"creationConstant": "constantValue",
"executionType": "SET",
"fallbackExecutionType": "SET"
}
]
}
},
"workspace": {
"id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}'
OK
Id of the data matching definition.
A human-readable name for the Data Matching Definition instance.
Uniquely identifying ID of the organization.
Date of modification (ISO 8601-compliant).
Type of the matching configuration.
Enum Value | Description |
---|---|
DEDUPLICATION | The matching configuration is used to identify duplicates in a storage. |
LINKAGE | The matching configuration is used to identify links between records in different storages. |
Holds the Duke XML configuration for data matching.
Configuration for generating reports related to the Data Matching Definition.
Configuration for creating Golden Records in the context of Data Matching.
{ "id": "6461e6113b1865304b3038b6", "name": "Custom Matching Definition Name", "creatorUsername": "johndoe", "creatorOrganization": "cdq_monitor", "createdAt": "2025-08-15T11:08:26Z", "lastModifiedAt": "2025-08-15T11:08:26Z", "type": "DEDUPLICATION", "xmlDukeConfiguration": "<duke>...</duke>", "reportConfiguration": { "header": [ … ] }, "goldenRecordConfiguration": { "decisionStrategy": { … }, "creationStrategy": { … } }, "workspace": { "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4" } }
- Production
https://api.cdq.com/data-matching/rest/datamatchingdefinitions/{id}
curl -i -X DELETE \
https://api.cdq.com/data-matching/rest/datamatchingdefinitions/6461e6113b1865304b3038b6 \
-H 'X-API-KEY: YOUR_API_KEY_HERE'