A REST API and 31 webhooks
to wire your concierge to anything.
PriceLabs, Turno, Metabase, Zapier, n8n, your accounting software… no more double entry. Our API exposes everything that happens in your cockpit, and the webhooks notify your tools in real time.
Available on the Business plan. Sanctum tokens with granular abilities. Rate-limit 60 req/min.
21
Granular API scopes
31
Webhook events
60
Req/min per token
HMAC
SHA-256 signed on every webhook
What real agencies wire on top.
Yield management
PriceLabs · Wheelhouse · Beyond
Read the consolidated multi-property calendar and push seasonal rates in real time. Your prices auto-adjust to local demand.
calendar:read
rates:read
rates:write
Cleaning ops
Turno · Properly · Breezeway
Cleaning tasks are sent to your team via their dedicated apps (checklist, before/after photos). Webhooks on assignment, start, end.
cleaning:read
cleaning:write
Outsourced maintenance
Trades network · vendor management
Automatic ticket creation in your supplier's software. Slack/PagerDuty escalation on urgents (leak, AC failure).
maintenance:read
maintenance:write
BI & reporting
Metabase · Looker Studio · Power BI
Hotel KPIs already computed: occupancy rate, ADR, RevPAR, gross/net revenue per property or period. Your dashboards stay up to date with no recalculation.
reports:read
Owner accounting
Indy · Macompta.ma · Sage
Fetch monthly statements (revenue, commissions, net to disburse). Auto-push to the owner's accounting, trigger transfer.
statements:read
invoices:read
owners:read
Guest CRM
ActiveCampaign · Brevo · n8n
Webhook on confirmed booking → automatic pre-stay sequence. Push a templated WhatsApp message via API for personalised notifications.
bookings:read
whatsapp:write
OTAs sync
Hostaway · Hospitable · Smoobu
Property create/update/archive notified in real time. Configure external iCal sources (Airbnb, Booking) via API.
properties:read
properties:write
Security & compliance
Datadog · Splunk · Wazuh
Read the audit log (Law 09-08, 3-year retention) and SIEM-push critical events. For agencies subject to audit.
audit:read
No-code automations
Zapier · Make · n8n
Connect any webhook to hundreds of third-party apps without writing a line of code. Slack, Google Sheets, Notion, Trello, etc.
All webhook events
A clean, documented, predictable API.
Standard JSON format, Laravel pagination, consistent HTTP codes, Sanctum tokens with granular abilities. OpenAPI 3 documentation kept up to date automatically and browsable via Swagger.
- ✓Sanctum tokens with granular abilities: a read-only token for Metabase, a write token for Zapier.
- ✓Automatic tenant isolation: impossible to access another agency's data, even by mistake.
- ✓Standard rate-limit headers (X-RateLimit-*) for proper client-side back-off.
- ✓Optional expiration on tokens, immediate revocation from the cockpit.
# List revenue + ADR + RevPAR for July curl -H "Authorization: Bearer $TOKEN" \ "https://api.example.com/v1/reports/revenue?from=2026-07-01&to=2026-07-31&granularity=day" { "from": "2026-07-01", "to": "2026-07-31", "currency": "MAD", "data": { "global": { "gross_revenue": 142500, "net_revenue": 128250, "nights_booked": 186, "adr": 766.13, "revpar": 459.68 }, "per_property": [...], "series": [...] } }
Notified in real time when something moves.
Every webhook is HMAC-SHA256 signed and delivered with exponential retry (5 attempts over 24h). Wildcard supported (`booking.*` to subscribe to a whole event family).
Bookings
-
booking.createdNew booking -
booking.confirmedBooking confirmed (moved from pending to confirmed) -
booking.updatedBooking modified -
booking.cancelledBooking cancelled -
booking.checked_inCheck-in confirmed -
booking.checked_outCheck-out confirmed -
booking.no_showGuest did not show up (no-show) -
booking.payment_receivedGuest deposit collected via CMI (mini-site)
Properties
-
property.createdNew property created -
property.updatedProperty modified (price, description…) -
property.archivedProperty archived -
property.rate_changedSeasonal rate added / modified / removed (yield mgmt)
Cleaning
-
cleaning.assignedTask assigned -
cleaning.completedTask completed -
cleaning.skippedTask skipped (to be re-scheduled)
Maintenance
-
maintenance.createdTicket created -
maintenance.assignedTicket assigned to a tech -
maintenance.urgentTicket marked urgent (ops escalation) -
maintenance.resolvedTicket resolved
Invoices
-
invoice.sentInvoice sent -
invoice.paidInvoice paid
Sync
-
ical.conflict_detectediCal conflict detected -
ical.sync_failediCal sync failure (invalid URL / source down)
-
whatsapp.message_failedWhatsApp message send failure
Audit / security
-
audit.critical_eventCritical event in the audit log
Owners
-
owner.statement_readyMonthly statement available (1st of next month)
SaaS subscription
-
subscription.renewedSubscription renewed after a successful payment
Guest reviews
-
review.receivedNew guest review (reputation management, low-rating alert)
Payments
-
payment.succeededPayment succeeded (subscription or mini-site booking) -
payment.failedPayment failed (alerting / retry)
site.webhook_group_finance
-
tax_report.generatedsite.webhook_event_tax_report.generated
Stable and predictable format.
Every event is delivered in an identical envelope: unique id for deduplication, timestamp, event type, and a
data
block specific to the domain.
X-Signature
HMAC header to verify authenticity.
- ✓Exponential retry on 5 attempts over 24h if your endpoint responds >= 500.
- ✓Delivery log browsable in the cockpit, replay possible.
- ✓Wildcards: subscribe to
booking.*or even*to capture everything. - ✓Test from the UI : a "Test" button sends a dummy payload to your endpoint.
{
"id": "7f2a8b1c-9d4e-4f5a-b2c1-...",
"event": "booking.confirmed",
"created_at": "2026-07-15T10:23:41+00:00",
"agency_id": 42,
"data": {
"booking": {
"id": 9876,
"reference": "BKG-A1B2C3",
"status": "confirmed",
"source": "airbnb",
"check_in": "2026-08-12",
"check_out": "2026-08-19",
"guests_count": 2,
"guest_name": "Karim B."
}
}
}
Minimal-scope tokens.
Each token is limited to a subset of abilities — least-privilege principle. A Metabase token only has
reports:read, your production Zapier only has
bookings:write.
properties:read
Read properties
properties:write
Modify iCal sources and trigger a sync
bookings:read
Read bookings
bookings:write
Create and cancel bookings
owners:read
Read owners
invoices:read
Read invoices
calendar:read
Read the calendar
rates:read
Read seasonal rates
rates:write
Create, modify and delete seasonal rates
cleaning:read
Read cleaning tasks
cleaning:write
Create and manage cleaning tasks
maintenance:read
Read maintenance tickets
maintenance:write
Create and manage maintenance tickets
whatsapp:read
Read WhatsApp outbox messages
whatsapp:write
Prepare templated WhatsApp messages
reports:read
Read aggregated reports (occupancy, revenue, ADR, RevPAR)
statements:read
Read owner statements (monthly payouts)
audit:read
Read the audit log (Law 09-08 / SIEM)
reviews:read
Read guest reviews (reputation management)
reviews:write
Create guest reviews (OTA / manual import)
tax_reports:read
site.api_ability_tax_reports:read
Common questions.
Is the API included in every plan? +
Is there a request limit? +
Are webhooks secure? +
X-Signature). You can verify authenticity before processing.What happens if my webhook endpoint goes down? +
Can I test without subscribing? +
Does the API support GraphQL? +
Ready to wire your stack?
14-day free trial on the Business plan. No card required. You generate your first tokens in 2 minutes.