The sandbox lets you build and test your integration without real hotels or real money.
How it works
- Same base URL, different key. Use
https://api.katanox.com/v2with your sandbox API key, which you get when you sign up. A production key is issued separately once your integration is certified. - Test properties only. Sandbox properties are fictional. Bookings are not sent to real hotels.
- No supplier choice. You can't choose which hotel systems are behind the sandbox properties. The API doesn't expose which system serves a rate, in sandbox or in production.
Limitations
| Limitation | Workaround |
|---|---|
Searching by location (lat/lng) may return nothing, because the test properties' coordinates aren't reliable. | Search by property_ids. Get the IDs from GET /properties. |
| At most 2 adults per unit. Searches with 3+ adults return nothing. | Test larger units in production with a certified key, or ask us. Production has no such limit. |
| No test properties with child-specific pricing. | Ask your account manager if you need them. |
| Real hotel chains' behaviour is not simulated (e.g. timeouts, supplier-specific field limits). | See the limits in Booking. |
| Sandbox data can be sparse for some dates. | Try dates a few weeks ahead; if there's still nothing, contact us. |
| Not every hotel chain is in sandbox. Some chains have no test environment, so their property IDs, unit types and rates don't exist there. | Test with the sandbox properties. Check content (not bookings) for those chains with your production key once you have it. |
Multi-unit bookings work in the sandbox.
Test data
| What | IDs |
|---|---|
| Corporate rate | corporate_profile_id=J0GER8X4, property KGQDE1Y4, rate plan 6Y11JROY |
GENERAL_PROMO rates | rate plans 6Y1EE78D, LYJ11M85 on property KGQDE1Y4 |
PAY_NOW rates | properties KGQDE1Y4, 1YK15JGO, ZYR1XQYQ |
What to test before going live
- Search: by property IDs, with single and multi-unit
occupancy(Availability). - Offer re-check:
POST /offers/{id}/refreshbefore booking (Offers). - Booking and polling: create a booking and poll until
CONFIRMED(Booking). - Error handling: handle a
FAILEDreservation and itserrors[].code. - Cancellation: cancel and poll until
CANCELLED(Cancellation). - Rate limiting: handle
429with back-off.
Going to production
Contact your account manager to certify your integration and get a production key. In production you'll only see properties you have a contract with; see Availability → Why is my result empty?.