Skip to navigation

Create or update reservations

Creates or updates reservations in PriceLabs for listings in your account.

Use this when you need to add bookings that are not synced from a PMS — for example direct bookings, offline stays, or booked times corrections. Each request accepts a reservations array of 1–100 reservation objects. The API validates and processes objects independently, so one invalid reservation does not block the rest of the batch.

All 19 fields required. Every reservation object must include all fields below (use null for inapplicable values). Extra unknown fields are rejected for that row.

FieldTypeNotes
listing_idstringMust exist for user’s account
pms_namestringMust be a portfolio-analytics-enabled PMS
reservation_idstring/nullAuto-generated as {listing_id}_{start_date}_{end_date} if null. Has to be unique for a PMS
start_datestringYYYY-MM-DD
end_datestringYYYY-MM-DD, must be after start_date
no_of_daysnumber/nullAuto-computed from dates if null
total_costnumber/nullRequired (>0) when pl_status=booked
currencystringe.g. USD, EUR
booked_timestring/nullRequired when pl_status=booked, must be ≤ start_date
pl_statusstringbooked, cancelled, blocked, or available
cancelled_timestring/nullRequired when pl_status=cancelled
total_feesnumber/null
total_taxesnumber/null
rental_revenuenumber/null
ota_commissionnumber/null
host_payoutnumber/null
booking_sourcestring/nullairbnb, vrbo, bcom, manual, others
guest_countnumber/null
guest_zipcodestring/null

Updates. A unique reservation is identified by reservation_id + pms_name.

  • Reservations previously created or updated via this API (or CSV upload) can be updated.
  • Reservations already synced from a PMS fetch cannot be overwritten (reservation already fetched via …).
  • Reservation IDs must be unique for a PMS.

Reservations can only be added for PMS/channels that support Portfolio Analytics. The listing must belong to the authenticated account. Team-member API keys need write permission on every listing in the payload.

Created reservations are available from GET /v1/reservation_data.

Headers

X-API-KeystringRequired

Request

This endpoint expects an object.
reservationslist of objectsRequired
Reservation rows to create or update. Maximum 100 per request.

Response

All reservations in the batch were created or updated.
successboolean

true when at least one reservation succeeded. false when every row failed.

totalinteger
Number of reservation objects in the request.
success_countinteger
Number of rows that were created or updated.
failure_countinteger
Number of rows that failed validation or could not be saved.
reservationslist of objects

Per-row results in the same order as the request.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
500
Internal Server Error