Skip to main content

App API and Webhooks

Connect booking data to custom systems with the Easy Appointment Booking API or real-time webhooks

Written by Ray M

The Easy Appointment Booking API and webhooks let you connect booking data to your own systems, dashboards, CRM, spreadsheets, or automation tools.

API access

The v1 API is an early preview for Enterprise planholders and is currently invite-only. It can help you:

  • Retrieve booking data programmatically.

  • Look up the Shopify order and customer connected to a booking.

  • Build a custom integration or reporting dashboard.

  • Create, reschedule, and cancel bookings from your own system.

If you are on Enterprise and want access, contact support to discuss your use case and onboarding. API access is separate from the webhook setup below.

What you can reach

Resource

What it covers

Bookings

List, read, create, update, reschedule, cancel, remind, and send a follow-up.

Events

List and read your services, their booking options, and their open slots.

Availability

List, create, and update availability, and assign it to a booking.

Locations

List and read your locations. Read-only.

Reports

Peak-hours report.

Me

Confirm which shop a key belongs to.

Locations

Every booking and event carries a locationId. Use GET /api/public/v1/locations to resolve that id to a name and address, and GET /api/public/v1/locations/{id} to read one.

Locations are read-only over the API. Create and edit them in Settings > Locations in the app.

Rate limits

The API allows 10 requests per second per shop. This is a shared budget: every key for the same store draws on it.

Every response carries the current state of your budget:

Header

Meaning

X-RateLimit-Limit

Requests allowed per second.

X-RateLimit-Remaining

Requests left in the current window.

X-RateLimit-Reset

When the window resets.

Go over the limit and the request is refused with HTTP 429 and a RATE_LIMITED error code:

{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit of 10 requests per second exceeded"
  }
}

A 429 also carries a Retry-After header telling you how many seconds to wait.

💡 Tip: Read X-RateLimit-Remaining and slow down before you hit zero, rather than waiting for a 429. If you are backfilling a lot of data, run the job in series instead of in parallel.

What webhooks do

A webhook sends an HTTP POST request to a URL you control whenever a booking event occurs. This lets another tool react immediately when a booking is created, cancelled, rescheduled, updated, or checked in.

Common uses include:

  • Adding new bookings to a CRM.

  • Sending a message to Slack, Teams, or another internal tool.

  • Logging booking data in Google Sheets or a database.

  • Triggering a custom email or follow-up workflow.

Webhooks send booking events, not live availability or schedule data.

Set up a webhook

  1. In Easy Appointment Booking, go to Settings > Webhooks & API.

  2. Enter the destination URL supplied by your own system, Zapier, Make, or another automation platform.

  3. Click Save.

Webhooks require the Ultimate plan. You need a destination URL that can receive JSON POST requests.

Events and payloads

The event name identifies what happened. Common event names include:

  • booking.created

  • booking.cancelled

  • booking.rescheduled

  • booking.updated

  • booking.checked_in

  • booking.no_show

  • booking.reminder

  • package.purchased

Each request includes an event field and a data object. The data can include the booking ID, Shopify order ID, customer details, selected variant, attendees, date and time, event details, assigned availability, and package information when applicable.

{
  "event": "booking.created",
  "data": {
    "booking_id": "BOK123",
    "order_id": "12345",
    "event_name": "Consultation Call",
    "start_date": "2026-12-11",
    "start_time": "10:00 AM",
    "timezone": "America/New_York"
  }
}

Test your webhook

  1. Create a test endpoint with a tool such as Zapier, Make, or a request inspector.

  2. Paste its URL into Settings > Webhooks & API and save.

  3. Create a test booking or reschedule an existing booking.

  4. Check the destination tool to confirm that the payload arrived.

⚠️ Warning: Keep your webhook URL private. Make sure your receiving system handles failures and protects customer data. If you use a platform such as Zapier or Make, use its retry and logging tools to monitor delivery.

Did this answer your question?