Skip to main content

October 7, 2026

· 3 min read

This release adds the applies_to property to joining fees across all membership payment plan endpoints. This new required field indicates which members the joining fee applies to, providing more granular control and transparency around joining fee applicability rules.

GET /joining_fees

  • added the required property results/items/applies_to to the response with the 200 status (media type: application/json)
View updated docs

GET /membership_payment_plans

  • added the required property results/items/joining_fee/applies_to to the response with the 200 status (media type: application/json)
View updated docs

POST /membership_payment_plans

  • added the required property joining_fee/applies_to to the response with the 201 status (media type: application/json)
View updated docs

GET /membership_payment_plans/{id}

  • added the required property joining_fee/applies_to to the response with the 200 status (media type: application/json)
View updated docs

PATCH /membership_payment_plans/{id}

  • added the required property joining_fee/applies_to to the response with the 200 status (media type: application/json)
View updated docs

PUT /membership_payment_plans/{id}

  • added the required property joining_fee/applies_to to the response with the 200 status (media type: application/json)
View updated docs

October 6, 2026

· 5 min read

This release renames the has_issues parameter to has_open_issues across customer segmentation and reporting endpoints, providing more precise filtering by specifically targeting customers with open (unresolved) issues rather than any issues historically associated with the account.

POST /crm/customer_segments

  • removed the request property query/has_issues (media type: application/json)
  • added the new optional request property query/has_open_issues (media type: application/json)
  • added the optional property query/has_open_issues to the response with the 201 status (media type: application/json)
  • removed the optional property query/has_issues from the response with the 201 status (media type: application/json)
View updated docs

GET /reports/customers.grouped/data

  • deleted the query request parameter has_issues
  • added the new optional query request parameter has_open_issues
View updated docs

POST /reports/customers.grouped/export

  • removed the request property has_issues (media type: application/json)
  • added the new optional request property has_open_issues (media type: application/json)
View updated docs

GET /reports/customers/data

  • deleted the query request parameter has_issues
  • added the new optional query request parameter has_open_issues
View updated docs

POST /reports/customers/export

  • removed the request property has_issues (media type: application/json)
  • added the new optional request property has_open_issues (media type: application/json)
View updated docs

GET /crm/customer_segments

  • added the optional property results/items/query/has_open_issues to the response with the 200 status (media type: application/json)
  • removed the optional property results/items/query/has_issues from the response with the 200 status (media type: application/json)
View updated docs

GET /crm/customer_segments/{id}

  • added the optional property query/has_open_issues to the response with the 200 status (media type: application/json)
  • removed the optional property query/has_issues from the response with the 200 status (media type: application/json)
View updated docs

PATCH /crm/customer_segments/{id}

  • added the optional property query/has_open_issues to the response with the 200 status (media type: application/json)
  • removed the optional property query/has_issues from the response with the 200 status (media type: application/json)
View updated docs

PUT /crm/customer_segments/{id}

  • added the optional property query/has_open_issues to the response with the 200 status (media type: application/json)
  • removed the optional property query/has_issues from the response with the 200 status (media type: application/json)
View updated docs

October 5, 2026

· 3 min read

This release introduces new push notification settings endpoints and enriches membership data with commitment and count information. Developers can now programmatically manage push notification preferences and retrieve enhanced details about membership plan commitments and category usage across the platform.

GET /communication/push_settings

  • endpoint added
View updated docs

PATCH /communication/push_settings

  • endpoint added
View updated docs

GET /customer_memberships/{id}/plan_change_options

  • added the required property results/items/commitment_expiration_scheme to the response with the 200 status (media type: application/json)
  • added the required property results/items/committed_billing_periods to the response with the 200 status (media type: application/json)
View updated docs

GET /membership_categories

  • added the required property results/items/memberships_count to the response with the 200 status (media type: application/json)
View updated docs

POST /membership_categories

  • added the required property memberships_count to the response with the 201 status (media type: application/json)
View updated docs

PATCH /membership_categories/{id}

  • added the required property memberships_count to the response with the 200 status (media type: application/json)
View updated docs

