Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mappingtravel.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Use this endpoint to submit a hotel inventory file for processing. Mapping.Travel accepts CSV, JSON, Excel (.xlsx), and Parquet formats up to 500MB. Once uploaded, use the returned uploadId to poll for status. Uploading the same file twice returns the same uploadId — the operation is idempotent.

Request

POST https://api.mapping.travel/api/v1/inventory Content-Type: multipart/form-data
file
file
required
The hotel inventory file to upload. Supported formats: CSV, JSON, Excel (.xlsx), Parquet. Maximum file size is 500MB.
supplierCode
string
Optional supplier code used for ID-to-ID mapping (e.g., expedia, booking). When provided, property IDs in your file are matched against the specified supplier’s ID space.

Example

curl -X POST https://api.mapping.travel/api/v1/inventory \
  -H "Authorization: Bearer <your-token>" \
  -F "file=@hotels.csv" \
  -F "supplierCode=expedia"

Response

A successful upload returns HTTP 201 Created.
uploadId
string
UUID identifying this upload record. Use this to check status, download, or cancel.
status
string
Initial status of the upload. Will be PENDING immediately after submission.
filename
string
Original filename as received by the server.
fileFormat
string
Detected file format: CSV, JSON, EXCEL, or PARQUET.
rowCount
integer
Total number of data rows detected. May be 0 until processing begins.
validRows
integer
Number of rows that passed validation. May be 0 until processing completes.
invalidRows
integer
Number of rows that failed validation. May be 0 until processing completes.
supplierCode
string
The supplier code provided in the request, if any.
createdAt
string
ISO 8601 timestamp of when the upload record was created.
Processing is asynchronous. After receiving a 201, poll GET /api/v1/inventory/{uploadId} to track progress until the status transitions to COMPLETED or FAILED.

Error codes

CodeDescription
400Invalid request — missing file, empty file, or malformed request
401Missing or invalid Bearer token
413File exceeds the 500MB size limit
415Unsupported file format — only CSV, JSON, Excel (.xlsx), and Parquet are accepted
429Rate limit exceeded — reduce upload frequency and retry