Developers
Stayo's public API
Stayo's public REST API lets you build your own integrations, apps and reports against bookings, guests, rooms and rates. Authentication via API key.
What can you build?
Custom integrations
Connect Stayo to your existing systems — CRM, marketing automation, ERP or your own in-house tools.
Tailor-made apps
Build your own interfaces for front desk, housekeeping or management on top of the same data Stayo uses.
Reports & BI
Pull bookings, occupancy and revenue into Power BI, Looker Studio, Excel or your own data warehouse.
Automation
Trigger workflows in Make, Zapier or n8n based on new bookings, check-ins or payments.
Authentication
All requests are authenticated with an API key that you create under Settings → Developers in Stayo. Send the key as a Bearer token in the Authorization header.
- • Separate keys for test and production (sk_test_… / sk_live_…).
- • The key is only shown once — store it securely.
- • Always sent over HTTPS. Never in client-side code or URLs.
- • Can be rotated or revoked at any time.
curl https://api.stayo.se/public/v1/bookings \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx" \
-H "Accept: application/json"Endpoints (selection)
REST-based API with JSON. The full OpenAPI specification is provided to active integrators.
| Method | Path | Description |
|---|---|---|
| GET | /bookings | List bookings with filters for date, status and channel. |
| POST | /bookings | Create a new booking. |
| GET | /bookings/{id} | Fetch a single booking. |
| PATCH | /bookings/{id} | Update status, dates or guest details. |
| GET | /guests | Search and list guests. |
| GET | /rooms | List rooms, room types and availability. |
| GET | /rates | Fetch rates and rate rules. |
| GET | /invoices | List invoices and receipts. |
| POST | /webhooks | Register webhooks for real-time events. |
Example response
{
"data": [
{
"id": "bk_01HXYZ...",
"status": "confirmed",
"channel": "booking.com",
"arrival": "2026-08-12",
"departure": "2026-08-15",
"guest": { "name": "Anna Andersson", "email": "anna@example.com" },
"room": { "id": "rm_12", "type": "Dubbelrum" },
"total": { "amount": 4200, "currency": "SEK" }
}
],
"meta": { "page": 1, "per_page": 50, "total": 128 }
}Rate limits
60 requests per minute per API key by default. Current status is available in the response headers X-RateLimit-Remaining and X-RateLimit-Reset. Need more? Get in touch.
Versioning
The version is specified in the URL (/public/v1/). Non-breaking changes may be added within the same version. Breaking changes only happen in new versions with at least 6 months of overlap.
Webhooks
Subscribe to events like booking.created, booking.updated and payment.succeeded. All webhooks are signed with HMAC-SHA256.
Get started with the API
The API is available to Stayo customers on the Growth plan and above. Get in touch and we'll activate access, send the OpenAPI specification and help you get started.