ZenCore Overview
ZenCore (zs-backend) is the core API and source of truth for everything commerce-related in SpaceOS — organizations, users, spaces, bookings, pricing, payments, refunds, vouchers, webhooks.
Stack
- Runtime: Node.js + TypeScript
- Framework: NestJS with URI versioning (
/api/v1/...) - Database: PostgreSQL via TypeORM
- Hosting: Cloud-managed (URL:
https://api-spaceos.zenspace.io)
Module map
ZenCore is organized into ~50 NestJS modules grouped by domain:
| Domain | Modules |
|---|---|
| Identity & Access | auth, users, roles, organization-user-mapping, permissions |
| Organization & Inventory | organizations, space-groups, meeting-spaces, amenities |
| Availability & Scheduling | business-hours, space-unavailability, meeting-space-status, schedule |
| Booking & Commerce | bookings, pricing, payments, refunds, vouchers, stripe, payout-reports |
| Devices & Access | meeting-space-devices, device-failure-policy, device-capabilities, user-device-access |
| Integrations | webhooks, third-party-connections, mrd-sessions, physical-space-mappings |
| Notifications | notifications, email, realtime, push, user-notifications |
| Platform/Ops | api-keys, api-audit-logs, load-testing, version, event-types |
Base URL & versioning
https://api-spaceos.zenspace.io/api/v1/...
All routes are prefixed with /api/v1/. Older /api/v0/ availability endpoints are retired — do not point new integrations there.
Response envelope
Every successful response follows this shape:
{
"status": 200,
"success": true,
"message": "Optional message",
"data": { ... },
"timestamp": "2026-05-10T10:00:00.000Z",
"meta": { "page": 1, "limit": 20, "total": 100 }
}
Errors:
{
"status": 400,
"success": false,
"message": "Validation failed",
"errors": [{ "field": "email", "message": "must be a valid email" }],
"timestamp": "2026-05-10T10:00:00.000Z"
}
Sections
- Authentication — OTP, JWT, API keys, org API keys
- Organizations
- Spaces — space groups, meeting spaces, business hours
- Bookings — create, modify, cancel
- Pricing & Payments
- Users & Roles
- Webhooks
- Rate Limits