PUT /membership_categories/{id}

  • added the required property memberships_count to the response with the 200 status (media type: application/json)
View updated docs

September 28, 2026

· 32 min read

GET /customer_fields

  • removed the enum value learn_to_skate from the query request parameter applicable_scenario
  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

POST /integrations/learn_to_skate/abandon_membership

  • api path removed without deprecation

GET /integrations/learn_to_skate/config

  • api path removed without deprecation

PATCH /integrations/learn_to_skate/config

  • api path removed without deprecation

PUT /integrations/learn_to_skate/config

  • api path removed without deprecation

GET /integrations/learn_to_skate/current_membership_number

  • api path removed without deprecation

GET /integrations/learn_to_skate/membership_renew_url/{membership_number}

  • api path removed without deprecation

POST /integrations/learn_to_skate/resend_account_link

  • api path removed without deprecation

POST /integrations/learn_to_skate/verify_membership

  • api path removed without deprecation

GET /ai/business_advisor_reports

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /applications

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /attendances

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /auth/profiles

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /availability_schedule_offering_types

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /availability_schedules

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /bulk_actions/{id}/results

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /business_closures

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /checkouts

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /communication/notification_types/membership_penalty/messages

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /content

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /content_collections

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /content_filters

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /course_session_attendances

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /course_sessions

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /courses

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/bulk_status_evaluations

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/customer_segments

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/interactions

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/lead_forms

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/lead_sources

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/status_changes

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/statuses

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/workflow_actions

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/workflows

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_field_values

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_form_submissions

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_forms

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_issues

  • added the new optional query request parameter provider_managed
  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_membership_holds

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_memberships

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_memberships/{id}/plan_change_options

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_registration_blocks

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /customers

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /discount_code_applicabilities

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /discount_code_groups

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /discount_codes

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /events

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /external_calendars/accounts

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /external_calendars/events

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /external_calendars/staff_calendar_settings

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /family_invites

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /instructor_pay_rates

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /instructors

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /integrations/kisi/groups

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /integrations/wellhub/venue_mappings

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /integrations/zoom/users

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /invoices

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /joining_fees

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /membership_categories

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /membership_payment_plans

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /membership_penalty_systems

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /membership_registration_grants

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /membership_terms

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /memberships

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /offering_type_categories

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /offering_types

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /payment_methods

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /payment_processors

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /payment_subscriptions

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /platform/referrals

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /policies

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /policy_agreements

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /policy_versions

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /providers

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /purchase_fees

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /push_notification_tokens

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /recurring_reservations

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /recurring_reservations/{id}/unavailable_upcoming_events

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /registration_options

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /registration_timelines

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /slots

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /staff

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /store/inventory_adjustments

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /store/order_items

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /store/orders

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /store/product_attributes

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /store/product_variants

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /store/products

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /venue_rooms

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /venues

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /waiver_agreements

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /waivers

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

GET /webhook_destinations

  • added the optional property page to the response with the 200 status (media type: application/json)
  • added the optional property page_size to the response with the 200 status (media type: application/json)
View updated docs

September 23, 2026

· 6 min read

This release updates the CRM customer segments and reporting endpoints to allow the is_claimed field to accept and return null values, providing more flexibility when working with customer data where claimed status may be unknown or unset. Additionally, the CRM status endpoints now consistently return a required color property as read-only in all responses, removing previous length constraints.

GET /crm/customer_segments

  • the response property results/items/query/is_claimed became nullable for the status 200 (media type: application/json)

View updated docs

POST /crm/customer_segments

  • the response property query/is_claimed became nullable for the status 201 (media type: application/json)

  • the request property query/is_claimed became nullable (media type: application/json)

View updated docs

GET /crm/customer_segments/{id}

  • the response property query/is_claimed became nullable for the status 200 (media type: application/json)

View updated docs

PATCH /crm/customer_segments/{id}

  • the response property query/is_claimed became nullable for the status 200 (media type: application/json)

View updated docs

PUT /crm/customer_segments/{id}

  • the response property query/is_claimed became nullable for the status 200 (media type: application/json)

View updated docs

