Quick Start (End-to-End)
The fastest way to see the flow before reading the reference material.
Step 1: Submit a connection request
Use the API key the admin gave you. POST to /api/third-party/connection-request
POST /api/third-party/connection-request
Content-Type: application/json
x-api-key: zsk_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{
"organization_id": "<uuid>",
"space_id": "<uuid>",
"third_party_mode": "Google Calendar",
"detail": {
"name": "Conference Room A",
"capacity": 10,
"timezone": "America/Los_Angeles"
},
"webhook_url": "https://your-bridge.example.com/webhooks/zenspace"
}
Returns: { data: { id: "<connection_id>", status: "pending", ... } }
Step 2: Wait for approval
The org admin approves the connection in the ZenSpace admin UI. When they do, ZenSpace POSTs to your webhook_url with status="approved".
Step 3: Create a booking (once approved)
POST /api/bookings
Content-Type: application/json
x-api-key: zsk_live_...
{
"organization_id": "...",
"space_id": "...",
"space_group_id": "...",
"title": "Team Sync",
"start_time": "2026-04-20T14:00:00Z",
"end_time": "2026-04-20T15:00:00Z",
"attendees": [],
"total_amount": 0,
"deposit_amount": 0,
"metadata": { "external_event_id": "google-event-abc123" }
}
Returns: { data: { id: "<booking_id>", status: "confirmed", payment_status: "paid" } }