---
title: "Merge people"
method: POST
path: "/v1/people/{id}/merge"
tags: ["People"]
---

# Merge people

`POST /v1/people/{id}/merge`

## Request

- Base URL: `https://api.rumoro.dev`
- URL: `https://api.rumoro.dev/v1/people/{id}/merge`
- Auth: HTTP bearer

Marks this account and another person as the same individual, in your workspace only. The person in `into` receives the mentions, tags, notes and outreach activities, and keeps its owner and stage, taking the other's where it has none.

## Path parameters

- `id` string, required: The person's id (aut_...).

## Request body

- object
  - `into` string, required: The id of the person to merge this account into.

## Response `200`

The person who now has this account

- Person
  - `id` string, required: The person's id (aut_...), which is the id of their main account. An account merged into a person leads to that person.
  - `platform` 'bluesky' | 'hackernews' | 'github' | 'stackoverflow' | 'devto' | 'reddit' | 'x' | 'youtube' | 'news' | 'linkedin' | 'tiktok' | 'instagram' | 'appstore' | 'googleplay' | 'trustpilot' | 'googlemaps' | 'rss', required: The main account's platform. See `accounts` for all of them.
  - `name` string, nullable, required: The name shown on their latest post. Null if the platform has none.
  - `handle` string, nullable, required: The main account's handle, written the platform's way.
  - `url` string, nullable, required: Link to the main account's profile.
  - `avatarUrl` string, nullable, required
  - `accounts` object[], required: All accounts this workspace counts as this person, starting with the main one.
    - `id` string, required: The account's id (aut_...). The main account's id is the person's id.
    - `platform` 'bluesky' | 'hackernews' | 'github' | 'stackoverflow' | 'devto' | 'reddit' | 'x' | 'youtube' | 'news' | 'linkedin' | 'tiktok' | 'instagram' | 'appstore' | 'googleplay' | 'trustpilot' | 'googlemaps' | 'rss', required: The platform. Review platforms are appstore, googleplay, trustpilot and googlemaps (a place's Google reviews).
    - `name` string, nullable, required: The name shown on the platform.
    - `handle` string, nullable, required: The handle taken from the profile link, written the platform's way.
    - `url` string, nullable, required: Link to the profile.
  - `reach` object, required: Counts from the platform, taken from their latest post. Null where a platform lacks the number.
    - `followers` integer, nullable, required
    - `following` integer, nullable, required
    - `posts` integer, nullable, required
  - `profile` object, nullable, required: Details from the public profile. Null until the profile is fetched.
    - `bio` string, nullable, required
    - `company` string, nullable, required
    - `location` string, nullable, required
    - `website` string, nullable, required
    - `email` string, nullable, required: Filled in only for a public address on the platform.
    - `links` object[], required: Other accounts linked from the person's profile.
      - `provider` string, required
      - `url` string, uri, required
    - `fetchedAt` string, required: Last profile fetch time.
  - `stats` object, required: Counted from this workspace's matches only.
    - `mentions` integer, required: All their matches in this workspace, relevant or not.
    - `relevant` integer, required: How many of them scored as relevant.
    - `sentiment` object, required
      - `positive` integer, required
      - `neutral` integer, required
      - `negative` integer, required
    - `firstSeenAt` string, required: Time of their first matched post.
    - `lastSeenAt` string, required: Time of their latest matched post.
  - `annotations` object, required: Notes and tags your workspace added to the person.
    - `tags` string[], required
    - `notes` string, required
    - `muted` boolean, required: Their posts are kept out of the feed and all channels. Collection and billing still happen.
  - `outreach` object, required: Your outreach to this person. Logging the first activity makes the member who reached out the owner, if there was none, and moves not_contacted to contacted.
    - `owner` object, nullable, required: The teammate responsible for this contact. Null when no one is, or when that member has left the workspace.
      - `id` string, required: The member's user id.
      - `name` string, nullable, required
      - `email` string, nullable, required
    - `stage` 'not_contacted' | 'contacted' | 'replied' | 'in_talks' | 'customer' | 'not_a_fit', required: The outreach stage your team has reached with this person.
    - `lastContactedAt` string, nullable, required: Time of the latest logged activity. Null when no contact was logged.

## Other responses

- `401`: The API key is missing or not valid
- `404`: Your workspace does not know one of the two

---

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