GET /crm/statuses

  • the results/items/color response property's maxLength was unset from 6 for the response status 200 (media type: application/json)

  • the response optional property results/items/color became read-only for the status 200 (media type: application/json)

  • the response property results/items/color became required for the status 200 (media type: application/json)

View updated docs

GET /crm/statuses/{id}

  • the color response property's maxLength was unset from 6 for the response status 200 (media type: application/json)

  • the response optional property color became read-only for the status 200 (media type: application/json)

  • the response property color became required for the status 200 (media type: application/json)

View updated docs

PUT /crm/statuses/{id}

  • the color response property's maxLength was unset from 6 for the response status 200 (media type: application/json)

  • the response optional property color became read-only for the status 200 (media type: application/json)

  • the response property color became required for the status 200 (media type: application/json)

View updated docs

GET /reports/customers.grouped/data

  • the response property rows/items/is_claimed became nullable for the status 200

  • the query request parameter is_claimed became nullable

View updated docs

GET /reports/customers/data

  • the response property rows/items/is_claimed became nullable for the status 200

  • the query request parameter is_claimed became nullable

View updated docs

POST /reports/customers.grouped/export

  • the request property is_claimed became nullable (media type: application/json)

View updated docs

POST /reports/customers/export

  • the request property is_claimed became nullable (media type: application/json)

View updated docs

September 21, 2026

· 4 min read

This release adds spam detection capabilities to broadcast messages and streamlines the send endpoint. All broadcast message responses now include a spam score to help you assess message quality before sending. The send endpoint has been simplified by removing unnecessary query parameters and request body requirements.

PUT /communication/broadcast_messages/{id}

  • added the new required request property content_check/spam_score (media type: application/json)
  • added the required property content_check/spam_score to the response with the 200 status (media type: application/json)
View updated docs

POST /communication/broadcast_messages/{id}/send

  • removed the request body
  • deleted the query request parameter expand
  • deleted the query request parameter fields
  • added the non-success response with the status 400
  • added the required property content_check/spam_score to the response with the 200 status (media type: application/json)
View updated docs

GET /reports/discount_code_uses/data

  • response property rows/items/used_for/id list-of-types was widened by adding types string to media type application/json of response 200
View updated docs

POST /communication/broadcast_messages

  • deleted the query request parameter expand
  • deleted the query request parameter fields
  • added the non-success response with the status 400
  • added the required property content_check/spam_score to the response with the 201 status (media type: application/json)
View updated docs

GET /communication/broadcast_messages/{id}

  • added the required property content_check/spam_score to the response with the 200 status (media type: application/json)
View updated docs

PATCH /communication/broadcast_messages/{id}

  • added the required property content_check/spam_score to the response with the 200 status (media type: application/json)
View updated docs

September 17, 2026

· 3 min read

This release adds usage tracking to customer memberships, enabling API consumers to monitor and analyze membership usage data across all customer membership endpoints. A billing period length field has also been added to plan change options for better visibility into subscription billing cycles.

GET /customer_memberships

  • added the optional property results/items/usage_summary to the response with the 200 status (media type: application/json)
View updated docs

POST /customer_memberships

  • added the optional property usage_summary to the response with the 201 status (media type: application/json)
View updated docs

POST /customer_memberships/bulk_edit_prices

  • added the optional property usage_summary to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_memberships/{id}

  • added the optional property usage_summary to the response with the 200 status (media type: application/json)
View updated docs

POST /customer_memberships/{id}/cancel

  • added the optional property usage_summary to the response with the 200 status (media type: application/json)
View updated docs

GET /customer_memberships/{id}/plan_change_options

  • added the required property results/items/billing_period_length to the response with the 200 status (media type: application/json)
View updated docs

September 16, 2026

· 4 min read

This release adds membership-based filtering and segmentation across customer reporting and CRM endpoints. Developers can now filter customer data and define customer segments based on whether customers have an active membership, enabling more targeted marketing campaigns and analytics workflows.

GET /crm/customer_segments

  • added the optional property results/items/query/has_active_membership to the response with the 200 status (media type: application/json)

View updated docs

POST /crm/customer_segments

  • added the new optional request property query/has_active_membership (media type: application/json)

  • added the optional property query/has_active_membership to the response with the 201 status (media type: application/json)

