Overview
Zenoti is a unified CRM and operations platform for salons, spas, medspas, and fitness studios. Thezenoti automation type fans out to ~160 actions across reference data, centers, services, employees, guests, memberships, bookings, appointments, invoices, payments, gift cards, opportunities, reports, inventory, classes, blockouts, organizations, and a generic raw-request escape hatch.
Every action is invoked the same way — automationType: "zenoti", an action name, and a params object whose shape depends on the action. Most actions follow a consistent pattern:
apiKey— always at the top level ofparams.- Path IDs (
centerId,guestId,appointmentId,invoiceId,roomId,employeeId,membershipId, …) — top level. query— nested object with query-string filters (pagination, dates, etc.).body— nested object with the POST/PUT request body.
Authentication
- Zenoti API key — generate it in Admin → Configuration → Apps. The integration sends it as
Authorization: apikey <key>.
Common parameters
apiKey(required for every action).centerId(required for center-scoped actions; the Zenoti location UUID).- Pagination: most list endpoints accept
query.page(1-based) andquery.size(default 10, max 100). - Dates: ISO-8601 (
YYYY-MM-DDor full timestamp depending on the endpoint).
Available Actions
Reference Centers- List Centers
- Get Center
- List Center Rooms
- List Center Categories
- List Center Therapists
- List Center Products
- List Center Packages
- Get Center Attendance
- Get Center Category
- Get Center Room
- List Center Blockouts
- List Center Memberships
- Get Center Members
- List Employees
- Get Employee
- Create Employee
- Update Employee
- Employee Check-in
- Employee Check-out
- Get Employee Attendance
- Search Guests
- List Guests
- Get Guest
- Create Guest
- Update Guest
- List Guest Appointments
- List Guest Products
- List Guest Saved Cards
- Add Guest Card
- Delete Guest Saved Card
- Create Guest Note
- List Guest Notes
- Update Guest Note
- Delete Guest Note
- List Guest Gift Cards
- List Guest Packages
- List Guest Loyalty Points
- Get Guest Loyalty Points History
- Add / Remove Loyalty Points
- List Guest Relationships
- Guest Reset Password
- Update Guest Password
- Update Billing Address
- Create Guest Form
- Get Guest Form
- Update Guest Form
- List Guest Memberships
- Get Guest Pending Collection
- Cancel Membership
- Freeze Membership
- Unfreeze Membership
- Change Membership Renewal
- List Appointments
- Get Appointment
- Mark Appointment No-Show
- Appointment Check-in
- Undo Appointment Check-in
- List Appointment Forms
- Get Appointment Form
- Create Invoice
- Get Invoice
- Close Invoice
- Cancel Invoice
- Email Invoice
- Add Invoice Membership
- Add Invoice Product
- Remove Invoice Product
- Remove Invoice Membership
- Pay Invoice — Saved Card
- Pay Invoice — Gift Card
- Pay Invoice — Custom
- Pay Invoice — Tip
- Pay Invoice — New Card
- Email Invoice Gift Card
- Apply Campaign Offer
- Redeem Loyalty Points (Invoice)
- Sell Package
- Redeem Package
- Create Product Invoice
- Create Group Invoice
- Get Group Invoice
- Email Group Invoice
- Create Gift Card Invoice
- Get Gift Card Balance
- Create Custom Amount GC Template
- Create Service GC Template
- List Gift Card Templates
- List Center Gift Card Templates
- Create Opportunity
- List Opportunities
- Get Opportunity
- Update Opportunity
- Get Opportunity Metadata
- Create Opportunity Note
- List Opportunity Notes
- Get Inventory Stock
- Get Inventory Consumption
- List Purchase Orders
- Get Purchase Order
- List Transfer Orders
- Get Transfer Order
- List Class Registrations
- Register Guest to Class
- Register via Gympass
- Cancel Class Registration
- Cancel Workshop Registration
- Admin Enroll Class
- List Guest Class Sessions
- Cancel Class Session Registrations
- Create Class Membership Invoice
- Create Series Package Invoice
- Book Class Session
- Close Series Invoice
- Close Membership Invoice
- Pay Class Booking — Saved Card
- List Class Booking Payment Methods
- List Class Memberships
- List Class Packages
- List Class Sessions
- Create Room Blockout
- Create Recurring Room Blockout
- List Room Blockouts
- Get Room Blockout
- Update Room Blockout
- Delete Room Blockout
- Create Employee Blockout
- Create Recurring Employee Blockout
- List Employee Blockouts
- Get Employee Blockout
- Update Employee Blockout
- Delete Employee Blockout
- List Blockout Time Types
Examples
Example 1: List Countries
Example 2: List States
States within a country.Example 3: List Reasons
Standard reasons (cancellation, freeze, etc.).Example 4: List Gift Card Occasions
Example 5: List Vendors
Example 6: List Centers
All centers in the org.Example 7: Get Center
Example 8: List Center Rooms
Example 9: List Center Categories
Example 10: List Center Therapists
Example 11: List Center Products
Example 12: List Center Packages
Example 13: Get Center Attendance
Daily attendance roster for a center.Example 14: Get Center Category
Example 15: Get Center Room
Example 16: List Center Blockouts
Example 17: List Center Memberships
Example 18: Get Center Members
Active membership holders at a center.Example 19: List Services
Example 20: Get Service
Example 21: Get Service Pricing
Example 22: List Employees
Example 23: Get Employee
Example 24: Create Employee
Example 25: Update Employee
Example 26: Employee Check-in
Example 27: Employee Check-out
Example 28: Get Employee Attendance
Example 29: Search Guests
Search by any combination of email, phone, name, code.center_id is required.
Example 30: List Guests
Bulk list guests at a center.Example 31: Get Guest
Example 32: Create Guest
Example 33: Update Guest
Full replace — pass any subset of the create body that you want to overwrite.Example 34: List Guest Appointments
Example 35: List Guest Products
Example 36: List Guest Saved Cards
⚠️ Tenant-config dependent. Only available on tenants with a PCI-compliant payment processor wired up. Note the capitalI in center_Id.
Example 37: Add Guest Card
Returns a hosted-payment-page redirect URL for the guest to enter card details (PCI compliant).Example 38: Delete Guest Saved Card
Example 39: Create Guest Note
Example 40: List Guest Notes
Example 41: Update Guest Note
Example 42: Delete Guest Note
Example 43: List Guest Gift Cards
Example 44: List Guest Packages
Example 45: List Guest Loyalty Points
Example 46: Get Guest Loyalty Points History
Example 47: Add / Remove Loyalty Points
Points is positive to add, negative to remove. Note PascalCase fields.
Example 48: List Guest Relationships
Example 49: Guest Reset Password
Triggers a password reset email/SMS for the guest.Example 50: Update Guest Password
Example 51: Update Billing Address
Example 52: Create Guest Form
Example 53: Get Guest Form
Example 54: Update Guest Form
Example 55: List Guest Memberships
Example 56: Get Guest Pending Collection
Outstanding balance owed on a membership.Example 57: Cancel Membership
Example 58: Freeze Membership
Example 59: Unfreeze Membership
Example 60: Change Membership Renewal
Toggle auto-renewal on/off.Example 61: Create Booking
A “booking” is a holding container for one or more service slots before they are confirmed as appointments.Example 62: Get Booking Slots
Available time slots for a booking.Example 63: Reserve Slot
Example 64: Confirm Slot
Converts the reserved slot into a confirmed appointment.Example 65: List Appointments
Example 66: Get Appointment
Example 67: Mark Appointment No-Show
Example 68: Appointment Check-in
Example 69: Undo Appointment Check-in
Example 70: List Appointment Forms
Forms attached to an appointment (intake, consent, etc.).Example 71: Get Appointment Form
Example 72: Create Invoice
Creates an open product invoice.Example 73: Get Invoice
Example 74: Close Invoice
Example 75: Cancel Invoice
Example 76: Email Invoice
Example 77: Add Invoice Membership
Example 78: Add Invoice Product
Example 79: Remove Invoice Product
Example 80: Remove Invoice Membership
Example 81: Pay Invoice — Saved Card
Example 82: Pay Invoice — Gift Card
Example 83: Pay Invoice — Custom
Example 84: Pay Invoice — Tip
Example 85: Pay Invoice — New Card
⚠️ PCI-gated. Only enabled on tenants whose payment processor supports server-side card capture.Example 86: Email Invoice Gift Card
Send an e-gift-card email to the recipient associated with an invoice.Example 87: Apply Campaign Offer
Example 88: Redeem Loyalty Points (Invoice)
Example 89: Sell Package
Creates a package-sale invoice for a guest.Example 90: Redeem Package
Example 91: Create Product Invoice
Same shape ascreate_invoice — explicit alias.
Example 92: Create Group Invoice
Roll up multiple individual invoices under a single group billing.Example 93: Get Group Invoice
Example 94: Email Group Invoice
Example 95: Create Gift Card Invoice
Example 96: Get Gift Card Balance
Example 97: Create Custom Amount GC Template
Example 98: Create Service GC Template
Example 99: List Gift Card Templates
Example 100: List Center Gift Card Templates
Example 101: Create Opportunity
CRM lead/opportunity — Zenoti’s sales pipeline.Example 102: List Opportunities
Example 103: Get Opportunity
Example 104: Update Opportunity
Body shape mirrorscreate_opportunity.
Example 105: Get Opportunity Metadata
Returns priority types, statuses, dispositions, custom fields, etc.Example 106: Create Opportunity Note
Example 107: List Opportunity Notes
Example 108: Get Center Collections Report
Example 109: Get Center Sales Report
Example 110: Get Inventory Stock
Example 111: Get Inventory Consumption
Example 112: List Purchase Orders
Example 113: Get Purchase Order
Example 114: List Transfer Orders
Example 115: Get Transfer Order
Example 116: List Class Registrations
Example 117: Register Guest to Class
Example 118: Register via Gympass
Example 119: Cancel Class Registration
Example 120: Cancel Workshop Registration
Example 121: Admin Enroll Class
Admin-only enrollment that bypasses the standard guest-side flow.Example 122: List Guest Class Sessions
Example 123: Cancel Class Session Registrations
Cancels every registration on a session.Example 124: Create Class Membership Invoice
Example 125: Create Series Package Invoice
Note the mixed PascalCase / camelCase Zenoti uses here.Example 126: Book Class Session
Example 127: Close Series Invoice
Example 128: Close Membership Invoice
Example 129: Pay Class Booking — Saved Card
Example 130: List Class Booking Payment Methods
Example 131: List Class Memberships
Example 132: List Class Packages
Example 133: List Class Sessions
Example 134: Create Room Blockout
Example 135: Create Recurring Room Blockout
Example 136: List Room Blockouts
Example 137: Get Room Blockout
Example 138: Update Room Blockout
Example 139: Delete Room Blockout
Example 140: Create Employee Blockout
Example 141: Create Recurring Employee Blockout
Example 142: List Employee Blockouts
Example 143: Get Employee Blockout
Example 144: Update Employee Blockout
Example 145: Delete Employee Blockout
Example 146: List Blockout Time Types
Blockout categories (vacation, training, maintenance, etc.) at the center level.Example 147: Get Security Profiles
Org-level security profiles.Example 148: List Org Blockout Time Types
Blockout categories at the org level (vs. per-center).Example 149: Get Security Roles
Example 150: Generate Shopify Multipass URL
Single-sign-on URL into a linked Shopify storefront.Example 151: Raw Request
Escape hatch for any Zenoti endpoint not yet first-classed in the integration. Thepath is appended to the Zenoti regional base URL; the apiKey header is added automatically.
Notes & Caveats
- PCI-gated endpoints.
list_guest_saved_cards,delete_guest_saved_card,add_guest_card, andpay_invoice_new_cardonly work on Zenoti tenants whose payment processor supports the corresponding flow. Sandboxes (including iFlex) typically return a regional 404 HTML page rather than the API response — ask Zenoti support to enable the payment-processor integration if you see that. - Mixed casing. Zenoti’s API is inconsistent about field casing — some endpoints use
snake_case, somecamelCase, somePascalCase, and a few mix all three within one body (center_Idvscenter_id,SessionId+userId+packageIds). Examples above mirror what Zenoti accepts. - Center scoping. Most operational endpoints (services, employees, appointments, invoices, memberships, classes, …) require a
centerId(orcenter_idinsidequery/body). Reference and org-level endpoints don’t. - Pagination.
query.pageis 1-based;query.sizedefaults to 10 with a server cap of 100.
Third-Party Documentation
- Zenoti Developer Portal: https://docs.zenoti.com/
- Zenoti API reference: https://apidocs.zenoti.com/reference/introduction-to-zenoti-apis