Documentation

Topics and sponsors

Two indexes over the same corpus, from different angles: what is being talked about, and who is paying to be mentioned.

Topics

Topics are extracted from posts — what a piece is actually about, rather than whatever tags the publication happened to attach.

# The most-covered topics of the last 90 days
curl ... "https://sputnikintelligence.com/api/v1/topics"

# All-time matches for a name
curl ... "https://sputnikintelligence.com/api/v1/topics?q=pricing"

With no q the ranking is recent, which is the useful default: "what is the conversation about right now" rather than "what has it ever been about". With a q it is all-time.

A topic detail adds the publications covering it most and the people credited on its posts — which together answer "who owns this conversation". For the posts, use GET /posts?topic=<slug>.

Names are display text; slugs are keys

Topic names are lowercase free text, and there are a lot of them. Read the name, pass the slug back. Two topics can have names that look nearly identical and be different rows.

Sponsors

Brands read out as sponsors on posts — "this episode is brought to you by". Same two modes: recent by default, all-time with a q.

curl ... "https://sputnikintelligence.com/api/v1/sponsors?q=eight+sleep"
curl ... "https://sputnikintelligence.com/api/v1/sponsors/<slug>"

A sponsor detail gives you the shows the brand has been heard on, most appearances first. That is the ad-intelligence view: where a competitor is spending, and which shows take money in your category.

Ads that ran, not deals a show signed

Podcast advertising is largely inserted programmatically by the hosting platform, not sold by the show. So a publication's transcripts can read out brands its publisher never dealt with — a physics channel reading an ad a streaming platform placed.

Read this data as "this ad was heard on this show", which is true and useful. Do not read it as "this show has a sponsorship deal", which often is not.

Both are capped, not paged

At most 100 rows, next_cursor always null, and passing cursor is a 422. Narrow with q.

The reason is honest rather than technical laziness: past the first hundred, a ranked list of a million topics is not something anyone reads, and most of them appear on a single post. When the cap is hit, total comes back null to tell you there were more.