Clusters API
Deduplication is a task to match and link duplicate customer records. This task is a part of ID resolution.
When deduplication is complete, Oracle Unity ensures that multiple records belonging to the same person are linked to one master record and don't count as more than one person.
Oracle Unity deduplicates data records by "clustering" all records belonging to distant persons, matching similar records, and linking records to one master identifier.
The Clusters API is used to programmatically manage the Deduplication rules in your Oracle Unity instance.
Learn more about Deduplication in the Oracle Unity Help Center.
In this topic:
Explore the API
The embedded I/O doc below enables you to explore the API. The I/O doc explains the parameters for each method and provides templates for your calls. You cannot make live API calls from the tool, however.
Open the link below in a new tab to see the I/O doc in a three-pane format.
https://oracleunityapis.docs.apiary.io
Service URI
Clusters
https://{AccountURL}/api-metadata/v1/{access-key}/metadata/clusters
Clustering rules
https://{AccountURL}/api-metadata/v1/{access-key}/metadata/clusters/<clusterId>/clusteringrules
Creating cluster rule examples
Important: The phonetics
> SOUNDEX
parameter is not supported. Using this parameter in your Clusters may cause your ID resolution job to fail.
Create a new clustering rule within the StandardMasterCustomerClustering
cluster to perform case insensitive email address matching:

