Input & Output
The dc3Api/search endpoint allows searching for records within Salesforce using the Duplicate Check search engine. It evaluates field values against existing records, returning potential duplicates with a matching score. Optionally, you can filter which duplicate scenarios to use by providing scenario IDs.
Authentication
The dc3Api/search endpoint requires authentication via Salesforce OAuth 2.0. Requests must include a valid OAuth access token in the Authorization header. For detailed instructions, see: Salesforce Authentication Guide.
All endpoints require an API license (checkApiLicense()).
Method Signature
POST /services/apexrest/dupcheck/dc3Api/searchParameters
| Type | Variable | Description |
|---|---|---|
JSON | SearchInput | The structured input object containing search parameters. |
Fields in SearchInput
| Field | Type | Required | Description |
|---|---|---|---|
objectPrefix | String | Yes | The Salesforce object prefix (e.g., 003 for Contacts, 001 for Accounts, 00Q for Leads). |
objectData | Map<String, String> | Yes | A key-value map of field names and values used for the search. |
filterDeveloperName | String | No | The API name of a predefined Duplicate Check filter to refine results. |
scenarioIds | List<String> | No | List of duplicate scenario IDs to use during search. When provided, they take precedence over feature-based scenario selection. |
The REST API Search uses all Plauti Deduplicate scenarios that are applied to "DC Apex API". If multiple scenarios are applied, they return scores using the OR method. WhenscenarioIdsare provided, they take precedence over feature-based scenario selection. Maintains backward compatibility—existing API calls work without changes.
Example request
{
"objectPrefix": "003",
"objectData": {
"FirstName": "John",
"LastName": "Doe",
"Email": "[email protected]"
},
"filterDeveloperName": "HighValueContacts",
"scenarioIds": ["a0X1234567890ABC", "a0X0987654321XYZ"]
}Response
The dc3Api/search endpoint returns a SearchOutput, which is a Map<String, List<SearchResult>>. The values are lists of SearchResult objects. Each SearchResult contains a match score (score), scenario-based match scores (scenarioScores), and the matched record’s field values (objectData).
- Class Reference:
Map<String, List<dupcheck.dc3SearchResult>>
Example Response
{
"003": [
{
"score": 98,
"scenarioScores": [
{
"scenarioScore": 98,
"scenarioName": "Contact Default 1",
"scenarioId": "a0RAa000003niPbMAI"
}
],
"objectData": {
"attributes": {
"type": "Contact",
"url": "/services/data/v62.0/sobjects/Contact/003Aa00000XVeYCIA1"
},
"Id": "003Aa00000XVeYCIA1",
"LastName": "Doe",
"FirstName": "John",
"Email": "[email protected]",
"OwnerId": "005Aa00000GCQbGIAX",
"Name": "John Doe",
"Owner": {
"attributes": {
"type": "User",
"url": "/services/data/v62.0/sobjects/User/005Aa00000GCQbGIAX"
},
"Id": "005Aa00000GCQbGIAX",
"Name": "API Admin"
}
}
},
{
"score": 95,
"scenarioScores": [
{
"scenarioScore": 95,
"scenarioName": "Contact Default 2",
"scenarioId": "a0RAa000003niPcMAI"
}
],
"objectData": {
"attributes": {
"type": "Contact",
"url": "/services/data/v62.0/sobjects/Contact/003Aa00000XWoukIAD"
},
"Id": "003Aa00000XWoukIAD",
"LastName": "Doe",
"FirstName": "Johnathan",
"Email": "[email protected]",
"OwnerId": "005Aa00000GCQbGIAX",
"Name": "Johnathan Doe",
"Owner": {
"attributes": {
"type": "User",
"url": "/services/data/v62.0/sobjects/User/005Aa00000GCQbGIAX"
},
"Id": "005Aa00000GCQbGIAX",
"Name": "API Admin"
}
}
}
]
}Updated about 1 month ago