Billboard Charts History Scraper avatar

Billboard Charts History Scraper

Pricing

$0.90 / 1,000 chart entries

Go to Apify Store
Billboard Charts History Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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.

📊 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

  1. Add one or more public Billboard chart page URLs.
  2. Choose Current chart week or Historical chart range.
  3. For a historical run, add the start and end dates. Leave Maximum entries empty to return all available results until the source is exhausted.
  4. 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

FieldTypeWhat it does
targetstringChooses current for the latest entries or historical for weekly entries between two dates.
startDatestringFirst date to request for a historical range, in YYYY-MM-DD format. Billboard's weekly chart page determines the returned chartWeek.
endDatestringLast date to request for a historical range, in YYYY-MM-DD format.
chartsarray of objectsOne or more public Billboard chart page URLs. Each object has a url; major, song, album, artist, and genre charts are supported.
maxItemsintegerStops 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

FieldTypeWhat it does
datasetUrlstringLinks 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.

FieldTypeWhat it does
chartobjectIdentifies the public Billboard chart for the entry.
chart.namestringBillboard chart name, such as Billboard Hot 100.
chart.slugstringStable slug that identifies the chart.
titlestringSong or album title shown for the entry.
artiststringArtist shown for the entry.
chartWeekdate stringBillboard chart week returned for the entry.
rankintegerEntry position for the returned chart week.
previousRankinteger or nullPosition in the prior chart week, or null when Billboard does not show one.
peakRankinteger or nullBest position on this chart, or null when Billboard does not show one.
weeksOnChartinteger or nullNumber of weeks the entry has appeared on the chart, or null when Billboard does not show it.
isNewEntryboolean or nullWhether the entry is new for the returned chart week, or null when Billboard does not show this status.
isReEntryboolean or nullWhether the entry returned after being absent, or null when Billboard does not show this status.
sourceUrlURL stringLink 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.

FieldTypeWhat it does
chartobjectIdentifies the public Billboard chart for the entry.
chart.namestringBillboard chart name, such as Billboard Hot 100.
chart.slugstringStable slug that identifies the chart.
titlestringSong or album title shown for the entry.
artiststringArtist shown for the entry.
chartWeekdate stringBillboard chart week returned for the entry.
requestedDatedate stringDate used to request the historical chart page.
rankintegerEntry position for the returned chart week.
previousRankinteger or nullPosition in the prior chart week, or null when Billboard does not show one.
peakRankinteger or nullBest position on this chart, or null when Billboard does not show one.
weeksOnChartinteger or nullNumber of weeks the entry has appeared on the chart, or null when Billboard does not show it.
isNewEntryboolean or nullWhether the entry is new for the returned chart week, or null when Billboard does not show this status.
isReEntryboolean or nullWhether the entry returned after being absent, or null when Billboard does not show this status.
sourceUrlURL stringLink 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 🫡

Made with ❤️ by Maxime Dupré