Before you can run a mapping job, you need to upload your hotel inventory to Mapping.Travel. The API accepts CSV, JSON, Excel (.xlsx), and Parquet files up to 500 MB. Uploading is idempotent — if you upload the same file twice, the API returns the same upload ID rather than creating a duplicate.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.
File format
Your inventory file must include the following columns. Column names are case-sensitive.| Column | Required | Description |
|---|---|---|
id | Yes | Your internal hotel identifier |
name | Yes | Hotel name |
address | No | Street address |
city | Yes | City |
country | Yes | Country (full name or ISO code) |
latitude | No | Decimal latitude |
longitude | No | Decimal longitude |
supplierCode | No | Supplier code for ID_TO_ID or HYBRID mapping (e.g. expedia, booking) |
supplierCode query parameter when uploading and add your supplier’s hotel IDs in a supplierCode column:
Prepare your file
Export your hotel data in one of the supported formats. Make sure every row has at minimum an
id, name, city, and country. Remove any rows with blank IDs — they will cause the upload to fail with a 400 error.If your file is larger than 500 MB, split it into multiple uploads and run a separate mapping job for each.Upload the file
Send a A successful upload returns HTTP 201 with an upload object:Save the
multipart/form-data POST request to /api/v1/inventory. Include your supplier code as a query parameter if you have one.uploadId — you need it to check status and to start a mapping job.Poll for processing status
The API processes your file asynchronously. Poll
GET /api/v1/inventory/{uploadId} until status is COMPLETED.| Status | Meaning |
|---|---|
PENDING | Queued, not yet started |
PROCESSING | File is being parsed and validated |
COMPLETED | Ready to use in a mapping job |
FAILED | Processing failed — check the error message |
CANCELLED | You cancelled the upload |
Handle errors
If the upload fails, the response will include an error message explaining what went wrong.
| HTTP status | Cause | Fix |
|---|---|---|
400 Bad Request | Empty file, missing required columns, or malformed data | Check your file format and required columns |
413 Payload Too Large | File exceeds 500 MB | Split the file into smaller chunks |
415 Unsupported Media Type | File format not supported | Convert to CSV, JSON, Excel, or Parquet |
429 Too Many Requests | Upload rate limit exceeded | Wait and retry with exponential backoff |
List your inventories
To see all previously uploaded inventories for your organization, use the list endpoint:Cancel an in-progress upload
If you need to stop an upload that is stillPENDING or PROCESSING, send a cancel request: