Pollstar Scraper - Concert Tours, Venues & Events avatar

Pollstar Scraper - Concert Tours, Venues & Events

Pricing

from $1.50 / 1,000 event records

Go to Apify Store
Pollstar Scraper - Concert Tours, Venues & Events

Pollstar Scraper - Concert Tours, Venues & Events

Scrape Pollstar upcoming concerts and tour dates: play date, venue with full address and coordinates, artist line-up, genres, ticket links and market. Search artists, venues or cities, or paste Pollstar links. Newly-announced filter, incremental monitoring, resume and MCP export.

Pricing

from $1.50 / 1,000 event records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pollstar Scraper: Concert Tours, Venue Calendars & Tour Dates

Pollstar Scraper turns Pollstar into a clean concert-industry data feed. Search an artist, a venue or a city, or paste any Pollstar page, and get structured upcoming event records: play date, venue with street address and coordinates, the full billed line-up with genres, ticket links, market and the venue's own published contact details. Recurring runs can report only what changed, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • One schema across every surface. The same event record shape covers artist tour schedules, venue calendars and whole-market calendars, so you never write three different parsers.
  • Rich venue data on every row. Venue name, type, street, city, state, postal code, country, coordinates, market, and the venue's own published phone and website come with each event, with no second request per event.
  • Full line-up, not just the headliner. Every billed act with its sequence, genres and headline flag, plus a flat support-act list.
  • Newly announced watch. "Newly announced only" narrows a calendar to the dates Pollstar announced in the last few days, which is the cheapest possible daily tour-announcement feed.
  • Metro widening. "Include nearby cities" turns a single-city search into a whole surrounding market in one request.
  • Artist profile enrichment, on request. Optionally add the headline artist's photo, official website, activity status and a touring trivia line; each artist is read once per run and reused across all of their dates.
  • Incremental monitoring and resume, with an honest licence boundary. Recurring runs can emit only NEW, UPDATED, REAPPEARED or EXPIRED events, an interrupted run can continue without paying twice, and a run that hits Pollstar's data licence wall fails loudly instead of quietly returning nothing.

Use Cases

  • Booking agents and promoters: track a market's full calendar to spot open dates and see what else is already booked nearby.
  • Music journalists and tour-news blogs: watch newly announced dates for a city or artist to publish first.
  • Ticket resale and pricing tools: feed upcoming event, venue and ticket-link details into a pricing or alerting system.
  • Artist managers and agencies: monitor a whole roster's tour schedule and venue contact details in one feed.
  • Venue and market analysts: build a picture of everything booked in a metro area, including nearby cities, without visiting each venue page by hand.

Data You Get

Sample shape: values are illustrative placeholders, not from a live listing.

FieldExample
eventId"00000000"
urlhttps://www.pollstar.com/events/sample-artist-at-sample-arena-00000000
titleSample Artist at Sample Arena
playDate / playTime2027-06-18T00:00:00 / 8:00 PM
isFestivalfalse
announcedHoursAgo36
headlineArtist / headlineArtistUrlSample Artist / https://www.pollstar.com/artists/sample-artist-00000000
genres["Pop / Rock"]
supportActs["Sample Support Act"]
artists[{"artistId": "00000000", "name": "Sample Artist", "isHeadline": true, "genres": ["Pop / Rock"], "artistType": "Band", "sequence": 1}]
venueName / venueTypesSample Arena / ["Arena"]
venueStreet1 Sample Road
venueCity / venueStateSample City / ST
venuePostalCode / venueCountry00000 / United States
venueLatitude / venueLongitude36.1000 / -115.1000
venueMarketSample City, ST
venuePhone / venueEmail / venueWebsite(000) 000 0000 / bookings@sample-arena.example / www.sample-arena.example
ticketUrl / ticketVendorshttps://tickets.example/sample / ["Sample Ticket Vendor"]
headlineArtistImageUrl / headlineArtistTriviahttps://static.example/artist-photos/sample.jpg / Sample Artist has headlined 70% of performances since 2006
scopeKind / scopeNamecity / Sample City
changeTypeNEW, UPDATED, REAPPEARED, UNCHANGED, EXPIRED

