Apple Podcasts Chart Scraper: iTunes Rank Tracker avatar

Apple Podcasts Chart Scraper: iTunes Rank Tracker

Pricing

from $3.00 / 1,000 apify-default-dataset-items

Go to Apify Store
Apple Podcasts Chart Scraper: iTunes Rank Tracker

Apple Podcasts Chart Scraper: iTunes Rank Tracker

Track Apple Podcasts iTunes chart ranks by country/genre. Export CSV/JSON. Try Input: us + limit 1 ≈ $0.003 · From $3/1k.

Pricing

from $3.00 / 1,000 apify-default-dataset-items

Rating

0.0

(0)

Developer

naoki anzai

naoki anzai

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

2

Monthly active users

a day ago

Last modified

Categories

Share

What you get: Apple Podcasts / iTunes chart ranks by country (optional genre) as source-linked rows. Export CSV/JSON. No API key.

CTA: Store → Try for free → Input → leave defaults (us, limit 1, movement OFF) → Start. First paid proof ≈ $0.003. Cap maxChargeUsd 0.05. From $3/1k.

{"countries":["us"],"limit":1,"generateMovementReport":false,"maxChargeUsd":0.05,"delivery":"dataset"}

Sibling next steps: Apple Podcasts Scraper (discovery) · Reviews (listener feedback).

Podcast growth teams, agencies, networks, and research teams provide public Apple Podcasts storefront codes and an optional genre/depth filter. The actor returns source-linked chart_rank rows, or one change report when a saved monitor detects new, changed, or dropped positions. Raw chart delivery remains the default for existing schedules.

Run the next report

Use chart movement as a proven public signal, then choose the buyer-facing follow-on:

Store Quickstart

Apple Podcasts chart input Apple Podcasts chart output

The default path is a low-cost raw chart snapshot. Use one country and a small limit first. For recurring rank movement, set a stable monitorKey and generateMovementReport to true; the first baseline_only run stores state without dataset rows or charges.

1. Raw chart snapshot (first run)

Cheapest first run: limit 1, movement report OFF — raw chart rows at $0.003 each (≈ $0.003 total; not the $2.50 movement report). Store Quickstart matches this; use the Deeper chart template (limit 10) after proof.

{
"countries": ["us"],
"limit": 1,
"generateMovementReport": false,
"delivery": "dataset",
"dryRun": false
}

2. Free baseline for a recurring monitor

{
"countries": ["us", "gb"],
"genreId": "1321",
"limit": 3,
"monitorKey": "weekly-news-us-gb",
"generateMovementReport": true,
"initialRunMode": "baseline_only",
"maxChargeUsd": 0.05,
"dryRun": false
}

3. High-value movement report

{
"countries": ["us"],
"limit": 10,
"monitorKey": "weekly-news-us-gb",
"generateMovementReport": true,
"initialRunMode": "emit_backfill",
"delivery": "dataset",
"maxChargeUsd": 0.05,
"dryRun": false
}

Use delivery: "webhook" only when downstream routing is needed after the movement report has been validated. The movement report is the value path; the raw chart snapshot remains the low-cost starter path.

See docs/value-path-sample.json for the raw snapshot and movement-report input pair.

countries accepts at most 20 unique two-letter codes. Each country is fetched with a timeout and bounded retry. limit is capped at 200.

Use with Apify MCP

Exact actor: taroyamada/apple-podcast-chart-tracker

Sample input JSON:

{
"countries": [
"us"
],
"genreId": "",
"limit": 1,
"generateMovementReport": false,
"delivery": "dataset"
}

Output

The actor output contains chartEntries, movementReports, and deliveryRows. Raw rows keep legacy aliases (name, artist, and collectionId) and add the stable fields used by integrations.

Raw chart output

{
"actorName": "apple-podcast-chart-tracker",
"rowType": "chart_rank",
"billingEventName": "apify-default-dataset-item",
"country": "us",
"rank": 12,
"showId": "123456",
"showName": "Example Podcast",
"artistName": "Example Network",
"sourceUrl": "https://podcasts.apple.com/us/podcast/id123456",
"fetchedAt": "2026-08-01T00:00:00.000Z",
"collectionId": "123456",
"name": "Example Podcast",
"artist": "Example Network"
}

Movement report output

{
"actorName": "apple-podcast-chart-tracker",
"rowType": "podcast_chart_movement_report",
"billingEventName": "podcast-chart-movement-report",
"monitorKey": "weekly-news-us-gb",
"initialRun": false,
"fetchedAt": "2026-08-01T00:00:00.000Z",
"changedCount": 1,
"newCount": 1,
"droppedCount": 0,
"changes": [
{
"changeType": "changed",
"country": "us",
"showId": "123456",
"showName": "Example Podcast",
"previousRank": 18,
"currentRank": 12,
"rankDelta": 6,
"sourceUrl": "https://podcasts.apple.com/us/podcast/id123456"
}
]
}

A baseline run emits zero deliveryRows. A later unchanged poll emits zero rows and zero charges. A later poll emits at most one movement report row for all observed changes. A failed source is not treated as a mass drop.

Output fields

  • Raw: actorName, rowType, billingEventName, country, rank, showId, showName, artistName, sourceUrl, fetchedAt, plus legacy aliases.
  • Movement report: monitorKey, changedCount, newCount, droppedCount, changes, and source limitations.
  • Envelope: chartEntries, movementReports, deliveryRows, meta, and delivery/state status in the final output file.

Pricing and delivery

The existing raw path is unchanged: the default dataset event is used for each raw chart row. The movement event is named podcast-chart-movement-report and is sent through Actor.pushData(row, eventName) when the Apify SDK is available. The local test path never charges.

maxChargeUsd defaults to $3. The local safety estimate is $0.003 per raw row and $2.50 per movement report row; delivery stops before any row is sent when the estimate exceeds the cap.

delivery=dataset writes billable rows to the Apify default dataset. delivery=webhook sends the same output payload to the supplied HTTP(S) webhook first, then writes the billable rows to the default dataset. A non-2xx webhook response or dataset/PPE failure fails the run and prevents state commit. Webhook delivery does not replace dataset delivery.

State and no-change behavior

State is isolated by monitorKey. State is saved only after webhook and dataset/PPE delivery succeeds. A state load or save failure fails closed; it never silently treats a missing state as a new baseline after a remote storage error.

  • baseline_only: save the first successful snapshot with 0 rows and 0 charges.
  • emit_backfill: emit one initial movement report for the current positions.
  • Subsequent runs: emit only new, changed, or dropped positions; unchanged polls emit 0 rows and 0 charges.
  • Set emitRawRows=true only when a monitor also needs the legacy raw rows; the charge cap still applies.

Compliance guardrails

  • Uses public Apple Podcasts/iTunes chart JSON only.
  • No Apple logo, endorsement, private dashboard, or authenticated data is claimed.
  • Rank movement is descriptive evidence, not a forecast, audience estimate, advertising guarantee, or provider approval.
  • Unsupported storefronts produce a warning and are never interpreted as a mass drop from the saved baseline.

See also