This API provides services for maintaining matching definitions used as configuration for matching jobs, as well as services for matching data with a job.
Data Matching API (2)
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.
- Productionhttps://api.cdq.com/data-matching/rest/datamatchingdefinitions 
- cURL
- Java
- JavaScript
- Python
- Node.js
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-10-30T10:31:48Z", "lastModifiedAt": "2025-10-30T10:31:48Z", "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. | 
- Productionhttps://api.cdq.com/data-matching/rest/datamatchingdefinitions 
- cURL
- Java
- JavaScript
- Python
- Node.js
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": [ { … } ] }
- Productionhttps://api.cdq.com/data-matching/rest/datamatchingdefinitions/{id} 
- cURL
- Java
- JavaScript
- Python
- Node.js
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-10-30T10:31:48Z", "lastModifiedAt": "2025-10-30T10:31:48Z", "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.
- Productionhttps://api.cdq.com/data-matching/rest/datamatchingdefinitions/{id} 
- cURL
- Java
- JavaScript
- Python
- Node.js
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-10-30T10:31:48Z", "lastModifiedAt": "2025-10-30T10:31:48Z", "type": "DEDUPLICATION", "xmlDukeConfiguration": "<duke>...</duke>", "reportConfiguration": { "header": [ … ] }, "goldenRecordConfiguration": { "decisionStrategy": { … }, "creationStrategy": { … } }, "workspace": { "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4" } }
- Productionhttps://api.cdq.com/data-matching/rest/datamatchingdefinitions/{id} 
- cURL
- Java
- JavaScript
- Python
- Node.js
curl -i -X DELETE \
  https://api.cdq.com/data-matching/rest/datamatchingdefinitions/6461e6113b1865304b3038b6 \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'