Ticketmaster Scraper - Events, Tickets & Prices
Pricing
from $2.20 / 1,000 event rows
Ticketmaster Scraper - Events, Tickets & Prices
Collect Ticketmaster events, ticket prices, artist calendars and venue details across 23 supported markets. Pay per delivered row plus a small start fee; optional ticket and review rows use the same row limit.
Pricing
from $2.20 / 1,000 event rows
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
66
Total users
31
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Ticketmaster Scraper
Extract Ticketmaster events, ticket prices, artist calendars and venue details across 23 supported markets as rows you can export.
- Search concerts, sports, theater and family events.
- Collect event dates, venue contacts and available pricing.
- Add separately billed ticket, offer and review rows when needed.
- Compare event snapshots and send change alerts.
- Pay $3 per 1,000 rows on the Free plan, plus a small start fee.
What does Ticketmaster Scraper do?
Ticketmaster Scraper collects public event and ticket information from Ticketmaster country sites. Each row represents one entity, not an entire event's ticket inventory.
search: keyword, classification or geographic search.artistandvenue: calendars and available profile information.category: concerts, sports, arts and theater, or family events.event: event details from a URL or ID, including batch inputs.- Optional listing, offer, review and suggestion rows share the input's row allowance and are billed like event rows. Their switches are off by default.
Supported market values are us, uk, ie, ca, au, nz, mx, de, at, ch, fr, be, nl, it, es, se, no, dk, fi, pl, cz, ae and za. Coverage varies by market and event; support does not guarantee ticket inventory for every event.
What data can you extract from Ticketmaster?
Every row has id and rowType. The following fields are available when the source provides them. Examples illustrate structure, not current ticket availability.
Event rows
| Field | Description | Example |
|---|---|---|
id | Event identifier | 0D0064EA9A88501D |
rowType | Entity type | event |
title | Event name | Example Arena Concert |
url | Event page | https://www.ticketmaster.com/example/event/0D0064EA9A88501D |
datetimeLocal | Local event date and time | 2027-05-15T19:30:00 |
venueName | Venue name | Example Arena |
venueCity | Venue city | Miami |
market | Ticketmaster market | us |
lowestPrice | Lowest reported price | 45 |
priceCurrency | Price currency | USD |
ticketingStatus | Reported ticketing status | onsale |
detailLevel | Coverage label, not the requested setting | discovery-metadata |
inventorySystem | Reported inventory label; TMR marks resale events | TMR |
totalResaleAvailable | Resale tickets reported when offered | 128 |
resaleSections | Resale section groups on the event row, when offered | [{"section":"112"}] |
tracking | Snapshot comparison when enabled | {"firstSnapshot": true} |
Listing rows
| Field | Description | Example |
|---|---|---|
eventId | Parent event identifier | 0D0064EA9A88501D |
listingKind | quickpick for recommended picks, resaleSection for resale groups | quickpick |
listingSource | Listing feed that produced the row; edp-ssr-quickpicks marks resale picks parsed from the event page markup | ticketmaster-quickpicks |
section | Seating section | 112 |
row | Seating row | F |
price | Reported listing price | 89 |
available | Reported open resale count for the group, when offered | 6 |
pickSize | Pick group size, not remaining stock | 2 |
Offer rows
| Field | Description | Example |
|---|---|---|
offerKind | Offer or price-level grouping | rasPriceLevel |
faceValue | Price-level face value | 80 |
openSeats | Open seats reported for that price level | 12 |
Review rows
| Field | Description | Example |
|---|---|---|
rating | Artist review rating | 5 |
text | Public review text | Example review text |
author | Public reviewer name | Jane Doe |
Suggestion rows
| Field | Description | Example |
|---|---|---|
suggestedEventId | Suggested event identifier | 0D0064EA9A88501D |
title | Suggested event name | Example Arena Concert |
Artist rows
| Field | Description | Example |
|---|---|---|
title | Artist name | Example Artist |
url | Artist page | https://www.ticketmaster.com/artist/779049 |
Venue rows
| Field | Description | Example |
|---|---|---|
phones | Public venue phone objects, when present | [{"value":"+1 555 0100","type":"landline"}] |
address | Structured venue address | {"locality":"Miami"} |
Category rows
| Field | Description | Example |
|---|---|---|
id | Category identifier | category:KZFzniwnSyZfZ7v7nJ |
title | Category label | Music |
How to scrape Ticketmaster
- Open Ticketmaster Scraper in Apify Console.
- Fill one target field and leave
modeonauto. - Set
maxResultsto3for a small first run. - Click Start and wait for completion.
- Open the dataset and download your rows.
Empty input starts a concert search with the form's prefilled limit of 3 rows. This example uses normal pricing; it is not an uncharged preview. A single target selects its matching mode automatically. If you select a mode but leave its target empty, the Actor follows the target you supplied instead.
Search
Fill query, or use classificationId or paired latitude and longitude. Leave dates empty for all upcoming dates. Choose either a keyword or a classification rather than combining them.
Artist
Fill artistId; artistSlug alone is not sufficient. Enable includeReviews if you also want review rows.
Venue
Fill venueId; venueSlug is optional. Public box-office contacts may be included with enrichDetails enabled.
Category
Fill categorySlug, categoryId or classificationId. Category slugs are concerts, sports, arts-theater and family.
Event
Fill eventUrl or eventId. For batches, use startUrls, detailUrls or listingIds; nonempty target lists replace scalar event targets. startUrls also accepts browse pages. Turn on includePricing for listing and offer rows.
Resale-marketplace events carry inventorySystem: TMR. includePricing adds resale section rows (listingKind: resaleSection) when the resale feed offers them; when it declines, the event row still returns and the run reports a warning in RUN_SUMMARY.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | auto, search, artist, venue, category, event | auto |
query | Search keyword | Prefill concert |
eventUrl, eventId | Event link or 6–40 character ID | Empty |
artistId, artistSlug | Artist ID and optional slug | Empty |
venueId, venueSlug | Venue ID and optional slug | Empty |
categorySlug, categoryId | Category slug or segment ID | Empty |
classificationId | Classification ID or alias such as comedy | Empty |
startUrls, detailUrls, listingIds | Lists of Ticketmaster URLs or event IDs | Empty |
market | Supported country code | us |
maxResults | Rows per input, 1–500 | 70; prefill 3 |
startDate, endDate | Calendar dates, YYYY-MM-DD | Empty |
sort | relevance or date | relevance in form |
latitude, longitude | Paired search coordinates | Empty |
radius, radiusUnit | Distance and miles or km | 50, miles |
detailLevel | full or reduced-detail fast | full |
includePricing | Add listing and offer rows | false |
includeSeatManifest | Request layout and availability details | false |
includeReviews | Add artist review rows | false |
includeSuggestions | Add suggestion rows | false |
enrichDetails | Add available venue contacts | true |
shardByDate, dateShardDays | Search in date windows of 1–92 days | false, 7 |
enumerate, seedKind | Browse saved classification, venue, attraction or all targets | false, classification |
trackChanges | Compare event snapshots across runs | false |
alertWebhookUrl | Public HTTPS change-alert destination | Empty |
maxPages | Page hint, 1–25; row limit still applies | 1 |
timeBudgetSecs | Time allowance, 30–3600 seconds | Run timeout |
onTimeout | partial or fail | partial |
progressIntervalSecs | Progress refresh, 2–30 seconds | 4 |
Search:
{"query":"concert","market":"us","maxResults":3}
Artist:
{"artistId":"779049","includeReviews":true,"maxResults":3}
Venue:
{"venueId":"106601","maxResults":3}
Category:
{"categorySlug":"concerts","market":"uk","maxResults":3}
Event, using a format example; replace the ID with a current event:
{"eventId":"0D0064EA9A88501D","includePricing":true,"maxResults":3}
Saved-target enumeration, which is not the empty-input example:
{"enumerate":true,"market":"us","seedKind":"classification","maxResults":3}
- For ordinary runs,
maxItemsandlimitare accepted aliases formaxResults. - Ordinary runs correct close field-name misspellings and ignore other unknown fields with a warning. Invalid optional filters such as
sort: "newest"are dropped. Targetless enumeration skips these corrections; use canonical field names. - Invalid targets or dates stop with
INVALID_INPUT: <field> — <how to fix>before any row is charged. The start fee still applies. - Each run writes its input interpretation to
INPUT_REPORTin the default key-value store. - Dates do not move forward automatically. No automatic keyword translation is promised.
Output example
Illustrative event row, not a live ticket quote:
{"id": "0D0064EA9A88501D","eventId": "0D0064EA9A88501D","rowType": "event","title": "Example Arena Concert","url": "https://www.ticketmaster.com/example/event/0D0064EA9A88501D","datetimeLocal": "2027-05-15T19:30:00","venueName": "Example Arena","venueCity": "Miami","market": "us","lowestPrice": 45,"priceCurrency": "USD","ticketingStatus": "onsale","detailLevel": "discovery-metadata"}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table.
Why use this Ticketmaster scraper?
- Row-based billing. You pay for delivered rows plus the start fee, not unsuccessful page attempts.
- Partial delivery.
onTimeout=partialsaves available rows at the collection deadline. Already stored rows remain accessible after a stop; unsaved rows are not guaranteed after a manual abort. - Clear failures. Input errors explain what to fix; collection failures have an
ERROR_SUMMARY. - Missing means missing. Unavailable prices or contacts stay empty rather than being invented.
- Batch inputs. Collect several event URLs or IDs in one run.
- No proxy setup. You do not need to set up proxies.
How much does it cost to scrape Ticketmaster?
The Actor uses pay-per-event pricing. Platform usage is included in these prices.
| Apify plan | Start event | Price per row | Price per 1,000 rows |
|---|---|---|---|
| Free | $0.005 | $0.003 | $3.00 |
| Starter | $0.005 | $0.003 | $3.00 |
| Scale | $0.005 | $0.0026 | $2.60 |
| Business | $0.005 | $0.0022 | $2.20 |
| Platinum | $0.005 | $0.002 | $2.00 |
| Diamond | $0.005 | $0.0016 | $1.60 |
The start charge is one event per GB of memory, with a minimum of one event. At the default 256 MB, the start costs $0.005.
maxResultsapplies to each explicit URL or ID; a scalar search is one input. The default is 70, and larger requests are collected in parts of 70.- All row types share that input's allowance. Asking for 3 rows does not mean 3 events plus unlimited tickets.
- Free Apify plan runs are capped at 200 rows, with a developer-set allowance of 10 runs.
- The whole run stops at Maximum cost per run (
maxTotalChargeUsdin the API).
Example: three event URLs delivering 5 rows each produce 15 billed rows. On the Free plan at 256 MB: 15 × $0.003 + $0.005 = $0.050.
What happens when the run timeout is too short
When a queued request needs longer than the remaining run time, the run can pause as ABORTED with the message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." When ready, the same run resumes, reports "Resumed: delivering N rows.", writes to the same dataset and finishes as SUCCEEDED if delivery succeeds. Already delivered rows are not delivered or charged again.
This can happen at most 3 times per run. Keep the default timeout of 3600 seconds to reduce interruptions. A collection deadline is different: onTimeout=partial keeps available rows, while fail rejects that unfinished result. Reaching the deadline without rows fails with a reason.
The synchronous endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and may return an empty dataset while a run is paused. For longer jobs, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook.
Use with AI agents and the API
Apify MCP server
In Claude, ChatGPT, Cursor, VS Code or another remote MCP client, add:
https://mcp.apify.com?tools=lentic_clockss/ticketmaster-scraper
Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset IDs; read the rows with get-dataset-items. For clients without remote support, run npx @apify/actors-mcp-server --tools lentic_clockss/ticketmaster-scraper with APIFY_TOKEN set.
Example prompt: "Find 3 Ticketmaster concert rows in the US using query concert. Return event names, dates and venues."
Apify API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/ticketmaster-scraper").call(run_input={"query": "concert", "market": "us", "maxResults": 3})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/ticketmaster-scraper').call({ query: 'concert', market: 'us', maxResults: 3 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For HTTP, send input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~ticketmaster-scraper/runs with an Authorization: Bearer header. Read rows with GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable or webhooks. Use Apify Schedules for repeated runs.
FAQ
Is it legal to scrape Ticketmaster?
This Actor collects public data. You are responsible for Ticketmaster's terms and applicable data-protection law. Processing personal data requires a lawful basis. This tool is independent of Ticketmaster and Live Nation Entertainment.
Why did my run end as ABORTED?
It may be the automatic pause described above. Check the status message before restarting; a manual abort is not the same as an automatic pause.
How many results can I get?
Set maxResults from 1 to 500 per input. Actual rows depend on source availability, selected options, time and spending limits. Free-plan runs stop at 200 rows.
Why are some fields empty?
Not every page exposes prices, seats, contacts or reviews. Metadata-only results do not prove that an event has no tickets.
Why did my resale event return no listing rows?
Resale-marketplace events (inventorySystem: TMR) rely on the resale feed. When it offers sections, they arrive as separately billed rows with listingKind: resaleSection and reported available counts. When it declines, the event row is still delivered with a warning in RUN_SUMMARY; an absent resaleSections value means none were offered, not that none exist.
Are ticket quantities remaining inventory?
Not always. Recommended picks describe purchase groups. Static seating geometry describes layout. Only reported availability counts describe observed availability; prices and stock can change after collection.
How do change alerts work?
Enable trackChanges and schedule repeated event runs. The first snapshot does not alert. Later changes can send ticketmaster.event.changed to alertWebhookUrl. Use a public HTTPS destination; redirects are not followed. Alerts compare observed snapshots, not continuous monitoring.
Does geographic search work everywhere?
Keyword searches in US and Canada support geographic filters directly. Other markets and category searches filter fetched events by venue coordinates, so coverage depends on available rows. Supply a keyword or classification with coordinates outside US/Canada.
Can I buy tickets with this Actor?
No. It collects public information, not purchases, reservations or account data.
Limitations
- Greece, Brazil, Chile, Peru, Argentina and Colombia are not supported markets.
- Seat-level pricing and resale availability are not guaranteed for every event or country; resale-marketplace (TMR) events may return metadata only when the resale feed declines.
detailLeveloutput labels describe returned coverage:bff-metadata,ras-avsc,ras-manifest,tmr-ismds,edp-qp-resale,edp-metadataordiscovery-metadata; none alone proves live inventory.- Resale events (
inventorySystem=TMR) can emit per-listing resale rows parsed from the event page markup (listingSource=edp-ssr-quickpicks,priceBasis=listed): section, row, listed price, delivery method. These are the listings the page displays, not a complete resale inventory. - Venue emails and named venue staff are not provided by the supported contact fields.
- Date-window searches and saved-target enumeration do not guarantee a complete market census.
- Optional rows compete with event rows for the same allowance; attribute lists are capped at 50 entries.
Related scrapers
More event and ticketing scrapers from the same publisher:
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Report problems or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.