Buy any 3 modules — save 10% · New: ItReserve PMS Bridge now available

Developer documentation

ItReserve API

The ItReserve API allows you to integrate ItReserve module data into your own internal tools, BI platforms and reporting systems. This documentation covers authentication, available endpoints, webhook events, rate limits and versioning. The API is available to all active ItReserve subscribers.

API overview

The ItReserve API is a REST API that returns JSON. It is designed for customers who want to pull ItReserve module data — subscription status, module usage statistics, connection health, event logs — into their own tools. Common use cases include pulling module status into a custom hotel operations dashboard, forwarding ItReserve webhook events to a data warehouse, and monitoring module connection health from an internal monitoring system.

The API does not replace the ItReserve dashboard. Configuration of modules, rate rules, invoice templates and channel mappings is done through the dashboard interface. The API exposes read-only access to operational data and allows webhook endpoint management.

Base URL for all API requests:

https://api.itreserve.org/v1

Authentication

All API requests must include a Bearer token in the Authorization header. Bearer tokens are issued per ItReserve account and are available from the Account Settings → API Access section of the ItReserve dashboard.

Tokens do not expire automatically but can be rotated at any time from Account Settings. Rotating a token immediately invalidates the previous token — update any integrations using the old token before rotating. Each account may have up to three active tokens simultaneously, allowing rotation without downtime.

Authorization: Bearer YOUR_API_TOKEN

Never include your API token in client-side code or version control. Treat it with the same care as a password. If a token is exposed, rotate it immediately from Account Settings.

Available endpoints

GET /v1/modules

Returns a list of all ItReserve modules active on your account, including their subscription status, current version and the date the subscription was activated.

curl -X GET https://api.itreserve.org/v1/modules \ -H "Authorization: Bearer YOUR_API_TOKEN"
{ "modules": [ { "id": "ir-channel", "name": "ItReserve Channel Bridge", "status": "active", "version": "1.3.2", "activated_at": "2026-03-14T09:22:00Z" }, { "id": "ir-yield", "name": "ItReserve Yield Manager", "status": "active", "version": "2.4.0", "activated_at": "2026-03-14T09:25:00Z" } ] }
GET /v1/modules/{id}/status

Returns the current connection status of a specific module, including the last successful sync time with the Reservit API, any active error states and the Reservit property ID the module is connected to.

curl -X GET https://api.itreserve.org/v1/modules/ir-channel/status \ -H "Authorization: Bearer YOUR_API_TOKEN"
{ "module_id": "ir-channel", "connection_status": "healthy", "last_sync": "2026-07-28T14:03:42Z", "reservit_property_id": "prop_8821a", "errors": [] }
GET /v1/usage

Returns API usage statistics for your account for the current billing month: total API calls made by ItReserve modules to your Reservit account, broken down by module. Accepts optional month parameter (YYYY-MM) to retrieve historical data.

curl -X GET "https://api.itreserve.org/v1/usage?month=2026-07" \ -H "Authorization: Bearer YOUR_API_TOKEN"
{ "period": "2026-07", "total_calls": 48320, "by_module": { "ir-channel": 22400, "ir-yield": 18200, "ir-analytics": 7720 } }
POST /v1/webhooks

Register a webhook endpoint to receive real-time event notifications from ItReserve. The request body must include the target URL and an array of event types to subscribe to. See the Webhook Events section below for available event types.

curl -X POST https://api.itreserve.org/v1/webhooks \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "url": "https://your-server.example.com/itreserve-events", "events": ["module.connected", "subscription.renewed"] }'
{ "webhook_id": "wh_3a9f2b", "url": "https://your-server.example.com/itreserve-events", "events": ["module.connected", "subscription.renewed"], "created_at": "2026-07-28T15:00:00Z", "status": "active" }
DELETE /v1/webhooks/{webhook_id}

Remove a registered webhook endpoint. Events will stop being delivered to the removed URL immediately.

curl -X DELETE https://api.itreserve.org/v1/webhooks/wh_3a9f2b \ -H "Authorization: Bearer YOUR_API_TOKEN"

Webhook events

ItReserve sends webhook POST requests to your registered endpoint when the following events occur. Each request includes a JSON body with the event type, event ID, timestamp and relevant data payload.

Event typeDescription
module.connectedA module has successfully established a connection to your Reservit account via the API.
module.disconnectedA module's Reservit API connection has been lost or the API key has become invalid.
module.errorA module has encountered a non-recoverable error during a sync operation.
subscription.renewedA monthly module subscription has been renewed and payment processed.
subscription.cancelledA module subscription has been cancelled. The module will remain active until the end of the billing period.
subscription.expiredA module subscription access period has ended following cancellation.

Webhook requests include a signature header (X-ItReserve-Signature) containing an HMAC-SHA256 hash of the request body, signed with a secret key issued when the webhook is created. Verify this signature on your receiving server before processing the event. The signing secret is returned once at webhook creation time and is not retrievable thereafter — store it securely.

Rate limits

The ItReserve API enforces rate limits to ensure stability across all customer integrations. The current limits are:

  • 100 requests per minute per API token
  • 5,000 requests per day per account

Rate limit status is returned in the response headers of every API call: X-RateLimit-Limit (total limit), X-RateLimit-Remaining (remaining calls in the current window) and X-RateLimit-Reset (Unix timestamp when the window resets).

When the rate limit is exceeded, the API returns a 429 Too Many Requests response. Implement exponential backoff in your integration before retrying. If your use case requires higher limits, contact support@itreserve.org to discuss your requirements.

Versioning policy

The ItReserve API uses URL-based versioning. The current production version is v1 (base URL: https://api.itreserve.org/v1). When a new major version is released, the previous version remains active for a minimum of 12 months. Deprecation notices are published in the changelog and emailed to all customers who have made API calls against the version being retired within the preceding 90 days.

Non-breaking changes — new optional fields, new endpoint additions, new event types — are made to the current version without a version increment. Breaking changes — field removals, response structure changes, authentication mechanism changes — always trigger a new major version. You can safely add your integration against /v1 without being affected by non-breaking additions.