Skip to main content
Unifystays is a hotel distribution API. You integrate once and get hotel search, live prices, room options, booking and cancellation across all the suppliers you enable in the Unifystays portal. Unifystays handles supplier connections, hotel content, hotel and room mapping, and normalized responses, so your code never has to speak a supplier’s format. It is built for travel agencies, online travel agencies and technology companies that want to sell hotels. Adding another supplier later is a portal change, not a new integration project.
Enabling another supplier does not require new supplier API code, static inventory tables, synchronization jobs, or mapping logic in your system.

The booking flow in 6 steps

1

Find a destination

Destination Autocomplete returns places and hotels as the guest types. Load Nationalities for the guest form.
2

Search and watch prices arrive

Search Hotels returns hotel cards at once with a search_id. Poll Search Price Updates every 2 seconds to fill in live supplier prices.
3

Choose a room

Get Hotel Rooms starts a room search; read the room stream to receive offers grouped into room families, each with a booking_token.
4

Prebook

Prebook a Room rechecks the offer with the supplier, returns the final price and terms, the guest form (booking_requirements) and a prebooking_id.
5

Book

Create Booking with an Idempotency-Key, the prebooking_id and the guests of every room. The result is PROCESSING or AWAITING_REVIEW, never an instant confirmation.
6

Track, confirm and cancel

Receive webhooks or poll Get Booking Status until CONFIRMED. Read the details for the voucher. To cancel, quote the penalty, then cancel.

Start here

Quickstart

Run the whole flow from your terminal in Sandbox, from key to cancelled test booking.

Hotel Booking Flow

Sequence diagram, what to show and store at each step, expiry times and error recovery.

IDs and Tokens Cheat Sheet

Which ID or token to store, how long it lives and where to send it.

API Overview

Headers, response envelope, money and date conventions, pagination, rate limits and versioning.

Errors & Retries

Every error code, its HTTP status, and what to do about it.

Webhooks

Get booking updates pushed to you, signed and replayable.

Caching Strategy

What to cache and for how long, and what must always be fresh.

Launch Checklist

Everything to verify before sending live traffic.

Set up in the portal

1

Sign in and choose an environment

Go to unifystays.com. Use Sandbox while building and Production for live traffic.
2

Configure your suppliers

Select a supported supplier, enter the credentials it issued to you, and enable it for the environment.
3

Create an API key

Create and manage your own key in the portal for the same environment. Send it in the x-api-key header from your backend. No support request is needed. See Portal & Environments.

Environments

Sandbox is not a copy of Production. It only has hotels in 12 test cities: Paris, Los Angeles, Dubai, Rome, Naples, Istanbul, Tokyo, Bangkok, Chiang Mai, New Delhi, Ho Chi Minh City and Marrakech. Other destinations return empty results in Sandbox. See Sandbox test cities.
Use the key and base URL of the same environment. Keep Sandbox and Production keys separate, and never expose either in browser or mobile code.

What you get

  • Destination and hotel discovery with a balanced list of places and hotels.
  • Hotel search with live supplier prices, filters, sorting and paging.
  • Normalized hotel content without storing supplier inventory yourself.
  • Room offers from several suppliers, grouped by room type and bed configuration, each bookable through the supplier’s own offer.
  • Prebook to confirm price and availability, and to get the exact guest information the supplier needs.
  • Idempotent booking, status tracking, hold and confirm where offered, and cancellation with a quoted penalty.
  • Webhooks for booking updates, signed with a secret you control.

Response shape

Hotel responses use one envelope. Errors have their own shape (see Errors & Retries).
Every response includes an X-Request-Id header. Include it when you contact support. Make your first Sandbox request