Tixel Event Scraper
Pricing
from $0.50 / 1,000 results
Tixel Event Scraper
Scrape Tixel event listings, ticket prices & availability across 72 cities in AU, UK, US, NZ, NL & JP. Export concerts, festivals, sports & more as structured JSON, CSV, or Excel.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Techforce Global
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Tixel Event Scraper & MCP Connector
Pull every event listed on Tixel.com — concerts, festivals, sports, theatre, comedy, and food & drink — across 72 cities in Australia, the UK, the US, New Zealand, the Netherlands, and Japan. No login, no manual browsing city-by-city, no copy-pasting ticket counts by hand.
Built for resellers, event marketers, researchers, and builders who need Tixel's live listings as clean, structured data — in minutes, not hours of clicking through discover pages.
Pick cities + categories → get every event's venue, date, price, and ticket count → deliver it straight into Notion, Slack, Airtable, or your CRM.
⭐ Why This Actor?
- ✅ Just pick cities and categories — choose from 72 cities across 6 countries and 6 event categories from simple dropdowns. No API key, login, or session tokens required.
- ✅ Whole market or a quick sample — set
maxPagesfrom 1 to 10 per city + category combo (~15–20 events per page). - ✅ Fast by default — built with async
httpxfor non-blocking requests, with retry-and-backoff on failed pages. - ✅ Ticket-availability aware — optionally return only events that currently have tickets listed on Tixel.
- ✅ Never returns messy nulls — every missing field falls back to
"N/A"instead ofnull, so the dataset stays clean and consistent. - ✅ Deduplicated results — events are deduplicated by URL, so re-scraped pagination never produces duplicate rows.
- ✅ Deliver anywhere via MCP connectors — push scraped events straight into Notion, Slack, Airtable, Google Sheets, and more.
- ✅ Export-ready — JSON, CSV, Excel, JSONL, or XML, or direct API integration for your own pipeline.
📝 Use Cases & ROI
| Use Case | Time Saved | What You Get |
|---|---|---|
| Event lead generation | 3–6 hrs/market | Every upcoming event in a city, ready for outreach, sponsorship, or hospitality pitches |
| Market & demand research | 2–5 hrs/report | Ticket demand and pricing trends across cities and categories |
| Event aggregation | 4–8 hrs/build | Structured data to power curated listings, calendars, or discovery sites |
| Pricing intelligence | 2–4 hrs/scan | Resale ticket prices tracked across markets and event types |
| Marketing targeting | 3–5 hrs/campaign | Audiences segmented by event interest, city, and category |
🚀 How to Use
- Open the Actor on Apify.
- Select one or more Cities from the dropdown (e.g. Melbourne, London, New York).
- Select one or more Categories — All, Music, Festival, Sports, Theatre, Comedy, or Food & Drink.
- Set Max Pages per city + category combo (1–10, ~15–20 events per page).
- (Optional) Toggle Only With Tickets to skip events with no tickets currently listed.
- (Optional) Pick an MCP connector to deliver scraped events into Notion, Slack, Airtable, etc.
- Click Run — results stream into the dataset as each page is scraped.
- Download as JSON, CSV, Excel, JSONL, or XML — or let the connector push them into your tools automatically.
💡 First time with a connector? Run once with a connector selected — the run log prints the connector's available tool names, so you know what to put in Connector tool name.
💰 Free vs. paid plans: on the free plan, results are capped at 2 events per city + category combo with no charge. On a paid plan, results are unlimited and each scraped event is billed via
Actor.charge().
🧩 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
cities | Array | ✔️ Yes | One or more cities to scrape (see supported cities below). Default: ["Melbourne"]. |
categories | Array | ✔️ Yes | Event categories: all, music, festival, sports, theatre, comedy, food. Default: ["all"]. |
maxPages | Integer | Optional | Max pages to scrape per city + category combo (1–10). Each page has ~15–20 events. Default: 5. |
onlyWithTickets | Boolean | Optional | If true, only returns events with tickets currently available. Default: false. |
mcpConnector | Connector | Optional | Deliver scraped events into a connector you've authorized (Notion, Slack, Airtable, Google Sheets, …). |
deliveryMode | Enum | Optional | summary (one call with the full event list), chunked (split a large list across multiple calls), perEvent (one call per event), or none. Default: summary. |
mcpTool | String | Optional | Tool to call on the connector (e.g. create_page, send_message, append_row). |
mcpArguments | Object | Optional | Arguments for the tool; string values support {placeholders}. |
mcpMessageTemplate | String | Optional | Template rendered per delivery, exposed as the {message} placeholder. |
[!TIP] Use
"categories": ["all"]to capture every event type in one run. Combine multiple cities with"onlyWithTickets": truefor targeted lead generation across markets.
Example — Scrape multiple cities and categories
{"cities": ["Melbourne", "Sydney", "London"],"categories": ["music", "comedy"],"maxPages": 5,"onlyWithTickets": true}
Example — Scrape and post each event to Slack
{"cities": ["Melbourne"],"categories": ["all"],"maxPages": 5,"mcpConnector": "<your-slack-connector>","deliveryMode": "perEvent","mcpTool": "send_message","mcpArguments": { "channel": "#tixel-events", "text": "{message}" },"mcpMessageTemplate": "{name} at {venue}, {city} on {date} — from {currency} {priceFrom} ({ticketsAvailable} tickets) — {url}"}
Example — Scrape and log a summary into Notion
{"cities": ["Melbourne", "Sydney"],"categories": ["music", "festival"],"maxPages": 5,"mcpConnector": "<your-notion-connector>","deliveryMode": "chunked","mcpTool": "create_page","mcpArguments": {"parent": { "page_id": "<your-page-id>" },"pages": [{"properties": { "title": "Tixel events — part {part}/{partCount}" },"content": "{eventList}"}]}}
Placeholders available in arguments / template
Summary & chunked modes: {totalEvents} · {cities} · {categories} · {eventList} · {message}
Chunked mode adds: {part} · {partCount}
Per-event mode: {name} · {venue} · {date} · {city} · {category} · {url} · {imageUrl} · {ticketsAvailable} · {hasTickets} · {priceFrom} · {currency} · {scrapedAt} · {sourcePage} · {message}
📦 Output Fields
| Field | Description |
|---|---|
name | Event name |
venue | Venue name |
date | Event date as shown on site |
city | City configured in input |
category | Event category (music, comedy, sports, etc.) |
url | Direct link to the event on Tixel |
imageUrl | Event poster / thumbnail URL |
ticketsAvailable | Number of tickets currently listed |
hasTickets | true / false |
priceFrom | Lowest listed ticket price |
currency | AUD / NZD / GBP / USD / EUR / JPY |
scrapedAt | UTC timestamp of when the event was scraped |
sourcePage | Page number the event was found on |
Example Output
{"name": "Sleaford Mods","venue": "Forum Melbourne","date": "Tuesday 14 April 2026","city": "Melbourne","category": "music","url": "https://tixel.com/au/music-tickets/2026/04/14/sleaford-mods","imageUrl": "https://event-images.tixel.com/cdn-cgi/image/w=700/media/images/abc123.jpg","ticketsAvailable": 79,"hasTickets": true,"priceFrom": 23.0,"currency": "AUD","scrapedAt": "2026-04-14T06:45:00Z","sourcePage": 1}
You can download the dataset in various formats such as JSON, HTML, CSV, Excel, or XML.
🗺️ Supported Cities & Categories
| Country | Cities |
|---|---|
| 🇦🇺 Australia | Adelaide, Ballarat, Brisbane, Cairns, Canberra, Darwin, Geelong, Gold Coast, Hobart, Ipswich, Melbourne, Newcastle, Perth, Sydney, Toowoomba, Townsville, Wollongong |
| 🇬🇧 UK | Birmingham, Bournemouth, Brighton, Bristol, Cardiff, Coventry, Edinburgh, Glasgow, Leeds, Leicester, Liverpool, London, Manchester, Newcastle Upon Tyne, Nottingham, Sheffield, Wolverhampton |
| 🇺🇸 USA | Atlanta, Austin, Baltimore, Boston, Charlotte, Chicago, Columbus, Dallas, Denver, Detroit, El Paso, Fort Worth, Houston, Indianapolis, Jacksonville, Las Vegas, Los Angeles, Louisville, Memphis, Miami, Nashville, New York, Oklahoma City, Philadelphia, Phoenix, Portland, San Antonio, San Diego, San Francisco, San Jose, Seattle, Washington |
| 🇳🇿 New Zealand | Auckland, Christchurch, Wellington |
| 🇳🇱 Netherlands | Amsterdam, Rotterdam |
| 🇯🇵 Japan | Nagano |
| Category value | Description |
|---|---|
all | All categories |
music | Concerts & music |
festival | Festivals |
sports | Sports events |
theatre | Theatre |
comedy | Comedy shows |
food | Food & drink |
🔌 Integrations & Delivery
Deliver scraped events into any MCP connector you've authorized in Apify — no glue code, no webhooks:
- Notion — log a running page of events (use
chunkedmode for large event lists so Notion never times out) - Slack / Discord — post events or summaries to a channel as they're found
- Airtable / Google Sheets — append a structured row per event
- Jira / Linear / GitHub — open a follow-up task per event (e.g. sponsorship outreach)
- …or any other MCP-compatible connector
Credentials stay private — delivery runs through the Apify MCP Proxy, so the Actor never sees your connector tokens. You can also consume the dataset directly via the Apify API, or wire it into n8n, Zapier, and Make.
⚙️ Delivery modes:
summarysends the full event list in one call,chunkedsplits a large list across a few calls/pages, andperEventsends one call per scraped event. MCP delivery only runs on the Apify platform and never affects what's saved to the dataset.
🔧 Connector Tool Arguments Reference
Ready-to-paste mcpTool + mcpArguments combos for common connectors. Since template placeholders are always substituted as text, prefer text/rich-text fields over number fields for {priceFrom} / {ticketsAvailable} unless your connector coerces types automatically.
Slack — mcpTool: "send_message", mode perEvent or summary
{ "channel": "#tixel-events", "text": "{message}" }
Discord — mcpTool: "send_message", mode perEvent or summary
{ "channel_id": "<your-channel-id>", "content": "{message}" }
Notion — mcpTool: "create_page", mode perEvent (one page per event)
{"parent": { "database_id": "<your-database-id>" },"properties": {"Name": { "title": [{ "text": { "content": "{name}" } }] },"Venue": { "rich_text": [{ "text": { "content": "{venue}" } }] },"City": { "rich_text": [{ "text": { "content": "{city}" } }] },"Category": { "rich_text": [{ "text": { "content": "{category}" } }] },"Date": { "rich_text": [{ "text": { "content": "{date}" } }] },"Price": { "rich_text": [{ "text": { "content": "{currency} {priceFrom}" } }] },"Tickets": { "rich_text": [{ "text": { "content": "{ticketsAvailable}" } }] },"URL": { "url": "{url}" }}}
Notion — mcpTool: "create_page", mode chunked (one page per batch of events)
{"parent": { "page_id": "<your-page-id>" },"properties": { "title": [{ "text": { "content": "Tixel events — part {part}/{partCount}" } }] },"children": [{ "object": "block", "type": "paragraph", "paragraph": { "rich_text": [{ "text": { "content": "{eventList}" } }] } }]}
Airtable — mcpTool: "create_record", mode perEvent
{"table": "Tixel Events","fields": {"Name": "{name}","Venue": "{venue}","City": "{city}","Category": "{category}","Date": "{date}","Tickets Available": "{ticketsAvailable}","Price From": "{priceFrom}","Currency": "{currency}","URL": "{url}"}}
Google Sheets — mcpTool: "append_row", mode perEvent
{"spreadsheetId": "<your-spreadsheet-id>","range": "Sheet1!A:G","values": [["{name}", "{venue}", "{city}", "{category}", "{date}", "{ticketsAvailable}", "{priceFrom} {currency}", "{url}"]]}
Jira — mcpTool: "create_issue", mode perEvent
{"project": "EVT","issueType": "Task","summary": "Follow up: {name} ({city})","description": "{message}"}
Linear — mcpTool: "create_issue", mode perEvent
{"teamId": "<your-team-id>","title": "Follow up: {name} ({city})","description": "{message}"}
GitHub — mcpTool: "create_issue", mode perEvent
{"owner": "your-org","repo": "event-tracking","title": "{name} — {city}","body": "{message}"}
For the Jira / Linear / GitHub examples above, pair with this mcpMessageTemplate:
{name} at {venue}, {city} on {date} — from {currency} {priceFrom} ({ticketsAvailable} tickets){url}
🛠️ How It Works
my_actor/main.py reads the input, then for each city + category combination:
- Fetches page 1 of the Tixel discover page and reads the pagination footer to find how many pages actually exist.
- Parses each page's HTML with
BeautifulSoup, extracting event name, venue, date, category, tickets, price, and image for every listing, and deduplicates by event URL. - Fetches remaining pages up to
maxPages(or the discovered max, whichever is lower), retrying failed requests with exponential backoff and pausing briefly between pages to stay polite to the server. - Pushes each page's events to the dataset immediately, and — if a connector is configured — delivers the full run's events via MCP once scraping finishes.
Built with: Apify SDK for Python · httpx · BeautifulSoup · MCP
🛠 Running Locally
# Install dependenciespip install -r requirements.txt# Create local input filemkdir -p storage/key_value_stores/defaultecho '{"cities": ["Melbourne"],"categories": ["all"],"maxPages": 2,"onlyWithTickets": false}' > storage/key_value_stores/default/INPUT.json# Run the actorpython -m src.main
🆘 Support
For issues, custom scraping requests, or feature suggestions: Email: bhavin.shah@techforceglobal.com
Need a Custom Pipeline?
Want multi-market batch runs, scheduled refreshes, deeper enrichment, or a full data-warehouse integration?
📅 Book a Free 15-min Consultation
Made with ❤️ by Techforce Specialists in High-Performance Web Scrapers and AI Automation.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Tixel. Tixel® is a trademark of its respective owner; all trademarks are property of their respective owners. The Actor collects only publicly available information (event listings, pricing, and availability shown on public discover pages) and does not log into, or scrape behind the authentication of, any platform. Use the data responsibly and in compliance with applicable laws (including GDPR/CCPA) and Tixel's terms of service.