Start an async duplicate-contact scan (returns a jobId)
Starts an async scan of the workspace's saved contacts (the whole team's pool, Fuse and custom) for duplicates: contacts that match EXACTLY on every field in matchFields. The selection must carry at least one unique identifier (linkedinUrl, email, phone) or at least 3 profile fields (fullName, jobTitle, industry, location, companyName, companyDomain) — anything weaker would group unrelated people and is rejected. Async: 202 returns a jobId; poll GET /business/contacts/dedupe-jobs/{jobId} until status is completed, then read scanResult.groups. Each group carries a mergePreview (what the surviving contact will look like) so the result can be reviewed before anything is merged; scanning changes nothing and spends no credits. The result stores at most 200 groups (truncated is true when more were found — merge and scan again), and a group larger than 50 contacts is skipped as a too-weak selection (skippedOversizedGroups counts them). Rate limit: 120 requests per minute, 10,000 per day on the contacts bucket, which every /business/contacts endpoint shares.
Errors:
- 422 VALIDATION_FAILED — matchFields is missing, carries an unknown field, or fails the selection-strength rule.
- 429 RATE_LIMITED — More than 120 requests per minute or 10,000 per day on the contacts bucket, which every /business/contacts endpoint shares; retry after Retry-After.
- 500 UNEXPECTED_ERROR — The request could not be completed; quote request_id to support.
Requires one of the following token scopes: contacts.
Request
- Base URL: https://api.tryfuse.ai/api/v1
- URL: https://api.tryfuse.ai/api/v1/business/contacts/dedupe-scan
- Auth: HTTP basic
Request body
Response
Success
Changes
No recorded changes to this operation across all 1 revision of this API.