Back to Blog
Developers3 min read

Building Custom Booking Flows with the RZRV API: A Developer's Guide

Everything you need to integrate RZRV's scheduling API into your app. REST endpoints, webhooks, authentication, and real-world integration patterns.

RT
RZRV Team
March 20, 2026
Developer building custom booking flows with the RZRV scheduling API

Why use the API?

The RZRV booking page and AI chat handle most use cases out of the box — see the full RZRV feature set for what's included without any code. But sometimes you need scheduling deeply integrated into your own product:

  • Custom booking UIs that match your brand exactly
  • CRM integrations that sync appointments with your customer database
  • Marketplace apps where multiple businesses list services
  • Internal tools that staff use alongside other business systems

The RZRV API gives you full programmatic access to everything the dashboard does.

Authentication

Every API request requires an API key passed in the X-Api-Key header:

curl -H "X-Api-Key: your_api_key_here" \
  https://api.rzrv.ai/api/v1/services

Generate API keys from your dashboard under Settings > API. Keys are scoped to your business and can be revoked anytime.

Core endpoints

Services

GET    /api/v1/services              # List all services
GET    /api/v1/services/:id          # Get service details
POST   /api/v1/services              # Create service
PUT    /api/v1/services/:id          # Update service
DELETE /api/v1/services/:id          # Delete service

Staff

GET    /api/v1/staff                 # List all staff
GET    /api/v1/staff/:id             # Get staff details + schedule

Availability

GET    /api/v1/availability          # Get available time slots
       ?service_id=...
       &staff_id=...                 # Optional: specific staff
       &date=2026-05-20              # Required: YYYY-MM-DD

This is the most important endpoint. It returns available slots accounting for:

  • Staff schedules and break times
  • Existing appointments
  • Buffer times between services
  • Calendar sync blocks (Google Calendar, Outlook)

Appointments

GET    /api/v1/appointments          # List appointments
POST   /api/v1/appointments          # Create appointment
GET    /api/v1/appointments/:id      # Get appointment details
PATCH  /api/v1/appointments/:id      # Update status
DELETE /api/v1/appointments/:id      # Cancel appointment

Customers

GET    /api/v1/customers             # List customers
POST   /api/v1/customers             # Create customer
GET    /api/v1/customers/:id         # Get customer + history

Webhooks

Instead of polling for changes, subscribe to real-time events:

{
  "url": "https://your-app.com/webhooks/rzrv",
  "events": [
    "appointment.created",
    "appointment.confirmed",
    "appointment.cancelled",
    "appointment.completed",
    "appointment.no_show"
  ],
  "secret": "your_webhook_secret"
}

Every webhook delivery includes an HMAC signature in the X-Webhook-Signature header. Always verify it:

const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Common integration patterns

Pattern 1: Embedded booking widget

Use the public endpoints (no API key needed) to build a custom booking flow:

  1. GET /api/public/business/:slug — Get services and staff
  2. GET /api/public/business/:slug/availability — Get time slots
  3. POST /api/public/business/:slug/book — Create the appointment

This is how the RZRV embeddable widget works internally.

Pattern 2: CRM sync

Subscribe to appointment webhooks and sync to your CRM:

appointment.created  →  Create CRM contact + activity
appointment.completed →  Update CRM deal stage
appointment.no_show   →  Flag in CRM for follow-up

Pattern 3: Custom notifications

Disable RZRV's built-in notifications and handle them yourself:

  1. Subscribe to appointment.created webhook
  2. Send your own branded confirmation
  3. Implement your own reminder schedule — custom sequences are one of the most effective strategies for reducing appointment no-shows
  4. Track opens/clicks for optimization

Rate limits

  • API key requests: 100 requests/minute
  • Public endpoints: 30 requests/minute per IP
  • Webhook deliveries: Retried 3 times with exponential backoff

What's next

The API is in active development. Coming soon:

  • Batch operations for bulk appointment management
  • Analytics endpoints for revenue and utilization data
  • Calendar sync API for programmatic calendar connections

Check the full API reference at your dashboard's API Docs section, or explore interactively with our Scalar API explorer.

Not sure you need the API? Most businesses get everything they need from RZRV's built-in AI-powered scheduling — no code required.

apiwebhooksintegrationdevelopersrest api

Ready to automate your bookings?

Start accepting AI-powered appointments in minutes.

Get Started Free