The venuePhone, venueEmail and venueWebsite fields are the venue's own publicly listed organisation contact details, exactly as Pollstar publishes them on its public venue page. No personal contact data is collected: individual staff and promoter contacts are subscriber-only on Pollstar and this actor does not request them.

How to Use

  1. Pick a mode: search (look up a name) or url (paste Pollstar links).
  2. Fill in the fields for that mode, plus the date window and filters that apply to both modes.
  3. Set Max items (and, if you need it, Max pages) to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Everything booked in a market for the next year:

{
"mode": "search",
"query": "Sample City",
"searchType": "cities",
"maxItems": 200
}

An artist's upcoming tour dates, with artist profile extras:

{
"mode": "search",
"query": "Sample Artist",
"searchType": "artists",
"fetchArtistProfiles": true,
"maxItems": 100
}

Paste Pollstar links, mixed types supported (links shown are illustrative placeholders):

{
"mode": "url",
"urls": [
"https://www.pollstar.com/cities/sample-city-00000",
"https://www.pollstar.com/artists/sample-artist-00000000",
"https://www.pollstar.com/events/sample-artist-at-sample-arena-00000000"
],
"maxItems": 200
}

URL mode defaults (behaviour change): if you switch to url mode and leave Pollstar links untouched, the actor now reads one example of every supported link shape instead of failing with "No input". The pre-filled list is: a city page, an artist page, a venue page, a company page, a single event page, the same artist on the bare pollstar.com host, and a slug-less artist link ending in only the numeric id.

Link shapeExample (illustrative placeholder)
Cityhttps://www.pollstar.com/cities/sample-city-00000
Artisthttps://www.pollstar.com/artists/sample-artist-00000000
Venuehttps://www.pollstar.com/venues/sample-arena-00000000
Companyhttps://www.pollstar.com/companies/sample-arena-00000000
Eventhttps://www.pollstar.com/events/sample-artist-at-sample-arena-00000000
Bare hosthttps://pollstar.com/artists/sample-artist-00000000
Numeric id onlyhttps://www.pollstar.com/artists/00000000

The bare-host and slug-less examples are alternate spellings of the artist page, so they resolve to the same page and the actor reads that page once; likewise a venue link and a company link with the same id serve the same calendar. They are listed to show which spellings are accepted, not as separate result sets.

Query strings such as ?page=2 are ignored (the actor pages forward itself), and the singular /artist/ path is accepted like /artists/.

Watch a market daily and get only the newly announced dates:

