Async Hotel Match

Submit an async hotel-match batch job

Overview

Upload an onboarding CSV of hotel rows (name, country, optional address/coordinates) and start an async content-based hotel matching job. Returns immediately with a job_id to poll.

Use this when partner hotel IDs are unavailable and you need to match hotels by content against Nuitee inventory.

When to Use

  • Bulk onboarding - Match many hotels by name/location when partner IDs are not available
  • Large files - Jobs above the inline row limit are processed via chunked workers
  • GCS workflows - Submit with input_gcs / output_gcs for large files outside the API body limit

What You Get

  • 202 Accepted - Initial JobStatus with status: queued and job_id
  • Progress polling - Use GET /hotels/match/async/jobs/{jobId}/status until status is done or error
  • Result CSV - Download via GET /hotels/match/async/jobs/{jobId} when complete

Quick Start

  1. POST multipart/form-data with file (CSV), or JSON { "input_gcs": "gs://..." } for large files
  2. Poll status with the returned job_id
  3. Download the result CSV when status is done

Input CSV must include name and country columns (accepted header aliases vary upstream). Optional output_gcs writes the result directly to GCS instead of returning CSV through the API.

Authenticate with your LiteAPI X-API-Key.

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

Platform note: Multipart uploads are capped at 32 MiB through this API hop — use GCS input mode for larger files.

post/hotels/match/async

Request

  • Base URL
    https://api.liteapi.travel/v3.0
  • URL
    https://api.liteapi.travel/v3.0/hotels/match/async
  • Auth
    API key in header X-API-Key

Request body

input_gcsstring required

GCS URI of the input CSV

output_gcsstring

Optional GCS URI for the result CSV

Example request

{
  "input_gcs": "gs://my-bucket/onboarding/hotels.csv",
  "output_gcs": "gs://my-bucket/onboarding/hotels-result.csv"
}

Response

Job accepted

job_idstring uuid required
status'queued' | 'running' | 'done' | 'error' required
totalinteger
doneinteger
matchedinteger
reviewinteger
no_matchinteger
geo_match_name_mismatchinteger
name_match_geo_mismatchinteger
errorstring
output_gcsstring
input_gcsstring
created_atstring date-time
updated_atstring date-time
total_chunksinteger
chunks_doneinteger

Example response

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "total": 1500,
  "input_gcs": "gs://liteapi-mapping/hotelmatch/550e8400-e29b-41d4-a716-446655440000/input.csv",
  "total_chunks": 6
}

Changes

No recorded changes to this operation across all 1 revision of this API.