Follower Tier — REST API Reference
Followers add a follower_tier field to the show tiers endpoint and a token_type field to subscriber list responses.
follower_tier is a routing and reporting object, not a tier definition. A follower feed carries your public feed’s episodes and has no per-episode availability of its own, so there is nothing here describing what a follower can see — only where their feed lives and how many of them there are.
GET /benecaster/v1/shows/{id}/tiers
The response now includes a top-level follower_tier object alongside the items array (bridge tier list).
{
"items": [
{ "slug": "gold", "name": "Gold", ... },
{ "slug": "silver", "name": "Silver", ... }
],
"follower_tier": {
"internal_slug": "follower",
"internal_name": "Followers",
"feed_url": "https://yoursite.com/podcast-feed/your-show/follower/",
"subscriber_count": 142
}
}
follower_tier always appears in the response — even when no followers have signed up yet (subscriber_count will be 0). It is not conditional on follower signups existing.
internal_slug reflects the show’s follower tier slug. The default is "follower". If you’ve overridden it via the benecaster_follower_tier_slug filter, the overridden value is returned here.
feed_url is the base feed URL for followers, without a token. This is the URL prefix used to construct individual follower feed URLs.
GET /benecaster/v1/shows/{id}/subscribers
Each subscriber item now carries a token_type field, plus token_type_label (a human-readable label — an orphaned type, from an add-on since deactivated, takes its base type’s label):
{
"id": 47,
"email": "listener@example.com",
"token_type": "subscriber",
"token_type_label": "Subscriber",
...
}
{
"id": 91,
"email": "follower@example.com",
"token_type": "follower",
"token_type_label": "Follower",
...
}
token_type isn’t limited to these two: a row can also carry purchaser (a buy-up holder) or a type an active add-on registers. See Subscribers REST API for the full token_types, token_type_label, and token_type_base picture.
The summary object gains two fields alongside the existing keys:
{
"summary": {
"paying": 84,
"followers": 142,
"total": 226
}
}
paying is the count of tokens whose type is not one Benecaster exempts from paying (follower and purchaser — a deny list, not token_type = 'subscriber'; TokenRepository::PAYING_EXEMPT_TOKEN_TYPES) and whose tier is not a free-mapped bridge tier. Any other token type, including one an add-on defines, counts on a paid tier. This is the figure that drives plan threshold logic — use paying, not total or active, when evaluating against subscriber limits.
followers is the count of tokens where token_type = 'follower'. Followers do not count toward plan limits.
Overriding the Follower Slug
Filter: benecaster_follower_tier_slug
Overrides the slug that appears in the follower feed URL path. Applied per-show. Cosmetic — it changes where the feed lives, not what it carries.
add_filter( 'benecaster_follower_tier_slug', function( string $slug, int $show_id ): string {
// Return a custom slug for a specific show
if ( $show_id === 5 ) {
return 'free-listeners';
}
return $slug; // default: 'follower'
}, 10, 2 );
Changing this on a live show changes every follower’s feed URL. The per-tier form /podcast-feed/{show}/{slug}/?token=… is built from this value, so podcast apps holding the old URL stop resolving. Set it before you publish the signup form, or accept that existing followers need to re-add their feed.
See Also
Need this built rather than just documented? See our services →
Last updated