Audience

Markdown

Audience 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.