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

# Report Duplicate

> Submit a report flagging two reference hotels as the same property for the backoffice team to merge or resolve.

Flag two reference hotels as duplicates of the same real-world property. Reports are queued for review; resolution (merge or reject) is handled by the backoffice team via a separate admin-only endpoint.

<Note>
  Submitting a report works with a regular API key. Resolving a report (`POST /api/v1/reference/duplicates/{reportId}/resolve`) is backoffice-only and requires an admin key.
</Note>

***

## POST /api/v1/reference/duplicates

Submit a new duplicate report.

```bash theme={null} theme={null}
POST https://api.mapping.travel/api/v1/reference/duplicates
```

### Request body

<ParamField body="originalHotelId" type="string" required>
  UUID of the reference hotel you consider canonical (the one to keep).
</ParamField>

<ParamField body="duplicateHotelId" type="string" required>
  UUID of the reference hotel you believe is a duplicate of `originalHotelId`.
</ParamField>

<ParamField body="duplicateSourceId" type="string">
  Optional identifier for the source that surfaced the duplicate (e.g. a supplier or dataset reference).
</ParamField>

<ParamField body="reason" type="string">
  Optional free-text explanation of why the two hotels are duplicates.
</ParamField>

The complete accepted body is `{ originalHotelId, duplicateHotelId, duplicateSourceId?, reason? }`; there are no other fields.

### Response

Returns `201 Created` with the created duplicate report, including its `reportId` and initial state.

### Example

```bash theme={null} theme={null}
curl -X POST https://api.mapping.travel/api/v1/reference/duplicates \
  -H "X-API-Key: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "originalHotelId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "duplicateHotelId": "f7e6d5c4-b3a2-1098-fedc-ba9876543210",
    "duplicateSourceId": "expedia",
    "reason": "Same address and coordinates, name differs only by punctuation."
  }'
```

### Error responses

| Status             | Reason                                                                |
| ------------------ | --------------------------------------------------------------------- |
| `400 Bad Request`  | Missing required IDs, or `originalHotelId` equals `duplicateHotelId`. |
| `401 Unauthorized` | Missing or invalid `X-API-Key` header.                                |
| `404 Not Found`    | One of the referenced reference hotels does not exist.                |
