limit, or paginate with cursor).
Use these endpoints when you want to:
- Render a chart leaderboard for any country or category.
- See where a specific podcast currently ranks across every source/country/category.
- Track historical chart positions over time.
- Surface trending podcasts — chart debuts, departures, and the biggest rank movers.
Identifying a chart slot
A “chart slot” is the unit of analysis: one (source × chart_type × country × category) tuple, refreshed daily. Every browse and history endpoint accepts the same query parameters to pin or scope a slot:
Use the discovery endpoints to enumerate the available sources, countries, and categories.
List rankings
The workhorse list endpoint. With no parameters it returns the US Apple Top Podcasts overall chart.Response (truncated)
Query parameters
About the linked podcast
We track tens of thousands of the highest-ranked podcasts in the catalog — every show that consistently charts is in there, with full transcripts, sponsors, mentions, and the rest of the Particle Pro surface. Those rows carry apodcast field that links straight into the catalog (GET /v1/podcasts/{slug} and friends). For the long tail of intermittent or hyper-local entries — chart slots in 170+ countries surface a lot of one-day wonders — podcast is omitted and the response still carries a complete show block with name, publisher, artwork, and feed URL. Treat show as the canonical identity for every row and use podcast to cross-link into the catalog whenever it’s present.
List current rankings for a podcast
Returns every live chart slot a podcast appears on, across sources and countries. Rows are clustered by (source, country, category) — overall charts come before sub-categories within each (source, country) group — so iterating the response naturally walks the podcast’s footprint without re-sorting.Response (truncated)
limit and cursor; by default every chart slot the podcast occupies is returned in one response (typically dozens, occasionally a few hundred for very popular shows charting in many countries).
Summarize a podcast’s chart presence
A one-call aggregate: how many distinct chart slots, sources, countries, and categories the podcast is on right now, plus its single best (lowest-numbered) rank.Response
best_rank (and each appearances_by_source[*].best_*) prefers the higher-priority market — us > gb > ca > au > de > fr > es > it > mx > br > jp > ie > nl > se > nz, then alphabetical. A US #1 always wins over a tied #1 in a smaller market. Within a country, the overall chart wins over a sub-category placement.
Discovery endpoints
These let you enumerate which sources, countries, and categories actually have data right now — without paginating through millions of rows.List sources
GET /v1/podcasts/rankings/sources returns each (source, chart_type) pair currently available, with row counts and freshness:
List countries
GET /v1/podcasts/rankings/countries returns every country with current data. Each entry carries the human-readable name (when known) and the count of distinct chart slots.
List categories
GET /v1/podcasts/rankings/categories returns every category currently represented. For Apple sub-categories the response includes parent_slug so you can render the hierarchy.
external_id is the source-native category id. When a category is reported by multiple sources (Apple’s iTunes genre id “1303” and Spotify’s slug-as-id “comedy” both map to comedy), the response prefers Apple’s id; pin a single source via ?source=spotify if you need the Spotify-native form. category_slug is the universal handle and works as a filter on every endpoint regardless of source.
History
History endpoints reach beyond the live snapshot to surface chart positions over time.Chart slot history
Returns historical snapshots for a chart slot, ordered most-recent first. Combine withsince / until to bound the range.
PodcastRanking object — the same shape as the list endpoint, just with older captured_at values. Pin podcast_id to filter to a single podcast within the slot.
Per-podcast history
Returns the full historical chart record for a single podcast, optionally narrowed by chart slot or date range.category_slug is set on this endpoint, source must also be set (returns 422 otherwise) — category slugs aren’t unique across sources at the wire level, so a Spotify “comedy” filter would otherwise silently exclude Apple matches and vice versa.
Movers
GET /v1/podcasts/rankings/movers returns the chart entries whose rank changed between the live snapshot and a comparison snapshot window_days ago. Use it to surface trending movement, new arrivals, and departures — all from one endpoint.
Response (truncated)
change filter narrows to a single change type:
Query parameters
Anatomy of a ranking row
Choosing the right endpoint
Related
- Podcasts overview — full Podcast object.
- Publishers — pivot from a chart entry’s publisher to its catalog.
- Episodes — drill from a charting podcast into its episodes.
- Ratings & reviews — user-generated star ratings and review text, the complement to chart position.