Billboard Charts History Scraper
Pricing
$0.90 / 1,000 chart entries
Billboard Charts History Scraper
Collect current or historical entries from public Billboard chart pages. Choose song, album, artist, or genre charts and get ranks, titles, artists, chart weeks, performance fields, and source links.
Pricing
$0.90 / 1,000 chart entries
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🎵 Billboard chart history for music research
Billboard researchers, music analysts, journalists, and developers can collect current or historical entries from public Billboard chart pages. Each dataset row gives the chart, title, artist, chart week, rank, performance context, entry status, and source page when Billboard shows those values. This makes it easier to compare chart movement, build music research datasets, and review a specific week.
- Review a full current or historical Billboard Hot 100 chart.
- Check the latest weekly entries with Billboard Hot 100 This Week.
- Collect album ranks and artist names with Billboard 200 Albums.
- Collect another album ranking with Billboard Top Albums.
- Read the first ten song ranks with Top 10 Songs This Week.
📊 Billboard chart entries
The Actor saves one row for each chart entry it receives. Rows include chart identity, song or album title, artist, chart week, rank, prior position, peak position, weeks on chart, entry status, and a source page link when those values are available. Current-week rows omit requestedDate. Historical rows also show the date used to request the page. If Billboard does not show a value, the row keeps it as null instead of guessing.
▶️ Run Billboard charts by week
Choose Current chart week for the latest available weekly entries or Historical chart range for weekly entries between two dates. Add one or more public Billboard chart page URLs. Billboard uses a weekly cadence; for historical runs, chartWeek shows the actual chart week returned when the source adjusts a requested date.
Run steps
- Add one or more public Billboard chart page URLs.
- Choose Current chart week or Historical chart range.
- For a historical run, add the start and end dates. Leave Maximum entries empty to return all available results until the source is exhausted.
- Start the run and open the returned dataset URL.
⚙️ Input
The fields below are the public inputs. Date fields apply only to Historical chart range and are ignored for Current chart week. Leaving maxItems empty returns all available results until the source is exhausted.
Input fields
| Field | Type | What it does |
|---|---|---|
target | string | Chooses current for the latest entries or historical for weekly entries between two dates. |
startDate | string | First date to request for a historical range, in YYYY-MM-DD format. Billboard's weekly chart page determines the returned chartWeek. |
endDate | string | Last date to request for a historical range, in YYYY-MM-DD format. |
charts | array of objects | One or more public Billboard chart page URLs. Each object has a url; major, song, album, artist, and genre charts are supported. |
maxItems | integer | Stops after this many chart entries across the selected charts and weeks. Leaving it empty returns all available results until the source is exhausted. |
Example input
{"target": "current","charts": [{"url": "https://www.billboard.com/charts/hot-100/"}]}
🧾 Output
The run output includes a link to the entries saved in the default dataset. The dataset rows use the shapes below.
Run output
| Field | Type | What it does |
|---|---|---|
datasetUrl | string | Links to the chart entries saved in this run's default dataset. |
Current-week rows
Current-week rows contain the fields below and do not include requestedDate.
| Field | Type | What it does |
|---|---|---|
chart | object | Identifies the public Billboard chart for the entry. |
chart.name | string | Billboard chart name, such as Billboard Hot 100. |
chart.slug | string | Stable slug that identifies the chart. |
title | string | Song or album title shown for the entry. |
artist | string | Artist shown for the entry. |
chartWeek | date string | Billboard chart week returned for the entry. |
rank | integer | Entry position for the returned chart week. |
previousRank | integer or null | Position in the prior chart week, or null when Billboard does not show one. |
peakRank | integer or null | Best position on this chart, or null when Billboard does not show one. |
weeksOnChart | integer or null | Number of weeks the entry has appeared on the chart, or null when Billboard does not show it. |
isNewEntry | boolean or null | Whether the entry is new for the returned chart week, or null when Billboard does not show this status. |
isReEntry | boolean or null | Whether the entry returned after being absent, or null when Billboard does not show this status. |
sourceUrl | URL string | Link to the Billboard chart page for the entry. |
Example current row
{"chart": {"name": "Billboard Hot 100","slug": "hot-100"},"title": "Choosin' Texas","artist": "Ella Langley","chartWeek": "2026-08-08","rank": 1,"previousRank": 1,"peakRank": 1,"weeksOnChart": 41,"isNewEntry": null,"isReEntry": null,"sourceUrl": "https://www.billboard.com/charts/hot-100/"}
Historical rows
Historical rows contain the same fields plus requestedDate, which keeps the date used to request the historical page.
| Field | Type | What it does |
|---|---|---|
chart | object | Identifies the public Billboard chart for the entry. |
chart.name | string | Billboard chart name, such as Billboard Hot 100. |
chart.slug | string | Stable slug that identifies the chart. |
title | string | Song or album title shown for the entry. |
artist | string | Artist shown for the entry. |
chartWeek | date string | Billboard chart week returned for the entry. |
requestedDate | date string | Date used to request the historical chart page. |
rank | integer | Entry position for the returned chart week. |
previousRank | integer or null | Position in the prior chart week, or null when Billboard does not show one. |
peakRank | integer or null | Best position on this chart, or null when Billboard does not show one. |
weeksOnChart | integer or null | Number of weeks the entry has appeared on the chart, or null when Billboard does not show it. |
isNewEntry | boolean or null | Whether the entry is new for the returned chart week, or null when Billboard does not show this status. |
isReEntry | boolean or null | Whether the entry returned after being absent, or null when Billboard does not show this status. |
sourceUrl | URL string | Link to the Billboard chart page for the entry. |
Example historical row
{"chart": {"name": "Billboard Hot 100","slug": "hot-100"},"title": "All I Want For Christmas Is You","artist": "Mariah Carey","chartWeek": "2025-01-04","requestedDate": "2025-01-04","rank": 1,"previousRank": 1,"peakRank": 1,"weeksOnChart": 71,"isNewEntry": null,"isReEntry": null,"sourceUrl": "https://www.billboard.com/charts/hot-100/2025-01-04/"}
💳 Pricing
This Actor uses pay-per-event pricing. The current primary event is Chart entry at $0.0009 for each entry saved from a selected public chart. The price is tied to the saved chart-entry event; no separate setup or diagnostic event is listed here.
🔌 Integrations
The Actor saves rows to the default dataset and returns a dataset URL. You can read the dataset with Apify exports or the Apify API.
Watch an Apify integrations walkthrough:
❓ FAQ
Which Billboard chart pages can I submit?
Submit one or more public Billboard chart page URLs. Major, song, album, artist, and genre chart pages are supported when the public source provides them.
What is the difference between current and historical runs?
Current chart week returns the latest available weekly entries. Historical chart range requests weekly pages between the dates you provide and adds requestedDate to each historical row.
What happens when a date does not match a Billboard chart week?
Billboard uses weekly chart pages. The historical row keeps your requestedDate, while chartWeek shows the actual week returned by Billboard if the source adjusts the requested date.
What happens if I leave Maximum entries empty?
The Actor returns all available results until the source is exhausted. Set a positive number when you want the run to stop after a chosen number of entries across the selected charts and weeks.
Why are some output values null?
Billboard does not show every field for every entry. The Actor keeps missing source values as null and does not infer them.
Can one run use more than one chart?
Yes. Add one or more chart page URLs. They use the same current or historical target and the same historical date range in that run; the Actor does not set separate date ranges for individual charts.
Does the Actor return article text, streaming totals, or sales data?
No. It returns public chart entries and the fields shown in the Output section. Article bodies, reviews, streaming totals, sales data, and unrelated music metadata are outside this Actor's scope.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- YouTube Music Scraper — Collect public songs, albums, artists, and playlists from YouTube Music.
- YouTube Trending Videos Scraper — Collect ranked YouTube Music charts and category videos by region.
- SoundCloud Scraper — Collect public tracks, artists, albums, playlists, and comments from SoundCloud.
- Billboard Charts History Scraper — Pull historical Billboard chart ranks and performance fields for a comparable workflow.
- Official Charts UK Singles & Albums Chart Scraper — Collect weekly UK singles, albums, and genre chart positions as another chart source.
Made with ❤️ by Maxime Dupré