> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Affinity: V2 Person Merges Get

> Get All Person Merges. Affinity V2 Person Merges Get reference includes SDK V2 and CLI requests, input constraints, response fields, and Deepline cost.

Get All Person Merges.

<Info>
  Tool ID: `affinity_v2_person_merges_get`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'affinity_v2_person_merges_get',
  {
    "cursor": "cursor_123",
    "limit": 25,
    "filter": "example"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute affinity_v2_person_merges_get --input '{
  "cursor": "cursor_123",
  "limit": 25,
  "filter": "example"
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "data": [
      {
        "id": 123,
        "status": "in-progress",
        "taskId": "123e4567-e89b-42d3-a456-426614174000",
        "startedAt": "2026-01-15T12:00:00Z",
        "primaryPersonId": 123,
        "duplicatePersonId": 123,
        "completedAt": "2026-01-15T12:00:00Z",
        "errorMessage": "example"
      }
    ],
    "pagination": {
      "prevUrl": "https://example.com",
      "nextUrl": "https://example.com"
    }
  }
}
```

Use `deepline tools get affinity_v2_person_merges_get --json` for the latest machine-readable contract.

## Input reference

Retrieve paginated person merges for the organization. Returns all person merges initiated by users in your organization, including their current status, the persons involved, and merge details. You can filter person merges using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties: | **Property Name** | **Type** | **Allowed Operators** | **Examples** | |---|---|---|---| | `status` | `enum` | `=` | `status=in-progress`, `status=success`, `status=failed` | | `taskId` | `text` | `=` | `taskId=789e0123-e45b-67c8-d901-234567890123` | Person merges are returned in reverse chronological order (most recent first). Requires the "Manage duplicates" [permission](/docs/pages/external-api-v2/permissions) and organization admin role.

| Name             | Type      | Required | Default | Details                                                                           |
| ---------------- | --------- | -------- | ------- | --------------------------------------------------------------------------------- |
| `payload.cursor` | `string`  | No       | —       | Cursor for the next or previous page                                              |
| `payload.limit`  | `integer` | No       | `25`    | Number of items to include in the page Format: `int32`. Minimum: 1. Maximum: 100. |
| `payload.filter` | `string`  | No       | —       | Filter person merges using Affinity Filtering Language                            |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Retrieve paginated person merges for the organization. Returns all person merges initiated by users in your organization, including their current status, the persons involved, and merge details. You can filter person merges using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties: | **Property Name** | **Type** | **Allowed Operators** | **Examples** | |---|---|---|---| | `status` | `enum` | `=` | `status=in-progress`, `status=success`, `status=failed` | | `taskId` | `text` | `=` | `taskId=789e0123-e45b-67c8-d901-234567890123` | Person merges are returned in reverse chronological order (most recent first). Requires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and organization admin role.",
    "properties": {
      "cursor": {
        "type": "string",
        "description": "Cursor for the next or previous page"
      },
      "limit": {
        "type": "integer",
        "description": "Number of items to include in the page",
        "default": 25,
        "minimum": 1,
        "maximum": 100,
        "format": "int32"
      },
      "filter": {
        "type": "string",
        "description": "Filter person merges using Affinity Filtering Language"
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

| Name                                   | Type                                     | Required | Default | Details                                                 |
| -------------------------------------- | ---------------------------------------- | -------- | ------- | ------------------------------------------------------- |
| `result.data`                          | `object`                                 | Yes      | —       | —                                                       |
| `result.data.data`                     | `array`                                  | Yes      | —       | Maximum items: 100.                                     |
| `result.data.data[].id`                | `integer`                                | Yes      | —       | Format: `int64`. Minimum: 1. Maximum: 9007199254740991. |
| `result.data.data[].status`            | `"in-progress" \| "success" \| "failed"` | Yes      | —       | Allowed: `in-progress`, `success`, `failed`.            |
| `result.data.data[].taskId`            | `string`                                 | Yes      | —       | Format: `uuid`.                                         |
| `result.data.data[].startedAt`         | `string`                                 | Yes      | —       | Format: `date-time`.                                    |
| `result.data.data[].primaryPersonId`   | `integer`                                | Yes      | —       | Format: `int64`. Minimum: 1. Maximum: 9007199254740991. |
| `result.data.data[].duplicatePersonId` | `integer`                                | Yes      | —       | Format: `int64`. Minimum: 1. Maximum: 9007199254740991. |
| `result.data.data[].completedAt`       | `string \| null`                         | Yes      | —       | Format: `date-time`.                                    |
| `result.data.data[].errorMessage`      | `string \| null`                         | Yes      | —       | —                                                       |
| `result.data.pagination`               | `object`                                 | Yes      | —       | —                                                       |
| `result.data.pagination.prevUrl`       | `string \| null`                         | No       | —       | Format: `uri`.                                          |
| `result.data.pagination.nextUrl`       | `string \| null`                         | No       | —       | Format: `uri`.                                          |
| `result.meta`                          | `object`                                 | No       | —       | —                                                       |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "data": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 9007199254740991,
                  "format": "int64"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "in-progress",
                    "success",
                    "failed"
                  ]
                },
                "taskId": {
                  "type": "string",
                  "format": "uuid"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "primaryPersonId": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 9007199254740991,
                  "format": "int64"
                },
                "duplicatePersonId": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 9007199254740991,
                  "format": "int64"
                },
                "completedAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "errorMessage": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "status",
                "taskId",
                "startedAt",
                "primaryPersonId",
                "duplicatePersonId",
                "completedAt",
                "errorMessage"
              ],
              "additionalProperties": false
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "prevUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri"
              },
              "nextUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uri"
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Affinity provider guide](/docs/providers/affinity/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)
