Pitchfork API: List latest album reviews
Lists the newest Pitchfork album reviews. You can filter them by genre or limit them to Best New Music.
Unofficial. Not affiliated with or endorsed by Pitchfork.
Inputs
Values from the run on Oct 27, 2026, shown under Output.
- Genre optional
genre Genre to include, or all for any genre. Example: electronic.
electronic
One of
all,electronic,experimental,folk_country,global,jazz,metal,pop_rnb,rap,rock. Defaultall.- Max Results optional
max_results Maximum number of reviews, up to 100. Example: 20.
20
Whole number from 1 to 100. Default
20.- Best New Music Only optional
best_new_music_only Only include Best New Music album reviews. Example: false.
false
True or false. Default
false.
Input as JSON
{ "genre": "electronic", "max_results": 20, "best_new_music_only": false}Output
{ "reviews": [ { "album": "From the Toolkit of Lovers", "score": 8, "artist": "Loidis", "genres": [ "Electronic" ], "reviewer": "Daniel Bromfield", "review_date": "2026-10-27", "review_link": "https://pitchfork.com/reviews/albums/loidis-from-the-toolkit-of-lovers/" , "best_new_music": false, "cover_image_link": "https://media.pitchfork.com/photos/6adf80357100ccad9466ea62/1:1/w_768,c_limit/Loidis%20-%20From%20the%20Toolkit%20of%20Lovers.jpg" }, { "album": "February’s Album", "score": 7.5, "artist": "Hysterical Love Project", "genres": [ "Electronic" ], "reviewer": "Sam Goldner", "review_date": "2026-10-27", "review_link": "https://pitchfork.com/reviews/albums/hysterical-love-project-februarys-album/" , "best_new_music": false, "cover_image_link": "https://media.pitchfork.com/photos/6adf629398bbebd5e51cd09c/1:1/w_768,c_limit/Hysterial%20Love%20Project%20-%20February's%20Album.jpg" }, { "album": "jg", "score": 7.3, "artist": "Jacques Greene", "genres": [ "Electronic" ], "reviewer": "Kiana Mickles", "review_date": "2026-10-23", "review_link": "https://pitchfork.com/reviews/albums/jacques-greene-jg/" , "best_new_music": false, "cover_image_link": "https://media.pitchfork.com/photos/6ad9c65110f23c4740171808/1:1/w_768,c_limit/Jacques%20Greene%20-%20jg.jpg" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"pitchfork.com/list_latest_reviews","input":{"genre":"electronic","max_results":20,"best_new_music_only":false}}' # 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": "pitchfork.com/list_latest_reviews" , "input": { "genre": "electronic", "max_results": 20, "best_new_music_only": False }})# 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": "pitchfork.com/list_latest_reviews" , "input": { "genre": "electronic", "max_results": 20, "best_new_music_only": false } }), 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 pitchfork.com/list_latest_reviews# with {"genre":"electronic","max_results":20,"best_new_music_only":false}"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", "properties": { "genre": { "enum": [ "all", "electronic", "experimental", "folk_country", "global", "jazz", "metal", "pop_rnb", "rap", "rock" ], "type": "string", "default": "all", "description": "Genre to include, or all for any genre. Example: electronic." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of reviews, up to 100. Example: 20." }, "best_new_music_only": { "type": "boolean", "default": false, "description": "Only include Best New Music album reviews. Example: false." } }}Output schema
{ "type": "object", "required": [ "reviews" ], "properties": { "reviews": { "type": "array", "items": { "type": "object", "properties": { "album": { "type": "string" }, "score": { "type": "number" }, "artist": { "type": [ "string", "null" ] }, "genres": { "type": "array", "items": { "type": "string" } }, "reviewer": { "type": [ "string", "null" ] }, "review_date": { "type": "string" }, "review_link": { "type": "string" }, "best_new_music": { "type": "boolean" }, "cover_image_link": { "type": [ "string", "null" ] } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
pitchfork.com/list_latest_reviews- Returns
- album, artist, score, best new music flag, genres, reviewer, date, cover image, review 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 pitchfork.com/list_latest_reviews with the inputs above.
Ask your agent
- Show me the latest 15 album reviews from Pitchfork in the rock genre.
- What are the newest Best New Music picks on pitchfork.com this week?
- List 25 recent hip-hop album reviews with their scores and reviewers.
- I want the last 10 electronic album reviews, including cover art and review links.
- Give me recent jazz and folk album reviews, only the ones marked Best New Music.
See more
All Pitchfork methodsFinds Pitchfork's newest review that matches an album title and artist, and returns the review's rating and details.
pitchfork.com/get_album_reviewLists Bandcamp releases in a genre, sorted by best-selling or new arrivals and filtered by format. Physical-format prices come from the matching package when available.
bandcamp.com/list_releases_by_genreReads the newest critic or audience reviews for a Rotten Tomatoes movie or TV show. For a whole TV show it combines reviews from its seasons.
rottentomatoes.com/get_reviewsGets a podcast's country-specific rating total and average, plus up to 500 listener reviews sorted by newest or most helpful.
podcasts.apple.com/get_podcast_reviewsLists the highest-Metascore games, movies or TV shows on Metacritic for a release year or all time. You can filter by genre, and by platform for games.
metacritic.com/list_best_reviewedLists The Verge story headlines, including quick posts, in the order shown on a section page. Archive pages are added when more stories are needed.
theverge.com/list_headlinesLists Rotten Tomatoes movies in theaters, coming soon, or at home, by genre and site sort order, with scores, release dates, age ratings, posters and links.
rottentomatoes.com/list_moviesFinds a place on Google Maps by name and location and returns its public reviews in the chosen order.
google.com/get_place_reviews