{
"mode": "search",
"query": "Sample City",
"searchType": "cities",
"includeNearbyCities": true,
"newOnly": true,
"incrementalMode": true,
"maxItems": 0
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/pollstar-concert-tour-scraper").call(
run_input={"mode": "search", "query": "Sample City", "searchType": "cities"})
for event in client.dataset(run["defaultDatasetId"]).iterate_items():
print(event["title"], event["playDate"], event["venueName"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/pollstar-concert-tour-scraper').call({
mode: 'search', query: 'Sample City', searchType: 'cities',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

The licence boundary this actor respects

Pollstar publishes upcoming tour and venue calendars openly, but licenses its historical archive: the tour history, box-office grosses and venue staff-contact pages are subscriber-only, and the same events feed refuses any date window that reaches into the past. This actor is therefore scoped to upcoming dates only, from today forward, and says so out loud instead of rendering a refusal as an empty calendar:

  • A fromDate before today is moved forward to today, and the run log names both dates.
  • A window that ends before today is refused outright: the run fails with a message naming the licence boundary, instead of reporting an empty calendar.
  • A licence refusal seen partway through a run is counted and named in the run's status message, so a partial run is never mistaken for a complete one.

How Max items and Max pages shape a run

  • Max items stops the whole run once that many events have been returned (the input accepts values up to 1,000,000). 0 means no cap, so the run stops only when a calendar reaches its own natural end.
  • Max pages bounds how many pages ONE artist, venue, city or link is walked through. 0 defaults to a generous 200-page ceiling per scope (roughly 10,000 events), so in practice Max items is normally the only cap you need to touch.
  • In url mode with several links pasted together, Max items is split evenly across the links. A single very active market or artist can use up its own share while the others finish their calendars naturally; when that happens before the link's last page, it is enough to mark the whole run as capped for the incremental-mode rules below, even though most links completed a full scan. See the next section for the one case where it is not marked.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run or dataset ID and the actor skips every event id already collected there, so you don't pay twice.
  • Incremental mode (incrementalMode) is for repeated runs over the same search, links and filters. Each event is classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED or EXPIRED (only after a run that fully scanned the tracked scope, and only with emitExpired on). An event is UPDATED when any returned field changes (date, time, venue, artists, tickets, ticket vendors, genres, notes, artist profile fields); list order and whole-number formatting (25.0 vs 25) are ignored. announcedHoursAgo (a counter that rises every run) is never compared, and you can list further noisy fields in ignoreFieldsForChanges (matched at any depth; still returned in the output). stateKey names or shares the stored state. With incremental mode off, output is exactly as before. The dataset also has a Changes view listing each event's changeType, changedFields, firstSeenAt and lastSeenAt.
  • EXPIRED rows are only produced when the run believes nothing capped, resumed or refused the scan partway. In url mode with several links, one link using up its own Max items share before its calendar's last page is enough to skip EXPIRED detection for that whole run, even when every other link finished naturally; the run simply tries again next cycle.
  • One edge case goes the other way. In url mode with several links and a non-zero Max items, if a link's share runs out partway through the LAST page of that link's calendar while the run as a whole stays under Max items, the run does not count that as a cap. The events on that page after the cutoff were never read, so they can be reported (and billed) as EXPIRED even though they are still listed, and they come back as REAPPEARED on a later run that reads them. If you turn on emitExpired in url mode with more than one link, set Max items to 0 (no cap), or run each link on its own, so every EXPIRED row reflects a date that is really gone.

Send results into your apps (MCP connectors)

You can optionally pipe results into apps you already use via Model Context Protocol (MCP) connectors. Authorize a connector under Apify, Settings, API & Integrations, then select it in the mcpConnectors input field. For Notion, set notionParentPageUrl to the page under which item pages are created; the Notion export writes a page per event with a readable summary. Other connectors get a best-effort write or digest.

Each connector receives a condensed, human-readable summary per event (title plus the key fields flattened to plain text), not the full record. The complete event record always stays in the Apify dataset. maxNotifyListings caps how many items each connector receives per run and never changes the dataset. Leave mcpConnectors empty to skip the export entirely.

Requires an Apify account. The default settings work on plans with Apify proxy access; on other plans the actor uses a backup connection (see Plan Requirement).

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch resolves a keyword to a Pollstar artist, venue or city. url reads the Pollstar pages you paste.
querystringLas VegasSearch mode: the name to look up. The closest Pollstar match is used and logged.
searchTypestringcitiesSearch mode: cities, artists or venues. Cities returns everything booked in a market, artists returns a tour schedule, venues returns a venue calendar.
urlsarray of stringsone example of each link shape (see How to Use)URL mode: Pollstar pages, one per line. Artist, venue, city and company pages are paged forward; a single event page is read as one record. Every link must end in the numeric Pollstar id.
fromDatestringtodayFirst play date to include, YYYY-MM-DD. A date before today is moved forward to today and the run log says so.
toDatestringone year outLast play date to include, YYYY-MM-DD.
newOnlybooleanfalseOnly dates Pollstar announced in the last few days.
includeNearbyCitiesbooleanfalseWiden a city search into the surrounding metro area. Ignored for artist, venue and event scopes.
sortOrderstringascasc reads the calendar soonest first, desc furthest out first (or Z to A when sorting by venue).
sortBystringplaydateplaydate orders by event date; venue groups the calendar by venue name. Pollstar applies only these two orderings.
fetchArtistProfilesbooleantrueRead each headline artist's Pollstar profile for their photo, website, activity status and trivia line. Adds a per-event surcharge; each artist is read once per run.
maxItemsinteger20Stop after this many events. 0 means no limit.
maxPagesinteger0Upper bound on pages read per artist, venue, city or link. 0 defaults to a wide 200-page ceiling so maxItems is normally the only cap you need.
resumeFromRunIdstringemptyA previous run or dataset ID to continue without returning events already collected there.
incrementalModebooleanfalseRecurring monitoring: the first run marks every event NEW; later runs emit only NEW, UPDATED and REAPPEARED events, plus EXPIRED when enabled.
stateKeystringemptyOptional name for a monitoring campaign so its state stays stable, or to deliberately share state across runs.
emitUnchangedbooleanfalseAlso return events that have not changed since the last run, marked UNCHANGED. Returns and bills extra rows.
emitExpiredbooleanfalseAlso return events tracked before but no longer listed, marked EXPIRED. Only produced after a run fully scans the tracked calendar.
ignoreFieldsForChangesarrayemptyIncremental mode only: output field names that should NOT make an event count as UPDATED, even when they change (matched at any nesting depth). Ignored fields are still returned. announcedHoursAgo is always ignored.
mcpConnectorsarray of stringsemptyOptional MCP connectors to receive the results (see the section above).
notionParentPageUrlstringemptyParent Notion page for the Notion connector export.
maxNotifyListingsinteger50Cap on items written to each connector per run. Does not affect the dataset.
proxyConfigurationobjectstandardApify Proxy settings. The default is the standard automatic Apify proxy and needs no residential proxy; plans without Apify proxy access use a backup connection (see Plan Requirement). No proxy group is pinned.

Output Example

Sample shape: values are illustrative placeholders, not from a live listing.

{
"kind": "event",
"recordId": "00000000",
"eventId": "00000000",
"url": "https://www.pollstar.com/events/sample-artist-at-sample-arena-00000000",
"title": "Sample Artist at Sample Arena",
"playDate": "2027-06-18T00:00:00",
"playTime": "8:00 PM",
"isFestival": false,
"hasBoxOfficeReport": false,
"announcedHoursAgo": 36,
"note": null,
"headlineArtist": "Sample Artist",
"headlineArtistId": "00000000",
"headlineArtistUrl": "https://www.pollstar.com/artists/sample-artist-00000000",
"headlineArtistType": "Band",
"genres": ["Pop / Rock"],
"supportActs": ["Sample Support Act"],
"artists": [
{
"artistId": "00000000",
"name": "Sample Artist",
"url": "https://www.pollstar.com/artists/sample-artist-00000000",
"isHeadline": true,
"genres": ["Pop / Rock"],
"artistType": "Band",
"sequence": 1
}
],
"venueId": "00000000",
"venueName": "Sample Arena",
"venueUrl": "https://www.pollstar.com/companies/sample-arena-00000000",
"venueTypes": ["Arena"],
"venueMarket": "Sample City, ST",
"venueStreet": "1 Sample Road",
"venueCity": "Sample City",
"venueState": "ST",
"venueStateName": "Sample State",
"venuePostalCode": "00000",
"venueCountry": "United States",
"venueLatitude": 36.1,
"venueLongitude": -115.1,
"venuePhone": "(000) 000 0000",
"venueEmail": "bookings@sample-arena.example",
"venueWebsite": "www.sample-arena.example",
"tickets": [
{
"vendor": "Sample Ticket Vendor",
"url": "https://tickets.example/sample",
"doorTime": "8:00 PM"
}
],
"ticketUrl": "https://tickets.example/sample",
"ticketVendors": ["Sample Ticket Vendor"],
"headlineArtistImageUrl": "https://static.example/artist-photos/sample.jpg",
"headlineArtistWebsite": "www.sample-artist.example",
"headlineArtistIsActive": true,
"headlineArtistSortName": "SAMPLE ARTIST",
"headlineArtistNote": null,
"headlineArtistTrivia": "Sample Artist has headlined 70% of performances since 2006",
"scopeKind": "city",
"scopeId": "00000",
"scopeName": "Sample City"
}

Plan Requirement

The default proxy setting is the standard automatic Apify proxy; the actor pins no proxy group and has no residential requirement. The default automatic Apify proxy (datacenter) was measured serving this site's data on 2026-10-13 and needs no residential proxy. On a plan without Apify proxy access the actor switches to a backup connection and logs the warning quoted below. The actor tries several connections in turn and prefers the cheapest one that works.

  • If your plan does not include residential proxies, the run log shows a boxed warning: "The selected connection is unavailable to this run. Apify free plans do not include residential proxies. Continuing on a backup connection; some pages may still be unavailable. For residential access, upgrade at https://apify.com/pricing or supply your own proxy URLs."
  • If the proxy is refused outright, the run ends FAILED with: "The proxy connection was refused for this account, so no page could be read. Your Apify plan does not include proxy access; a paid plan is required: https://apify.com/pricing. If you entered your own proxy URLs, check that their credentials are valid."
  • On a free run where the backup connection also could not load the pages, it ends FAILED with: "No results: residential proxies are unavailable on this run (Apify free plans do not include them), and the backup connection could not load the requested Pollstar pages. Upgrade at https://apify.com/pricing or supply your own proxy URLs, then try again."
  • On any other run where no page loaded, it ends FAILED with: "Could not load any results page (the requests failed), so nothing was collected. This is a connection problem, not an empty search. Please try again later."

A run that loaded no usable page is never reported as an empty success. Optional artist profile enrichment (fetchArtistProfiles) adds a small per-event surcharge on top of the base per-record charge; the Pricing tab shows current rates for both.

FAQ

How much does it cost?

You pay per event returned, plus the artist-profile surcharge only for the events whose headline artist was actually read fresh during that run (a cached or reused artist never re-bills). The Pricing tab shows the current rates (on the Free plan: $0.002 per event returned, $0.0008 per artist-profile enrichment, and a $0.065 charge per run start). Use Max items to cap the cost of any run.

This actor collects only the upcoming-events data Pollstar's own public web app already serves without a login. You are responsible for how you use it: follow Pollstar's terms and the laws that apply to you, and get legal advice before any commercial redistribution, especially given that Pollstar licenses its historical archive (tour history and box-office data) separately and this actor does not access it.

Can I watch a market or artist for newly announced dates on a schedule?

Yes. Schedule the actor from the Schedules tab, turn on Newly announced only and Incremental changes for scheduled runs. Each run then returns only NEW, UPDATED and REAPPEARED dates; unchanged ones are skipped and not billed unless you also turn on Emit unchanged.

Why did my date window get moved forward, or my run fail instead of returning an empty dataset?

Pollstar licenses dates before today; this actor moves a past start date forward to today and logs the change. A window that ends entirely in the past is refused, and the run fails with a message naming the licence boundary rather than reporting an empty calendar, so "nothing booked" is never confused with "the request itself was refused". If only part of a run was refused, you still get what could be read, and the run's status message names how much was blocked.

Why didn't an incremental run report any EXPIRED dates I expected?

EXPIRED detection only fires after a run that fully scanned its tracked scope with nothing capped, resumed or refused. In url mode with several links, Max items is split per link, so one especially active link using up its own share before its last page is enough to skip EXPIRED for the whole run that cycle, even though the other links finished naturally; that cycle's tombstoning is simply deferred. The opposite edge case also exists: if a link's share runs out partway through its final page while the run stays under Max items overall, the unread rest of that page can be reported as EXPIRED and then return as REAPPEARED later (see "Resume and recurring updates" above). For reliable EXPIRED rows in url mode with several links, set Max items to 0 or run each link on its own.

What is the difference between Resume and Incremental mode?

Resume continues ONE specific interrupted run so you don't pay to re-collect what it already gathered. Incremental mode is for running the same search or links again and again (for example daily) and getting only what is new or changed since last time. They are independent and can be combined.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

๐Ÿ”— Want more travel data?

Pair this actor with these related scrapers from the same team:

๐Ÿงฉ Songkick Scraper
Scrape Songkick concert and event calendars: upcoming and past dates, venues, cities...
โœˆ๏ธ Concert Archives Scraper
Scrape Concert Archives concert and tour history: past and upcoming dates, venues...
๐Ÿงฉ Bandsintown Scraper
Scrape Bandsintown concert and festival dates: artist tour calendars, venue profiles...
๐Ÿงฉ Ticketmaster Scraper
Discover and scrape Ticketmaster events across the US, UK, Australia and Canada. Search...
๐Ÿงฉ Viagogo Scraper
Scrape Viagogo events by artist, production, venue, city, category, or URL. Extract event...
๐Ÿ›’ SeatGeek Scraper
Scrape SeatGeek events with ticket price ranges (lowest, highest, average, median)...

๐Ÿ‘‰ Browse all abotapi scrapers

๐Ÿ’ฌ Support

  • ๐Ÿž Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • ๐Ÿ› ๏ธ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • โญ Enjoying it? A quick review on the actor page helps other users find it.