---
title: "Merge two members who are the same person"
method: POST
path: "/v1/members/merge"
tags: ["members"]
---

# Merge two members who are the same person

`POST /v1/members/merge`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/members/merge`
- Auth: HTTP bearer

Merge the two members after re-judging the evidence under their row locks.

## Headers

- `X-Tenant-Id` string, nullable

## Request body

- MemberMergePreviewBody: Which two members, and which way round.
  - `surviving_membership_id` string, uuid, required: The member who keeps their account.
  - `retiring_membership_id` string, uuid, required: The duplicate, retired by the merge.
  - `mailbox_proof_id` string, uuid, nullable: A consumed mailbox proof issued for the retiring member.

## Response `200`

Successful Response

- MemberMergeResponse: The recorded merge.
  - `merge_id` string, uuid, required
  - `surviving_membership_id` string, uuid, required
  - `retiring_membership_id` string, uuid, required
  - `evidence_code` string, required
  - `rows_moved` integer, required
  - `emails_gained` string[]

## Other responses

- `409`: Conflict: inspect ``errors[0].type`` for the specific case (``last_owner``, ``value_error``)
- `422`: Validation Error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
