This API provides services for Data Clinic
Data Clinic API (2)
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/
https://api.cdq.com/data-clinic/rest/
Start after the provided pagination ID. Leave empty for the first query. The response will contain a property nextStartAfter
, which needs to be used for any subsequent queries until nextStartAfter is empty. See CDQ - Developer Guidelines.
Only show decisions for listed business partner IDs.
- Mock server
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/{storageId}/decisions
- Production
https://api.cdq.com/data-clinic/rest/storages/{storageId}/decisions
- cURL
- Java
- JavaScript
- Python
- Node.js
curl -i -X GET \
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/72d6900fce6b326088f5d9d91049e3e6/decisions \
-H 'X-API-KEY: YOUR_API_KEY_HERE'
{ "values": [ { … } ], "limit": "100", "startAfter": "5712566172571652", "nextStartAfter": "5712566172571652", "total": "67" }
List of decisions to be upserted.
Type of decision log entry.
A CDQ ID identifies a Business Partner uniquely in the context of the Corporate Data League.
Unique identifier for a Data Source of the Storage.
Arbitrary identifier type to mark customer IDs that are "external" from CDQ's perspective. This is the identifier a customer provides to identify its records.
- Mock server
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/{storageId}/decisions
- Production
https://api.cdq.com/data-clinic/rest/storages/{storageId}/decisions
- cURL
- Java
- JavaScript
- Python
- Node.js
curl -i -X POST \
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/72d6900fce6b326088f5d9d91049e3e6/decisions \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"decisions": [
{
"type": {
"technicalKey": "CURATIONS"
},
"businessPartnerId": "63e635235c06b7396330fe40",
"dataSourceId": "648824a691d8d2503d65103e",
"externalId": "The ID managed in the customer'\''s SAP systems.",
"updateDecisions": [
{
"context": {
"createdBy": "76248934691294444",
"createdAt": "2025-08-27T14:26:38Z",
"scope": {
"dataSourceIds": [
null
],
"countryShortNames": [
null
],
"curationSimilarity": "0.8"
}
},
"proposal": {
"externalIds": [
{}
],
"property": {
"parentConcept": {},
"name": "Minority Indicator Value",
"technicalKey": "MINORITY_INDICATOR_VALUE",
"contentSelector": "$.partnerProfile.minorityIndicator.value",
"instanceSelectors": [
null
]
},
"newContent": "AAB",
"previousContent": "AAB",
"provenance": {
"name": "VIES",
"url": "https://meta.cdq.com/index.php?title=Property:Has_prefix&limit=500&offset=0&from=&until=&filter=",
"technicalKey": "VIES",
"cdqId": "VIES:PL8660001429"
},
"changeType": "MODIFIED",
"changeClassification": "MAJOR",
"confidenceScore": "0.0",
"maxConfidenceScore": "1.0",
"matchingScores": {
"overall": {},
"businessPartner": {},
"address": {}
}
},
"status": "ACCEPTED",
"reliability": "TRUSTED_SOURCE"
}
],
"validationDecisions": [
{
"context": {
"createdBy": "76248934691294444",
"createdAt": "2025-08-27T14:26:38Z"
},
"dataDefect": {
"businessRule": {
"name": "Identifier unknown (European value added tax identifier (The Netherlands))",
"url": "https://meta.cdq.com/Identifier_unknown_(European_value_added_tax_identifier_(The_Netherlands))",
"ruleStatus": "RELEASED"
},
"violationLevel": "INFO",
"violationMessage": "Business Partner identifier is mandatory."
},
"status": "ACCEPTED"
}
]
}
]
}'
{ "numberOfProvidedDecisions": "10", "numberOfInserts": "5", "numberOfUpdates": "5" }
- Mock server
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/{storageId}/decisions/clear
- Production
https://api.cdq.com/data-clinic/rest/storages/{storageId}/decisions/clear
- cURL
- Java
- JavaScript
- Python
- Node.js
curl -i -X POST \
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/72d6900fce6b326088f5d9d91049e3e6/decisions/clear \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"type": {
"technicalKey": "CURATIONS"
},
"dataSources": [
{
"id": "648824a691d8d2503d65103e"
}
]
}'
{ "numberOfDeleted": "10" }
List of decisions to be deleted.
A CDQ ID identifies a Decision Log Entry.
- Mock server
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/{storageId}/decisions/delete
- Production
https://api.cdq.com/data-clinic/rest/storages/{storageId}/decisions/delete
- cURL
- Java
- JavaScript
- Python
- Node.js
curl -i -X POST \
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/storages/72d6900fce6b326088f5d9d91049e3e6/decisions/delete \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"decisions": [
{
"id": "63e635235c06b7396330fe40",
"businessPartnerId": "63e635235c06b7396330fe40"
}
]
}'
{ "numberOfDeleted": "10" }
Unique identifier of the Storage.
Unique identifier for a Data Source of the Storage.
If set to true, only curation decisions that have not been reviewed yet will be imported. If set to false, all curation decisions will be imported.
- Mock server
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/jobs/curationdecisionimportjobs
- Production
https://api.cdq.com/data-clinic/rest/jobs/curationdecisionimportjobs
- cURL
- Java
- JavaScript
- Python
- Node.js
curl -i -X POST \
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/jobs/curationdecisionimportjobs \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"storageId": "72d6900fce6b326088f5d9d91049e3e6",
"dataSourceId": "648824a691d8d2503d65103e",
"onlyNotReviewed": "true",
"scope": {
"accepted": {
"identifiers": [
{
"technicalKey": "EU_VAT_ID_DE",
"changeTypes": [
"ADDED"
],
"countryShortNames": [
"CH"
],
"thresholds": {
"businessPartnerRequestSimilarity": "0.8",
"addressRequestSimilarity": "0.8",
"businessPartnerMatchingScore": "0.8",
"addressMatchingScore": "0.8"
}
}
]
},
"rejected": {
"identifiers": [
{
"technicalKey": "EU_VAT_ID_DE",
"changeTypes": [
"ADDED"
],
"countryShortNames": [
"CH"
],
"thresholds": {
"businessPartnerRequestSimilarity": "0.8",
"addressRequestSimilarity": "0.8",
"businessPartnerMatchingScore": "0.8",
"addressMatchingScore": "0.8"
}
}
]
}
}
}'
OK
Detailed description of a Job.
Additional information to explain the status.
Additional information to explain the status.
{ "id": "35f23c03-1c22-45fe-9484-3ffe769325de", "name": "Process vendor data.", "description": "I started this job to improve quality of our data.", "status": "RUNNING", "statusMessage": "The job failed because storage is empty.", "createdAt": "2025-08-27T14:26:38Z", "user": "742429-234242-4343-232323", "progress": "The job failed because storage is empty.", "attachments": [ { … } ] }
- Mock server
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/jobs/curationdecisionimportjobs/{jobId}
- Production
https://api.cdq.com/data-clinic/rest/jobs/curationdecisionimportjobs/{jobId}
- cURL
- Java
- JavaScript
- Python
- Node.js
curl -i -X GET \
https://developer.cdq.com/_mock/apis/data-clinic-api/api-v2/jobs/curationdecisionimportjobs/35f23c03-1c22-45fe-9484-3ffe769325de \
-H 'X-API-KEY: YOUR_API_KEY_HERE'
OK
Detailed description of a Job.
Additional information to explain the status.
Additional information to explain the status.
{ "id": "35f23c03-1c22-45fe-9484-3ffe769325de", "name": "Process vendor data.", "description": "I started this job to improve quality of our data.", "status": "RUNNING", "statusMessage": "The job failed because storage is empty.", "createdAt": "2025-08-27T14:26:38Z", "user": "742429-234242-4343-232323", "progress": "The job failed because storage is empty.", "attachments": [ { … } ] }