Merge duplicate contacts
POST/contacts/:id/merge
The contact in the path survives; duplicateId is deleted after its conversations,
tags, history and campaigns are moved over. For fields, the survivor's value wins and the
duplicate's only fills blanks. For consent, the opt-out wins.
An API key limited to some numbers gets 403: this operation covers the whole base.
Request
Responses
- 200
- 401
- 402
- 403
- 404
- 422
- 429
Record found.
Missing, malformed, unknown or revoked token (authentication), or a suspended
account (tenant_inactive).
No entitlement (payment_required). The body carries the reason in reason and the
way out in action: what to do (kind) and the dashboard page where it is done (url).
The resource does not belong to your account (forbidden), or the path is on the
mirror's block list (forbidden_endpoint), or your API key is limited to some numbers and
the operation covers the whole account (forbidden).
Resource does not exist (not_found).
Payload failed validation (invalid_request, detailed in issues) or was
rejected by Meta (meta_error, with the original body in meta).
Rate limit exceeded (rate_limit).
Response Headers
Seconds to wait before retrying.
Which rate limit category applied — send, media or default.
Which bucket the other headers describe — key (the API key), session (the dashboard) or account (the account ceiling).
Request ceiling for this category in the current window.
Requests left in the current window.