---
title: "Merge Accounts"
method: POST
path: "/v1/accounts/{account_id}/merge"
tags: ["Accounts"]
---

# Merge Accounts

`POST /v1/accounts/{account_id}/merge`

## Request

- Base URL: `https://api.monaco.com`
- URL: `https://api.monaco.com/v1/accounts/{account_id}/merge`
- Auth: none declared

Merges the accounts in `source_account_ids` into the account in the path. This is irreversible, like deleting an account: each source account is deleted, its contacts, opportunities, tasks, tags and domains move to the target, and its live sequences are stopped. Call `preview_account_merge` first.

When live sequences would be stopped the request is rejected with 409 `sequence_stop_confirmation_required` unless `confirm_sequence_stop` is true. If a merge fails part-way, 409 `merge_failed` says which steps already committed; retrying the same request resumes it. Retrying a merge that already completed succeeds with zero new changes and a positive `source_accounts_already_merged` count. `source_account_ids` in the response echo the ids as resolved at request time, so a retry that names an already-deleted source by its AccountICP id echoes that id rather than the account id.

## Path parameters

- `account_id` string, uuid, required

## Request body

- AccountMergeRequest
  - `source_account_ids` string[], required: IDs of the accounts to merge into the account in the path. Each is deleted when the merge is applied. At most 100 per request.
  - `confirm_sequence_stop` boolean: Set to true only after the user approved stopping the live sequences the preview lists under `blocking_sequences`. Without it, a merge that would stop live sequences is rejected with `sequence_stop_confirmation_required`.

## Response `200`

Successful Response

- PublicItemResponseAccountMergeResponse
  - `data` AccountMergeResponse, required
    - `target_account_id` string, required
    - `source_account_ids` string[], required
    - `contacts_moved` integer, required
    - `contacts_merged` integer, required
    - `source_accounts_deleted` integer, required
    - `source_accounts_already_merged` integer, required
    - `opportunities_reassigned` integer, required
    - `opportunities_deduped` integer, required
    - `tags_added` integer, required
    - `domains_moved` integer, required
  - `meta` ResponseMeta
    - `timestamp` string, date-time: Server timestamp of the response

## Other responses

- `409`: Confirmation required to stop live sequences, or the merge failed
- `422`: The merge request is invalid
- `4XX`: Client error

## Changes

- **2026-11-03** `fc720ada2a81`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/monaco/apis/monaco-public-api/changes/v1/accounts/:account_id/merge/post.md)

---

[API](https://skmtc.dev/monaco/apis/monaco-public-api.md) - [All operations](https://skmtc.dev/monaco/apis/monaco-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/monaco/apis/monaco-public-api/revisions/fc720ada2a81?raw)
