How to use the Reservit API for third-party integrations
Published 28 May 2024 · 10 min read
The Reservit API gives authorised third-party applications read and write access to reservation data, rate plans, guest profiles and channel configuration in a Reservit property account. This overview covers the general principles of Reservit API connectivity and how modules like those offered by ReserveWithIt establish and maintain a connection.
Reservit API authentication overview
The Reservit API uses API key authentication. Each Reservit property account can generate one or more API keys from within the administration section of the Reservit interface (typically at Administration → Integrations → API Access). The API key is a long alphanumeric string that is passed in the header of each API request to identify the calling application and the property account it is authorised to access.
Reservit API keys can typically be scoped with specific permissions. Common permission scopes include: read reservations, write reservations, read rates, write rates, read guest profiles, write guest profiles, read channel configuration, and read reporting data. Third-party applications should request only the minimum permissions required for their function — a principle of least privilege that reduces the risk exposure if an API key is compromised.
API keys should be treated as sensitive credentials. They grant full access to the connected Reservit property within their permission scope. Keys should be stored encrypted, transmitted only over HTTPS, and rotated periodically. When you connect a module through ReserveWithIt, your Reservit API key is stored AES-256 encrypted and is never accessible in plain text.
Reading reservation data from Reservit
The Reservit API provides endpoints for querying reservations within a date range. A typical reservation data response includes: reservation ID, guest name, arrival and departure dates, room type, rate plan, total amount, payment status, channel of origin, and guest contact details. This data forms the basis for most third-party integrations.
For modules like Guest Portal and CRM Link, the workflow is: (1) query Reservit for reservations arriving within the next 14 days; (2) for each reservation, retrieve the associated guest profile; (3) process the guest data within the module function (e.g. send a pre-arrival portal link); (4) write the collected guest data back to the Reservit reservation record. Steps 1–2 are read operations; step 4 is a write operation requiring the "write reservations" or "write guest profiles" permission.
Rate management via the Reservit API
The Reservit API supports read and write operations on rate plans. A write-rate API call typically specifies: the rate plan ID (as defined in your Reservit account), the arrival date(s) or date range, the room type(s), and the new rate value. Rate updates pushed via the API are reflected in Reservit's channel manager and distributed to connected OTAs according to the standard Reservit channel update cycle.
Rate push via API is the core capability used by the Revenue Optimizer and Smart Pricing modules. The workflow is: (1) read current rates and occupancy from Reservit; (2) calculate recommended or rule-triggered rate; (3) push the new rate to Reservit via the API; (4) Reservit distributes the rate update to connected channels. Steps 1 and 3 require read-rates and write-rates permissions respectively.
Webhook and event-based integrations
In addition to polling-based API calls, Reservit supports webhook delivery for certain reservation events. When configured in your Reservit account (typically at Administration → Integrations → Webhooks), Reservit sends an HTTP POST to a configured URL when specific events occur — such as a new reservation being created, a reservation being modified, or a checkout being completed.
Webhook-based integrations are used by the Email Automation module. When Reservit fires a "checkout completed" webhook, the module immediately triggers the appropriate post-stay email sequence, without the module needing to poll Reservit every few minutes. This event-driven architecture reduces API call volume and improves response time for time-sensitive communications.
Rate limiting and API call management
Reservit imposes rate limits on API calls to prevent system overload. Exceeding the rate limit results in HTTP 429 responses (Too Many Requests). Well-behaved third-party modules implement exponential back-off when rate limit errors are received, and batch API requests where possible rather than making individual calls per room-night.
ReserveWithIt modules are designed to be considerate of Reservit's rate limits. Rate updates are batched where possible. Polling intervals are configured conservatively. When multiple modules from the same Reservit account are active, calls are coordinated to avoid unnecessarily high API call volumes.
Staying compatible with Reservit API updates
Reservit releases API updates periodically. Some updates add new endpoints or fields (non-breaking changes), while others may deprecate or modify existing endpoints (potentially breaking changes for dependent applications). ReserveWithIt monitors the Reservit API changelog and tests all modules against each API version. When a breaking change is detected, affected modules are updated and a compatibility fix is released typically within 48 hours.