Ticketmaster Events Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
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 withincludeAddOns. - 🧱 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-startwarm-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
- Add one or more search terms to
queries, for examplelakersortaylor swift. - Set
maxPagesandmaxItemsto bound how much you pull. - Run it, then export to JSON, CSV, or Excel, or pull the dataset straight from the Apify API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
queries | array<string> | yes | lakers | Search terms: artist, team, venue, or city. |
maxPages | integer | no | 3 | Cap on pages fetched per query, about 20 events per page (1-50). |
maxItems | integer | no | 100 | Hard cap on total rows across the run, events plus add-ons (1-5000). |
includeAddOns | boolean | no | true | Also emit parking / VIP add-on rows. |
proxyConfiguration | object | yes | Residential, US | Apify 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).
| Field | Type | Notes |
|---|---|---|
eventId | string | Event id, dedupe key. |
name | string | Event title. |
url | string | Absolute event URL. |
rowType | string | event or add_on. |
isParking | boolean | True for parking add-on rows. |
isVip | boolean | True for VIP / hospitality add-on rows. |
addOnType | string | null | Add-on category, e.g. Parking. |
parentEventId | string | null | The event an add-on belongs to. |
startDateUtc | string | null | ISO-8601 UTC start time. |
timeZone | string | null | IANA time zone of the venue. |
onsaleDate | string | null | ISO-8601 UTC on-sale time. |
venueName | string | null | Venue name. |
city / state / countryCode | string | null | Venue location. |
venueUrl | string | null | Venue page URL. |
latitude / longitude | number | null | Venue coordinates. |
artists | array<string> | Performers or teams. |
priceFrom | string | null | Lowest advertised price, when the listing shows one. |
isPartner | boolean | Sold through a partner site. |
soldOut / cancelled / postponed / rescheduled / tba / virtual | boolean | Status flags. |
ticketingStatus | string | null | Ticketing status label, if given. |
searchQuery | string | Input query that produced this row. |
pageNumber | integer | 1-based result page. |
scrapedAt | string | UTC 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.
| Event | USD | What it is |
|---|---|---|
actor-start | $0.20 | One-off warm-up charge per run |
result-emitted | $0.004 | Per 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.
priceFromis 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
maxPageshigh enough for the depth you need. - Add-ons count as rows. Parking and VIP rows are billed like any
other row. Set
includeAddOnstofalseto 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.