Venue data is separated on the server
Every request is scoped to a tenant resolved server-side. API clients never send a venue identifier — it is derived from the token — so one owner cannot read or modify another owner’s bookings, members or invoices by guessing IDs.
API tokens are stored hashed
Bearer tokens are kept as SHA-256 hashes, never in plain text. Owners generate them, scope them to named abilities, and revoke them at any time. A read-only token stays read-only.
Staff access is scoped and revocable
Staff hold their own accounts with a role that determines what they can do, see only the venues they are assigned to, and set their own password from an emailed invite. Access is revoked instantly, everywhere. No shared logins.
Every change is logged
Activity logs record who changed what and when, including every API call with its method, status and duration. "Who moved that booking?" has an answer.
Encrypted in transit
The site and API are served over HTTPS with HSTS, including subdomains. Certificates renew automatically.
Requests are rate limited
Public forms and API endpoints are throttled, so a single client cannot exhaust the platform for everyone else.