> ## 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 a duplicate reference hotel

> Submit a duplicate report flagging two reference hotels as the same property, so the backoffice team can merge or resolve them.

Use this endpoint to 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>

<Note>
  This request body schema is derived from the API's OpenAPI definition. If your integration relies on additional fields, confirm against the current OpenAPI spec — the accepted body is `{ originalHotelId, duplicateHotelId, duplicateSourceId?, reason? }`.
</Note>

### Response

Returns `200 OK` 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.                |
