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/search

Parameters

TypeVariableDescription
JSONSearchInputThe structured input object containing search parameters.

Fields in SearchInput

FieldTypeRequiredDescription
objectPrefixStringYesThe Salesforce object prefix (e.g., 003 for Contacts, 001 for Accounts, 00Q for Leads).
objectDataMap<String, String>YesA key-value map of field names and values used for the search.
filterDeveloperNameStringNoThe API name of a predefined Duplicate Check filter to refine results.
scenarioIdsList<String>NoList 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. When scenarioIds are 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).

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"
                }
            }
        }
    ]
}