View updated docs

GET /crm/customer_segments/{id}

  • added the optional property query/has_active_membership to the response with the 200 status (media type: application/json)

View updated docs

PATCH /crm/customer_segments/{id}

  • added the optional property query/has_active_membership to the response with the 200 status (media type: application/json)

View updated docs

PUT /crm/customer_segments/{id}

  • added the optional property query/has_active_membership to the response with the 200 status (media type: application/json)

View updated docs

GET /reports/customers.grouped/data

  • added the new optional query request parameter has_active_membership

View updated docs

POST /reports/customers.grouped/export

  • added the new optional request property has_active_membership (media type: application/json)

View updated docs

GET /reports/customers/data

  • added the new optional query request parameter has_active_membership

View updated docs

POST /reports/customers/export

  • added the new optional request property has_active_membership (media type: application/json)

View updated docs

September 14, 2026

· 4 min read

This release adds two new endpoints and enhances CRM status condition capabilities. Clients can now preview discount codes before checkout and retrieve available membership plan change options for customers. Additionally, CRM status conditions now support lead source filtering and an existence check for completed membership packs.

  • GET /crm/statuses - CRM statuses can now include lead source conditions to filter by how leads were acquired, and can check whether a customer has completed a specific membership pack
  • GET /crm/statuses/{id} - CRM status retrieval now returns lead source conditions and completed membership pack existence checks
  • PUT /crm/statuses/{id} - CRM statuses can now be configured with lead source conditions and completed membership pack existence checks when updating
  • GET /crm/statuses/{id}/defaults - Default CRM status configurations now include lead source conditions and completed membership pack existence checks
  • POST /checkouts/preview-discount-code - Preview and validate discount codes before applying them to a checkout, allowing clients to show discount amounts and eligibility to customers upfront
  • GET /customer_memberships/{id}/plan_change_options - Retrieve available membership plan change options for a specific customer membership, enabling clients to present valid upgrade, downgrade, or plan switch choices

GET /crm/statuses

  • added subschema #9: LeadSourceCondition to the results/items/conditions/items/ response property oneOf list for the response status 200 (media type: application/json)
  • added the optional property results/items/conditions/items/oneOf[subschema #8: CompletedMembershipPackExistsCondition]/exists to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/statuses/{id}

  • added subschema #9: LeadSourceCondition to the conditions/items/ response property oneOf list for the response status 200 (media type: application/json)
  • added the optional property conditions/items/oneOf[subschema #8: CompletedMembershipPackExistsCondition]/exists to the response with the 200 status (media type: application/json)
View updated docs

PUT /crm/statuses/{id}

  • added subschema #9: LeadSourceCondition to the conditions/items/ response property oneOf list for the response status 200 (media type: application/json)
  • added the new optional request property conditions/items/oneOf[subschema #8: CompletedMembershipPackExistsCondition]/exists (media type: application/json)
  • added subschema #9: LeadSourceCondition to the conditions/items/ request property oneOf list (media type: application/json)
  • added the optional property conditions/items/oneOf[subschema #8: CompletedMembershipPackExistsCondition]/exists to the response with the 200 status (media type: application/json)
View updated docs

GET /crm/statuses/{id}/defaults

  • added subschema #9: LeadSourceCondition to the conditions/items/ response property oneOf list for the response status 200 (media type: application/json)
  • added the optional property conditions/items/oneOf[subschema #8: CompletedMembershipPackExistsCondition]/exists to the response with the 200 status (media type: application/json)
View updated docs

POST /checkouts/preview-discount-code

  • endpoint added
View updated docs

GET /customer_memberships/{id}/plan_change_options

  • endpoint added
View updated docs

September 10, 2026

· One min read

This release adds filtering capabilities to the invoices endpoint, enabling developers to narrow invoice queries by customer membership status. This makes it easier to retrieve invoices for specific customer segments without additional client-side filtering.

  • GET /invoices now supports filtering invoices by customer membership status using the customer_membership query parameter

GET /invoices

  • added the new optional query request parameter customer_membership
View updated docs