Build on EscapeLife OS.
APIs, SDKs & MCP.
Full REST and GraphQL APIs, webhooks, NPM packages for React/Vue, an MCP server for AI agents, and SDKs for Python, JavaScript, Swift, and Kotlin.
Capabilities
What Builders Get
Everything required to integrate inventory, AI intents, loyalty, payments, and analytics.
API Explorer
Interactive explorer with typed schemas, pagination helpers, and code snippets.
Webhook Events
Reliable delivery for bookings, guest intents, payments, and ops updates.
Sandbox
Dedicated environments with synthetic data for testing full journeys.
Rate Limits
Per-application quotas with burst allowances and analytics.
SDKs
Type-safe SDKs for JavaScript/TypeScript, Python, and Kotlin.
Open Platform
REST, GraphQL, Webhooks, NPM packages, and an MCP server for AI agents.
API Explorer
Example Requests
Typed endpoints streamline commerce, experiences, and guest context.
GET /v1/properties/{propertyId}/availability?start=2026-03-01&end=2026-03-04
Authorization: Bearer sk_test_xxx
{
"propertyId": "pty_43",
"rooms": [
{
"roomType": "signature_suite",
"inventory": 7,
"rate": 820,
"currency": "USD"
}
],
"experiences": [
{
"id": "exp_culinary_01",
"slots": 12,
"price": 180
}
]
}POST /webhooks/guest.intent
{
"id": "evt_7gh92",
"type": "guest.intent.created",
"data": {
"guestId": "gst_01H",
"channel": "voice",
"intent": "book_experience",
"context": {
"propertyId": "pty_43",
"preferredTime": "2026-03-04T20:00:00Z"
}
},
"signature": "t=1730000000,v1=1c9f..."
}Frameworks & SDKs
Integrate With Any Stack
EscapeLife OS ships official SDKs and framework packages so your team can integrate in the language and toolchain you already use — no adapters needed.
React & Next.js
NPM packages for booking widgets, availability calendars, and checkout flows. Drop in as components or headlessly via hooks. Full TypeScript support.
Vue & Angular
Web component wrappers for Vue 3 and Angular 15+ that expose the same booking, loyalty, and upsell APIs — no framework lock-in.
Svelte & Vanilla JS
Lightweight ES module builds for Svelte and plain JavaScript. Ideal for high-performance frontends where bundle size matters.
React Native
Full-featured React Native SDK for guest-facing and staff apps. Supports iOS and Android with offline queuing, push notifications, and folio charging built in.
Flutter
Dart SDK for Flutter apps covering bookings, POS transactions, housekeeping, and check-in flows. Works with the same offline sync architecture as the web platform.
iOS (Swift) & Android (Kotlin)
Native SDKs for teams building bespoke property apps. Full access to reservations, guest profiles, POS, and loyalty APIs with native push and biometric auth support.
Node.js & Python
Server-side SDKs with full TypeScript and type-hint support. Handle webhooks, manage reservations server-to-server, and pipe data into your own analytics pipeline.
Ruby, PHP, Java & ASP.NET
Official gems, Composer packages, Maven artifacts, and a NuGet package for ASP.NET Core — covering bookings, guests, pricing, and payments. ASP.NET is widely used across hotel PMS and channel manager integrations.
Zapier, Make & n8n
No-code automation connectors for Zapier, Make (Integromat), and n8n. Trigger flows on bookings, reviews, and loyalty events without writing a line of code.
Quick Start
Up and Running in Minutes
Install the EscapeLife SDK, initialise with your API key, and your first availability request is three lines of code.
npm install @escapelife/sdk
# or
yarn add @escapelife/sdkimport { EscapeLifeClient } from "@escapelife/sdk";
const client = new EscapeLifeClient({
apiKey: process.env.ESCAPELIFE_API_KEY,
propertyId: "pty_43",
});
const availability = await client.reservations.getAvailability({
start: "2026-06-01",
end: "2026-06-07",
});
console.log(availability.rooms); // typed RoomAvailability[]import { BookingWidget } from "@escapelife/react";
export function ReservationPage() {
return (
<BookingWidget
propertyId="pty_43"
theme={{ primary: "#FFD230" }}
onBookingComplete={(booking) => {
console.log("Confirmed:", booking.confirmationCode);
}}
/>
);
}import { useHousekeeping } from "@escapelife/react-native";
export function TaskList() {
const { tasks, completeTask } = useHousekeeping({
staffId: "stf_88",
offlineEnabled: true, // queues writes if no network
});
return tasks.map((task) => (
<TaskCard
key={task.id}
task={task}
onComplete={() => completeTask(task.id)}
/>
));
}Join the EscapeLife Developer Program
Access documentation, SDKs, and sandbox credentials.
No credit card required · Setup in 48 hours · Cancel anytime