POST https://{AccountURL}/api-metadata/v1/e2a7a0df2410470d85ef69c8dad2bdb8/metadata/clusters/StandardMasterCustomerClustering
Request body
{
"tenantId": 100,
"name": "StandardMasterCustomerClustering",
"active": true,
"clusteringId": "StandardMasterCustomerClustering",
"sourceTable": {
"MCPSQuery": {
"tenantId": 0,
"name": "queryForDedupe",
"uniqueId": "queryForDedupe",
"operation": {
"ctype": ".SetOperation",
"name": "queryForDedupe",
"tenantId": 0,
"uniqueId": "queryForDedupe",
"operands": [
{
"ctype": ".ObjectSet",
"tenantId": 0,
"name": "C1",
"description": "C1",
"objectName": "Customer",
"uniqueId": "simple_c1_customer",
"outputAttributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ID"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "FirstName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "LastName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "Email"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "AddressLine1"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "ZipCode"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "CustomerID"
}
],
"distinct": false,
"objectJoin": {
"type": "LEFT_OUTER",
"condition": [
{
"left": {
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ID"
},
"right": {
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "CustomerID"
}
}
],
"targetSet": {
"ctype": ".ObjectSet",
"tenantId": 0,
"name": "A1",
"description": "A1",
"objectName": "Address",
"uniqueId": "simple_a1_address",
"outputAttributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "AddressLine1"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "ZipCode"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "CustomerID"
}
],
"distinct": false
}
}
},
null
],
"operator": "UNION",
"distinct": false,
"outputAttributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ID"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "FirstName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "LastName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "Email"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "AddressLine1"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ZipCode"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "CustomerID"
}
],
"joinConditions": [
]
},
"type": "DW"
}
},
"clusteringRules": [
{
"tenantId": 100,
"name": "Email_Case_Insensitive_Match",
"versionTS": 1583969453355,
"active": true,
"createdTS": 1562190925410,
"clusteringId": "StandardMasterCustomerClustering",
"clusteringRuleId": "Email_Case_Insensitive_Match",
"scoreThreshold": 100,
"maxCandidates": 3000,
"referenceAttributes": [
{
"atype": ".FunctionAttribute",
"type": "CUSTOM",
"attributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "Email"
}
],
"functionName": "lower",
"alias": "Email"
}
],
"clusteringCriteria": {
"ctype": ".Criteria",
"operator": "AND",
"operands": [
{
"ctype": ".Criteria",
"operator": "NOT_NULL",
"operands": [
{
"ctype": ".ReferenceAttribute",
"attributeName": "Email"
}
]
}
]
},
"matchingCriteria": {
"ctype": ".MatchingCriteria",
"operator": "AND",
"operands": [
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "FirstName"
}
]
},
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "LastName"
}
]
}
]
}
}
],
"dedupeTargetId": "Customer_MasterCustomer",
"mainIdentifier": "ID"
}
Response Body
{
"tenantId": 100,
"name": "StandardMasterCustomerClustering",
"versionTS": 1622576788158,
"active": true,
"lastModifiedBy": "d2bd3639146a4683a10fae44c3339289",
"createdTS": 1562190925361,
"clusteringId": "StandardMasterCustomerClustering",
"sourceTable": {
"MCPSQuery": {
"tenantId": 0,
"name": "queryForDedupe",
"uniqueId": "queryForDedupe",
"operation": {
"ctype": ".SetOperation",
"name": "queryForDedupe",
"tenantId": 0,
"uniqueId": "queryForDedupe",
"operands": [
{
"ctype": ".ObjectSet",
"tenantId": 0,
"name": "C1",
"description": "C1",
"objectName": "Customer",
"uniqueId": "simple_c1_customer",
"outputAttributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ID"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "FirstName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "LastName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "Email"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "AddressLine1"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "ZipCode"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "CustomerID"
}
],
"distinct": false,
"objectJoin": {
"type": "LEFT_OUTER",
"condition": [
{
"left": {
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ID"
},
"right": {
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "CustomerID"
}
}
],
"targetSet": {
"ctype": ".ObjectSet",
"tenantId": 0,
"name": "A1",
"description": "A1",
"objectName": "Address",
"uniqueId": "simple_a1_address",
"outputAttributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "AddressLine1"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "ZipCode"
},
{
"atype": ".ReferenceAttribute",
"tableName": "A1",
"attributeName": "CustomerID"
}
],
"distinct": false
}
}
},
null
],
"operator": "UNION",
"distinct": false,
"outputAttributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ID"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "FirstName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "LastName"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "Email"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "AddressLine1"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "ZipCode"
},
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "CustomerID"
}
],
"joinConditions": [
]
},
"type": "DW"
}
},
"clusteringRules": [
{
"tenantId": 100,
"name": "Email_Exact_FirstLastName_Fuzzy",
"versionTS": 1583969453355,
"active": true,
"createdTS": 1562190925410,
"clusteringId": "StandardMasterCustomerClustering",
"clusteringRuleId": "Email_Exact_FirstLastName_Fuzzy",
"scoreThreshold": 100,
"maxCandidates": 3000,
"referenceAttributes": [
{
"atype": ".ReferenceAttribute",
"attributeName": "Email"
}
],
"clusteringCriteria": {
"ctype": ".Criteria",
"operator": "AND",
"operands": [
{
"ctype": ".Criteria",
"operator": "NOT_NULL",
"operands": [
{
"ctype": ".ReferenceAttribute",
"attributeName": "Email"
}
]
}
]
},
"matchingCriteria": {
"ctype": ".MatchingCriteria",
"operator": "AND",
"operands": [
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "FirstName"
}
]
},
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "LastName"
}
]
}
]
}
},
{
"tenantId": 100,
"name": "ZipCode_Exact_AddressFirstLastName_Fuzzy",
"versionTS": 1583969453420,
"active": true,
"createdTS": 1562190925442,
"clusteringId": "StandardMasterCustomerClustering",
"clusteringRuleId": "ZipCode_Exact_AddressFirstLastName_Fuzzy",
"scoreThreshold": 100,
"maxCandidates": 3000,
"referenceAttributes": [
{
"atype": ".ReferenceAttribute",
"attributeName": "ZipCode"
}
],
"clusteringCriteria": {
"ctype": ".Criteria",
"operator": "AND",
"operands": [
{
"ctype": ".Criteria",
"operator": "NOT_NULL",
"operands": [
{
"ctype": ".ReferenceAttribute",
"attributeName": "ZipCode"
}
]
}
]
},
"matchingCriteria": {
"ctype": ".MatchingCriteria",
"operator": "AND",
"operands": [
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "100"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "AddressLine1"
}
]
},
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "FirstName"
}
]
},
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "LastName"
}
]
}
]
}
},
{
"tenantId": 100,
"name": "Email_Case_Insensitive_Match",
"versionTS": 1622576788795,
"active": true,
"createdTS": 1622576788795,
"clusteringId": "StandardMasterCustomerClustering",
"clusteringRuleId": "Email_Case_Insensitive_Match",
"scoreThreshold": 100,
"maxCandidates": 3000,
"referenceAttributes": [
{
"atype": ".FunctionAttribute",
"type": "CUSTOM",
"attributes": [
{
"atype": ".ReferenceAttribute",
"tableName": "C1",
"attributeName": "Email"
}
],
"functionName": "lower",
"alias": "Email"
}
],
"clusteringCriteria": {
"ctype": ".Criteria",
"operator": "AND",
"operands": [
{
"ctype": ".Criteria",
"operator": "NOT_NULL",
"operands": [
{
"ctype": ".ReferenceAttribute",
"attributeName": "Email"
}
]
}
]
},
"matchingCriteria": {
"ctype": ".MatchingCriteria",
"operator": "AND",
"operands": [
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "FirstName"
}
]
},
{
"ctype": ".MatchingRule",
"algorithm": "LEVENSHTEIN_DISTANCE",
"arguments": {
"threshold": "85"
},
"attributeValues": [
{
"atype": ".ReferenceAttribute",
"attributeName": "LastName"
}
]
}
]
}
}
],
"dedupeTargetId": "Customer_MasterCustomer",
"mainIdentifier": "ID"
}