---
title: "Map partner hotel IDs to Nuitee inventory"
method: POST
path: "/hotels/match/partners/with-id"
tags: ["Hotel Match"]
---

# Map partner hotel IDs to Nuitee inventory

`POST /hotels/match/partners/with-id`

## Request

- Base URL: `https://api.liteapi.travel/v3.0`
- URL: `https://api.liteapi.travel/v3.0/hotels/match/partners/with-id`
- Auth: API key in header `X-API-Key`

## Overview

Maps a specific partner's hotel inventory to Nuitee / liteAPI catalogue IDs. Upload a CSV of partner hotel IDs and receive a result CSV that links each row to Nuitee property identifiers.

This is the synchronous **partner ID → Nuitee ID** mapping path. Processing runs in one request: CSV in, mapped CSV out (plus an `X-Mapping-Summary` header with outcome counts).

## When to Use

- **Partner inventory alignment** - Convert Booking.com, Expedia, or other partner hotel IDs into Nuitee `core_property_id` / `lite_property_id`
- **Bulk ID resolution** - Map large partner ID lists in a single call
- **Coverage analysis** - Use `matched`, `review`, `not_found`, and `invalid` counts from `X-Mapping-Summary`
- **Content & rates pipelines** - Resolve partner IDs before search, booking, or enrichment against Nuitee inventory

## What You Get

- **Result CSV** - Per-row mapping outcomes with columns such as `input_id`, `status`, `resolution`, `core_property_id`, `lite_property_id`, `candidate_core_ids`
- **Summary header** - `X-Mapping-Summary` JSON with `rows`, `matched`, `review`, `not_found`, `invalid`
- **Download filename** - `Content-Disposition` attachment name from the server (for example `id-mapping-Expedia.csv`)

## Key Features

- **Partner-scoped**: Mapping runs against one partner inventory at a time (`partner` form field)
- **Flexible CSV input**: Single ID column (with or without header), or multi-column files with a recognized ID header
- **Optional geo columns**: Latitude/longitude improve resolution when partner IDs are ambiguous
- **Streamed response**: Result CSV is streamed; there is no `{"data": ...}` JSON wrapper

## Quick Start

1. Call `GET /hotels/match/partners` and copy the partner name
2. Prepare a CSV of that partner's hotel IDs
3. `POST` `multipart/form-data` with:
   - `partner` — partner name from step 1
   - `file` — the CSV
4. Save the response body as CSV and read `X-Mapping-Summary` for counts

**Accepted ID column names** (case-insensitive): `id`, `hotel_id`, `hotelid`, `hotel_code`, `provider_id`, `provider_hotel_id`, `provider_property_id`, `partner_id`, `partner_hotel_id`, `property_id`, `code`.

**Example curl:**

```bash
curl --request POST \
  --url "https://api.liteapi.travel/v3.0/hotels/match/partners/with-id" \
  --header "X-API-Key: YOUR_API_KEY" \
  --form "partner=Booking.com" \
  --form "file=@/path/to/partner-ids.csv;type=text/csv"
```

Authenticate with your LiteAPI `X-API-Key`.

**Rate limit:** 50 requests/min (production), 10 requests/min (sandbox).

**Platform note:** Cloud Run and the global load balancer cap request/response bodies at 32 MiB. Larger uploads may not fully pass through this API hop.

## Request body `multipart/form-data`

- object
  - `partner` string, required: Partner name from GET /hotels/match/partners. Selects which partner inventory to map against Nuitee.
  - `file` string, binary, required: CSV of partner hotel IDs to map to Nuitee inventory

## Response `200`

Result CSV mapping partner IDs to Nuitee inventory

## Other responses

- `400`: Bad Request — missing partner, unknown partner, or unreadable CSV
- `401`: Unauthorized — missing or invalid API key
- `413`: Payload Too Large
- `429`: Rate limit exceeded
- `500`: Internal Server Error
- `502`: Upstream mapping service unreachable
- `504`: Upstream mapping service timed out

---

[API](https://skmtc.dev/liteapi/apis/api-mapping.md) - [All operations](https://skmtc.dev/liteapi/apis/api-mapping/llms.txt) - [OpenAPI document](https://skmtc.dev/liteapi/apis/api-mapping/revisions/82f8d27a93af?raw)
