List churn events

Lists cancellation and save-attempt outcomes for the current entity, newest first. This is
the same data behind the dashboard's churn report and its CSV export, including the
subscriber's own free-text comments on why they cancelled.

A row is created when a cancellation begins and is updated in place as it resolves, so
state moves from pending to either churned or retained. occurred_at is when the
cancellation was initiated; finalized_at is when it resolved, and is null while the row
is still pending.

For a network token this returns the churn events of the network and all of its
channels. For a channel token it returns that channel's own events.

This endpoint does not support updated_since

Required scope: public.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string

Selects which channel or network the request acts on.

This applies to every endpoint in this API, not only GET /episodes. Its requirement
depends on what the access token's resource owner is:

  • Channel token — ignored. The token already identifies the channel.
  • Network token — optional. Omit it to act on the network itself; supply the subdomain
    of one of the network's channels to act on that channel instead. An unrecognised subdomain
    returns 400.
  • User or superapp token — required. The token is not bound to an entity, so the
    target must be named on every request. Omitting it returns 400; naming an entity the user
    does not manage returns 403.

The X-CHANNEL-SUBDOMAIN header takes precedence over this parameter. A legacy subdomain
query parameter is also still accepted as a fallback.

date-time

Only return records at or after this time — an ISO 8601 timestamp, inclusive (>=).

Used by the endpoints that cannot support updated_since because their rows carry no
updated_at column. It filters the endpoint's own time column, which that operation's
description names (occurred_at for churn events, timestamp for the analytics rollups).

A value that is not valid ISO 8601 returns 400. A blank value is treated as absent.

date-time

Only return records at or before this time — an ISO 8601 timestamp, inclusive (<=).

The upper bound counterpart to from, filtering the same column. Because both ends are
inclusive, a record landing exactly on the boundary is returned by an adjacent window too;
deduplicate on id when paging through consecutive ranges.

A value that is not valid ISO 8601 returns 400. A blank value is treated as absent.

integer
≥ 1
Defaults to 1

1-based page number. Pagination metadata is returned in the Link, X-Total, X-Per-Page and X-Page response headers.

integer
≥ 1
Defaults to 30

Number of records per page.

string
enum
Defaults to occurred_at

Column to order the page by. Ties are broken by id, so paging through the collection is stable and a record cannot appear on two pages or be skipped between them. A value outside the list falls back to the default rather than returning 400.

string
enum

Direction to read sort in — asc or desc.

The default is per endpoint: it is whatever ordering that collection already returned before
it became sortable, and the endpoint's own sort parameter names it. Anything other than
asc or desc falls back to that default rather than returning 400.

It applies to the id tiebreaker as well as to sort, so reversing the direction reverses
the whole page rather than only its first key.

Allowed:
string
enum

Return only events in this state. A value outside the enum returns 400 listing the permitted values.

Allowed:
string
enum

Return only events from this source. A value outside the enum returns 400 listing the permitted values.

Allowed:
string
enum

Return only events with this reason. A value outside the enum returns 400 listing the permitted values.

Headers
string

Header form of channel_subdomain, and the preferred one — it takes precedence over both the channel_subdomain and legacy subdomain query parameters. See channel_subdomain for when a value is required.

Responses

Language
Credentials
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json