# List businesses that appear on more than one page

WHAT LOOKS WRONG in the records: the parties this workspace holds TWICE on one page (`duplicate`) and the ones sitting on TWO different pages at once (`two_places`, e.g. the same business as a lead and as a deal). Matched three ways — the business name with case, punctuation and LLC/Inc/Corp stripped, the email address, the phone number — and each group names the shared value plus every record holding it, with its page and row id so you can open them. Reach for it UNASKED when somebody asks what needs attention, what to clean up, whether a record already exists before making another, or why two people are working the same account; and reach for it before creating a lead, deal or merchant for a business whose name you have just been given. NOTHING IS CHANGED by this call and there is no merge: it names the pairs and the person decides. A lead that was converted into a deal is NOT reported, nor are records already linked to each other by a relation cell, nor the contacts minted from inbound mail — those pairs are the way the desk is supposed to work. `scanned` is how many records were compared and `truncated` says the answer was cut, so an empty report over a truncated scan does not mean nothing is wrong. Submissions, offers and payments are not read: their identity is a reference number and their contact columns hold the other party's address.

Access class: `workspace`.

## Endpoint

`GET /v1/workspace/overlaps`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| body | query | null | No |
| params | query | object | No |
| query | query | object | No |

## Responses

### 200

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "checkedAt": "string",
    "groups": [
      {
        "by": "string",
        "key": "string",
        "kind": "string",
        "records": [
          {
            "page": "string",
            "pageName": "string",
            "rowId": "",
            "title": "string"
          }
        ]
      }
    ],
    "scanned": 1.5,
    "truncated": true
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
