Cancellation survey
The reasons your members select in the portal cancellation flow — the member-stated “why” behind churn (distinct from the POS churn mechanism in Cancellations).
Labels are normalized into stable categories; rawCodes preserves the underlying codes. The Other bucket includes free-text samples. totals.selections counts reason selections, a superset of completed cancellations. Works for any organization; requires a tenant-scoped API key.
Response
totals.selections— the number of reason selections. This is a superset of completed cancellations: some members select a reason and then accept a retention offer and stay. Use the relative distribution as the reliable signal.reasons— normalized reason labels with their share. Synonymous source codes are folded into one label;rawCodeslists each underlying code with its own count, so the granularity inside a bucket isn’t lost.other— the Other bucket, with free-text samples members typed.freeTextAvailable: falsemeans the free-text lookup was temporarily unavailable (unknown), not that there is none.
Notes
This is the member-stated reason (the “why”), distinct from the POS-derived churn mechanism in Cancellations. It is provider-agnostic and works for any organization whose customers use the portal cancellation flow.Errors
- 401 — missing or invalid API key.
Authorizations
Clerk tenant API key. The organizationId encoded by the key is the exact and only tenant scope.
Query Parameters
Inclusive lower bound on the date (ISO 8601 date or datetime). Invalid values are ignored. Omit for all-time.
Inclusive upper bound on the date (ISO 8601 date or datetime). Invalid values are ignored. Omit for all-time.
Response
Member-stated cancellation reasons for the tenant-scoped organization.
exit_survey False only when the analytics source is unavailable after retries.

