Ticketmaster Events Scraper avatar

Ticketmaster Events Scraper

Pricing

Pay per event

Go to Apify Store
Ticketmaster Events Scraper

Ticketmaster Events Scraper

Scrape Ticketmaster event search results by keyword: event name, start date and time, venue, city and state, artists, sold-out and cancelled flags, and event URL, plus flagged parking and VIP add-on rows, as clean deduplicated data.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Categories

Share

Devil Scrapes mark

Ticketmaster Events Scraper

💰 $4.20 / 1 000 results  ·  pay only for results  ·  no credit card to try

The devil's in the data. 😈

Search Ticketmaster by artist, team, venue, or city and get the matching events as clean, deduplicated rows: name, start date and time, venue, city and state, performers, status flags, and the event URL, with parking and VIP add-on listings flagged instead of mixed in blind.

🎯 What this scrapes

Ticketmaster's search shows twenty events a page and offers no bulk export. This Actor runs each query you give it, walks the result pages, and returns one row per event: name, ISO-8601 UTC start time, time zone, on-sale date, venue name and page, city, state, country, coordinates, performers, and sold-out / cancelled / postponed / rescheduled / TBA / virtual flags. Events sold through partner sites are included and marked isPartner. Parking, VIP, and similar add-on listings attached to an event come back as their own rows with rowType: "add_on", isParking or isVip set, and parentEventId pointing at the event.

🔥 Features

  • 🛡️ We rotate browser fingerprints (curl-cffi Chrome, Firefox and Safari impersonation) so the site sees a real browser's TLS handshake, not a Python script.
  • 🔁 We retry with exponential backoff on rate limits and server errors, honouring Retry-After. Up to 5 attempts per page.
  • 🌐 We rotate residential US proxies through Apify Proxy on every block, with a fresh session and exit IP each time.
  • 🧊 Run-wide deduplication. The same event id never appears twice in your dataset, across pages or across queries in one run.
  • 🏷️ Parking and VIP rows are flagged, not dropped. Keep them, filter them on isParking / isVip, or switch them off with includeAddOns.
  • 🧱 Fault isolation. One query that gets blocked doesn't end the others; we log it and keep going.
  • 💰 You pay only for results that land. No data, no charge (only the small actor-start warm-up fee).

💡 Use cases

  • Ticket resellers and brokers: monitor which events exist for a team or artist, and which are sold out or rescheduled.
  • Travel and hospitality teams: line up event calendars by city and venue to forecast demand.
  • Marketing and sponsorship teams: track tours and fixtures for the artists and teams you care about.
  • Data and analytics: build event datasets with venue coordinates for maps and dashboards.

⚙️ How to use it

  1. Add one or more search terms to queries, for example lakers or taylor swift.
  2. Set maxPages and maxItems to bound how much you pull.
  3. Run it, then export to JSON, CSV, or Excel, or pull the dataset straight from the Apify API.

📥 Input

FieldTypeRequiredDefaultNotes
queriesarray<string>yeslakersSearch terms: artist, team, venue, or city.
maxPagesintegerno3Cap on pages fetched per query, about 20 events per page (1-50).
maxItemsintegerno100Hard cap on total rows across the run, events plus add-ons (1-5000).
includeAddOnsbooleannotrueAlso emit parking / VIP add-on rows.
proxyConfigurationobjectyesResidential, USApify Proxy configuration.

Example input

{
"queries": ["lakers", "taylor swift"],
"maxPages": 2,
"maxItems": 120,
"includeAddOns": true,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}

📤 Output

One row per deduplicated event (and per add-on, if enabled).

FieldTypeNotes
eventIdstringEvent id, dedupe key.
namestringEvent title.
urlstringAbsolute event URL.
rowTypestringevent or add_on.
isParkingbooleanTrue for parking add-on rows.
isVipbooleanTrue for VIP / hospitality add-on rows.
addOnTypestring | nullAdd-on category, e.g. Parking.
parentEventIdstring | nullThe event an add-on belongs to.
startDateUtcstring | nullISO-8601 UTC start time.
timeZonestring | nullIANA time zone of the venue.
onsaleDatestring | nullISO-8601 UTC on-sale time.
venueNamestring | nullVenue name.
city / state / countryCodestring | nullVenue location.
venueUrlstring | nullVenue page URL.
latitude / longitudenumber | nullVenue coordinates.
artistsarray<string>Performers or teams.
priceFromstring | nullLowest advertised price, when the listing shows one.
isPartnerbooleanSold through a partner site.
soldOut / cancelled / postponed / rescheduled / tba / virtualbooleanStatus flags.
ticketingStatusstring | nullTicketing status label, if given.
searchQuerystringInput query that produced this row.
pageNumberinteger1-based result page.
scrapedAtstringUTC ISO-8601 run timestamp.

Example output record

{
"eventId": "3B006511E92D865F",
"name": "New York Knicks vs. Los Angeles Lakers",
"url": "https://www.ticketmaster.com/new-york-knicks-vs-los-angeles-new-york-new-york-01-30-2027/event/3B006511E92D865F",
"rowType": "event",
"isParking": false,
"isVip": false,
"addOnType": null,
"parentEventId": null,
"startDateUtc": "2027-01-31T01:30:00Z",
"timeZone": "America/New_York",
"venueName": "Madison Square Garden",
"city": "New York",
"state": "NY",
"countryCode": "US",
"artists": ["New York Knicks", "Los Angeles Lakers"],
"isPartner": false,
"soldOut": false,
"cancelled": false,
"searchQuery": "lakers",
"pageNumber": 1,
"scrapedAt": "2026-10-12T08:00:00Z"
}

💰 Pricing

Pay-Per-Event: you pay only when these events fire.

EventUSDWhat it is
actor-start$0.20One-off warm-up charge per run
result-emitted$0.004Per deduplicated event or add-on row written to the dataset

Example: 1 000 rows = $4.20 per run ($0.20 start + 1000 x $0.004). No subscription, no minimum, no card required to try it.

🚧 Limitations

  • Search-result fields only. This returns what the search listing publishes. Seat maps, live ticket inventory, and checkout data are out of scope.
  • Price is often absent. priceFrom is filled only when the listing itself carries a price; today most rows leave it empty.
  • United States search. Queries run against the US site and region.
  • Result depth. Each query returns about 20 events per page; set maxPages high enough for the depth you need.
  • Add-ons count as rows. Parking and VIP rows are billed like any other row. Set includeAddOns to false to skip them.
  • A query with no matches is a success. It finishes with zero rows and a status message naming what was searched.

❓ FAQ

Do I need a Ticketmaster account or API key? No. This reads Ticketmaster's public search results.

How do I tell parking rows from events? Use rowType (event or add_on), or the isParking / isVip flags. Add-on rows carry parentEventId so you can join them to their event.

Why did my run return fewer rows than maxItems? Either the search has fewer matches than your cap, or maxPages stopped the run first. The status message tells you which.

Can I search several terms in one run? Yes. Pass an array to queries; every row carries searchQuery so you can tell which search found it.

What happens if a search is blocked? We retry up to 5 times with a fresh browser fingerprint and proxy session each time. If a query still can't be read, the others carry on and the status message says so. The run ends as failed only when a query was blocked and nothing at all could be collected.

Can I run this on a schedule? Yes. Use Apify Schedules to re-run your query set on a cadence and catch newly listed events.

💬 Your feedback

Found a bug, or need a field we don't return yet? Open an issue on the Actor's Issues tab. We read every one.