Skip to main content

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" } }