Setlist.fm Concerts Scraper
parseforge/setlistfm-concerts-scraper
Automation
Scrape concert setlists from Setlist.fm by artist name, city, venue, or year. Returns each concert as a flat row with songs, encores, tour names, venue details, and event dates.
- Total users
- 2
- Monthly active
- 0
- Total runs
- 88
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
Setlist.fm Concerts Scraper
Scrape concert setlists from Setlist.fm by artist, city, venue, or year, up to a million per run. Every setlist comes with songs, encores, tour names, venue details, and event dates. No API key required. Export to CSV, JSON, Excel, or XML.
Setlist.fm is the definitive archive of live concert history, but browsing it manually for research is slow and repetitive. This Actor reads the public concert listings directly, letting you pull setlists for any artist, filter by city or venue, and narrow results to a specific year. You get a clean, structured dataset ready for analysis without writing a single line of code.
| Who uses it | What they scrape Setlist.fm for |
|---|---|
| Music journalists | Research an artist's tour history and song rotations for a retrospective article. |
| Concert promoters | Analyze which venues a competing artist played to plan routing for an upcoming tour. |
| Data analysts | Build a dataset of live performance trends across decades and genres. |
| Superfans | Track every song their favorite band has ever played live and find rare performances. |
What it does
This Actor collects concert setlists from Setlist.fm by artist name, city, venue, or year, and returns each one as a flat row.
- π€ Artist search: provide an artist name like 'Radiohead' to pull every recorded concert.
- ποΈ City filter: narrow results to concerts that happened in a specific city.
- π Venue filter: collect setlists from a single venue, such as Madison Square Garden.
- π Year filter: restrict the scrape to a single year, from 1900 to 2099.
- π’ Volume control: set a hard limit from 1 to 1,000,000 concerts per run.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Setlist.fm data
π Build a tour history database.
A music data analyst scrapes every Radiohead concert since 1993 to map song rarity and setlist evolution over three decades.
πΈ Compare festival lineups.
A festival booker pulls all setlists from a specific venue to see which acts drew the longest encores and biggest crowds.
π Research a live album review.
A music journalist collects every show from an artist's 2023 tour to identify which songs were played consistently and which were one-off rarities.
πΊοΈ Plan a tour route.
A tour manager scrapes setlists by city to understand which markets a similar artist saturated and where there is room for a new stop.
Why choose this scraper
| What you get | |
|---|---|
| Full setlists | Every song played, including encores and song order |
| Venue details | Venue name, city, and event date for each concert |
| Tour context | Tour name attached to each show when available |
| Flexible input | Search by artist, city, venue, or year in any combination |
How it compares
This Actor focuses on flexible filtering by artist, city, venue, and year with a simple input form, while other Setlist.fm scrapers on Apify emphasize search URL input or specific data extraction patterns.
| Feature | ParseForge | Setlist.fm Search Scraper | Setlist.fm Scraper (lulzasaur) | Setlist.fm Scraper (hoholabs) |
|---|---|---|---|---|
| Filter by artist name directly | Yes | Not listed | Yes | Yes |
| Filter by city | Yes | Not listed | Not listed | Not listed |
| Filter by venue name | Yes | Not listed | Not listed | Not listed |
| Filter by year | Yes | Not listed | Not listed | Not listed |
| Search by URL input | Not listed | Yes | Not listed | Not listed |
| Encore details in output | Yes | Not listed | Yes | Not listed |
Configure the run
Drive the Actor with an artist name, city, venue, and year, alone or in combination, and filters run as each concert is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"artistName": "Radiohead",
"maxItems": 10
}
A larger pull:
{
"artistName": "Radiohead",
"maxItems": 200
}
Pricing
Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Setlist.fm Concerts Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Setlist.fm through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/setlistfm-concerts-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that you provided at least one filter (artist name, city, venue, or year). If you used an artist name, verify the spelling matches Setlist.fm's format. Try a well-known artist like 'Radiohead' to confirm the Actor is working.
The Actor returns fewer concerts than my maxItems setting.
This is expected when Setlist.fm has fewer matching concerts than your limit. The Actor scrapes all available results and stops. Try broadening your filters, for example by removing the year or city constraint.
Some concerts are missing song details.
Setlist.fm relies on user contributions. Some older or obscure concerts may have incomplete setlists. The Actor returns whatever data is publicly available on the site.
The run times out before reaching my limit.
Large scrapes can take time. Increase the run timeout in your Apify actor settings, or reduce the maxItems value and run multiple smaller batches.
I get an error when using special characters in the artist name.
Try URL-encoding the artist name or using the most common ASCII spelling. Artists with diacritics like 'BjΓΆrk' may need the exact spelling Setlist.fm uses.
FAQ
| Question | Answer |
|---|---|
| Do I need a Setlist.fm API key to use this Actor? | No. This Actor reads the public Setlist.fm website directly. You do not need to register an application or obtain an API key. |
| Can I scrape setlists for multiple artists in one run? | Each run targets one artist name. To scrape multiple artists, run the Actor once per artist, or use Apify's actor calling features to chain multiple runs programmatically. |
| What happens if I leave the artist name empty? | The Actor requires at least one filter to work. If you leave all filters empty, it will not return results. Provide an artist name, city, venue, or year to start the scrape. |
| Does this Actor get the song order and encores? | Yes. The dataset includes the full song list in the order played, and it marks which songs were part of an encore when that information is available on Setlist.fm. |
| Can I filter by a specific tour name? | The input schema does not include a dedicated tour name filter. You can scrape by artist and year, then filter the resulting dataset for a specific tour name in your spreadsheet or database. |
| How many concerts can I scrape in one run? | You set the limit with the 'Maximum concerts' field, from 1 up to 1,000,000. The Actor stops when it reaches your limit or when no more matching concerts exist. |
| What export formats are supported? | You can export your dataset in CSV, JSON, Excel, or XML from the Apify platform after the run completes. |
| Does this Actor handle pagination automatically? | Yes. The Actor follows Setlist.fm's pagination automatically until it collects the number of concerts you requested or exhausts the available results. |
| Can I scrape setlists from a specific festival? | If the festival has a dedicated venue or city on Setlist.fm, you can use the venue or city filter. Otherwise, scrape by the artists who played and filter the results afterward. |
| Is it legal to scrape Setlist.fm? | Setlist.fm data is user-contributed and publicly accessible. You are responsible for complying with their terms of service and applicable laws in your jurisdiction. Apify provides the tool, not legal advice. |
Related actors
- setlistfm-concerts-scraper: Use this Actor when you need structured concert data by artist, city, venue, or year for analysis or archival.
Browse the full ParseForge collection for more scrapers.
π Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
β οΈ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Setlist.fm. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| artistName | string | Search by artist name. | Radiohead |
| cityName | string | Filter by city. | not set |
| venueName | string | Filter by venue. | not set |
| year | integer | Filter by year of event. | not set |
| maxItems | integer | How many concerts to collect per run. | 10 |
Pricing
from $7.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.0075 to $0.0085 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~setlistfm-concerts-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
