Audience
MarkdownAudience numbers are subscriber counts, follower counts and leaderboard positions — the things a platform reports about a publication or a person, that we measure again and again because the trend is the point. They come back as audience on a source or a person detail response.
{
"key": "follower_count",
"label": "Followers",
"value": 11200,
"source": "bluesky:api",
"fetched_at": "2026-09-28T04:11:02Z",
"history": [
{ "value": 9800, "fetched_at": "2026-08-01T04:00:00Z" },
{ "value": 11200, "fetched_at": "2026-09-28T04:11:02Z" }
]
}
| Field | What it holds |
|---|---|
key |
Which number this is. See the tables below. |
label |
A short, plain-language name for the key. |
value |
The current value. A number, or a small object for the couple of keys that aren't. |
source |
Where we got it. See below. |
fetched_at |
When we last observed it. |
history |
Every earlier value we've observed, oldest first, for the keys where the trend matters. Empty for the keys that don't keep one (see below). |
Where a value came from
Sign in to read this section
We share this detail with customers rather than publishing it. Sign in to read it.
On a source
| Key | Keeps history | What it holds |
|---|---|---|
subscriber_count_free |
Yes | Free subscribers, where Substack publishes it. |
paid_subscriber_bucket |
Yes | Paid subscribers, as the bottom of a bucket — Substack publishes an order of magnitude, not a count. |
leaderboard_rank |
Yes | Its rank in its Substack category, where it appears in one. |
leaderboard_category |
No | The category that rank is in. |
On a person
| Key | Keeps history | What it holds |
|---|---|---|
follower_count |
Yes | Followers on the platform they publish through (Substack or Bluesky — a person can carry one of each). |
subscriber_count_bucket |
Yes | Subscribers to their own Substack publication, as the bottom of a bucket. |
bestseller_tier |
Yes | A Substack badge for paid-subscriber milestones. The number is the tier, not a count. |
location |
No | A structured {city, state, country}, where a Clay lookup returned one. Read-only — nothing writes this key any more. |
clay_profile |
No | The LinkedIn match a Clay lookup returned (job title, employer, follower count). Read-only — nothing writes this key any more. |
What to expect
They are sparse. A key exists only if we could observe it. Most sources and people have some audience numbers and none has all of them. Always check whether the key is there before reading it.
The same key can appear twice. A person active on both Substack and Bluesky gets two follower_count entries, one per source. Read the source on each, don't assume there's only one.
Values are point-in-time. fetched_at tells you how fresh a number is. A count from three months ago is still a useful order of magnitude and is not today's number.
History can be short or empty. A key we've only observed once has a history of one entry (or, for a key that doesn't keep history at all, an empty list) — that's normal, not a bug.
Where they appear
/api/v1/sources/<slug>
/api/v1/people/<slug>
They are not on list rows, because loading them costs a query per item.
Using them
Ranking coverage by audience size is the common one. Search for mentions, fetch each publication, and sort by subscriber_count_free.
Fetching one source per result costs a call each, so scope the search first and fetch only the publications you are going to report on. See API intro.