Billboard API: Get an artist's chart history
Returns an artist's Billboard Hot 100 song history or Billboard 200 album history: chart totals (entries, No. 1 hits, top 10 hits) and each title's debut, peak and weeks on chart, most recent debut first.
Unofficial. Not affiliated with or endorsed by Billboard.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Chart optional
chart Select the Billboard chart, for example hot_100.
billboard_200
One of
hot_100,billboard_200. Defaulthot_100.- Artist, required
artist Artist name, for example Taylor Swift.
Adele
- Max Results optional
max_results Maximum titles returned, for example 100.
3
Whole number from 1 to 500. Default
100.
Input as JSON
{ "chart": "billboard_200", "artist": "Adele", "max_results": 3}Output
{ "artist": "Adele", "entries": [ { "title": "30", "page_link": "https://www.billboard.com/charts/billboard-200/2021-12-04/" , "peak_date": "2021-12-04", "debut_date": "2021-12-04", "peak_position": 1, "weeks_on_chart": 69 }, { "title": "25", "page_link": "https://www.billboard.com/charts/billboard-200/2015-12-12/" , "peak_date": "2015-12-12", "debut_date": "2015-12-12", "peak_position": 1, "weeks_on_chart": 223 }, { "title": "iTunes Festival: London 2011 (EP)", "page_link": "https://www.billboard.com/charts/billboard-200/2011-07-30/" , "peak_date": "2011-08-06", "debut_date": "2011-07-30", "peak_position": 50, "weeks_on_chart": 2 } ], "artist_link": "https://www.billboard.com/artist/adele/" , "top_10_hits": 4, "number_one_hits": 3, "total_chart_entries": 6}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"billboard.com/get_artist_chart_history","input":{"chart":"billboard_200","artist":"Adele","max_results":3}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "billboard.com/get_artist_chart_history" , "input": { "chart": "billboard_200", "artist": "Adele", "max_results": 3 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "billboard.com/get_artist_chart_history" , "input": { "chart": "billboard_200", "artist": "Adele", "max_results": 3 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run billboard.com/get_artist_chart_history# with {"chart":"billboard_200","artist":"Adele","max_results":3}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "artist" ], "properties": { "chart": { "enum": [ "hot_100", "billboard_200" ], "type": "string", "default": "hot_100", "description": "Select the Billboard chart, for example hot_100." }, "artist": { "type": "string", "minLength": 1, "description": "Artist name, for example Taylor Swift." }, "max_results": { "type": "integer", "default": 100, "maximum": 500, "minimum": 1, "description": "Maximum titles returned, for example 100." } }}Output schema
{ "type": "object", "required": [ "artist", "artist_link", "total_chart_entries", "number_one_hits", "top_10_hits", "entries" ], "properties": { "artist": { "type": "string" }, "entries": { "type": "array", "items": { "type": "object", "required": [ "title", "peak_position", "peak_date", "debut_date", "weeks_on_chart", "page_link" ], "properties": { "title": { "type": "string" }, "page_link": { "type": "string" }, "peak_date": { "type": "string" }, "debut_date": { "type": "string" }, "peak_position": { "type": "integer" }, "weeks_on_chart": { "type": "integer" } } } }, "artist_link": { "type": "string" }, "top_10_hits": { "type": "integer" }, "number_one_hits": { "type": "integer" }, "total_chart_entries": { "type": "integer" } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
billboard.com/get_artist_chart_history- Returns
- artist, artist link, total chart entries, number one hits, top 10 hits, entries with title, peak position and date, debut date, weeks on chart, chart link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method billboard.com/get_artist_chart_history with the inputs above.
Ask your agent
- How many Hot 100 entries does Drake have, and how many of them went to No. 1? List his songs with peak positions and weeks on chart.
- Pull up Fleetwood Mac's Billboard 200 album history — I want each album's debut date, peak position, and how long it stayed on the chart.
- Show me the 20 most recent songs Olivia Rodrigo has charted on the Billboard Hot 100, including where each one peaked.
- I'm writing a piece on Beyoncé's albums. Can you get her complete album chart run: total entries, No. 1 albums, top 10 albums, and weeks charted for each?
- Give me Bad Bunny's Billboard chart history for singles: number of top 10 hits plus every track's debut and peak date.
See more
All Billboard methodsGets the ranked entries and chart history for a Billboard chart. It returns the latest published week, or the week that contains a given date. A date between published weeks selects the next published week.
billboard.com/get_chartLists the current top songs, albums, or music videos on Apple Music for a country, in chart order. Countries without an Apple Music chart return no results.
music.apple.com/list_top_chartsLists current worldwide top tracks, albums or artists on Deezer in chart order, or tracks from Deezer's official Top <country> playlist.
deezer.com/list_top_chartsGets Shazam's current ranked top songs for the world, a country, or a city, optionally by genre. City charts have up to 50 songs; genres are available only in some places.
shazam.com/list_top_chartsLists titles in an IMDb movie or TV chart (Top 250 movies, Top 250 TV shows, most popular movies or TV shows) with ratings, votes, runtime, age rating and weekly rank movement for popularity charts. Popular charts contain up to 100 titles.
imdb.com/list_top_chartsLists Apple Podcasts chart entries in rank order for a country and category, as top shows or top episodes.
podcasts.apple.com/list_top_podcastsLists ranked iPhone or iPad apps from the public App Store charts for a chart, category, and country. App bundles and apps that are no longer available are left out.
apps.apple.com/list_top_chartsLists an artist's songs on Genius by popularity or newest release date, with featured artists, release dates, page views and song art. The artist can be given by name or by Genius artist link; dates or views may be unavailable.
genius.com/list_artist_songs