Tixel Event Scraper avatar

Tixel Event Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Tixel Event Scraper

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

Techforce Global

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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 maxPages from 1 to 10 per city + category combo (~15–20 events per page).
  • Fast by default — built with async httpx for 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 of null, 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 CaseTime SavedWhat You Get
Event lead generation3–6 hrs/marketEvery upcoming event in a city, ready for outreach, sponsorship, or hospitality pitches
Market & demand research2–5 hrs/reportTicket demand and pricing trends across cities and categories
Event aggregation4–8 hrs/buildStructured data to power curated listings, calendars, or discovery sites
Pricing intelligence2–4 hrs/scanResale ticket prices tracked across markets and event types
Marketing targeting3–5 hrs/campaignAudiences segmented by event interest, city, and category

🚀 How to Use

  1. Open the Actor on Apify.
  2. Select one or more Cities from the dropdown (e.g. Melbourne, London, New York).
  3. Select one or more Categories — All, Music, Festival, Sports, Theatre, Comedy, or Food & Drink.
  4. Set Max Pages per city + category combo (1–10, ~15–20 events per page).
  5. (Optional) Toggle Only With Tickets to skip events with no tickets currently listed.
  6. (Optional) Pick an MCP connector to deliver scraped events into Notion, Slack, Airtable, etc.
  7. Click Run — results stream into the dataset as each page is scraped.
  8. 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

FieldTypeRequiredDescription
citiesArray✔️ YesOne or more cities to scrape (see supported cities below). Default: ["Melbourne"].
categoriesArray✔️ YesEvent categories: all, music, festival, sports, theatre, comedy, food. Default: ["all"].
maxPagesIntegerOptionalMax pages to scrape per city + category combo (1–10). Each page has ~15–20 events. Default: 5.
onlyWithTicketsBooleanOptionalIf true, only returns events with tickets currently available. Default: false.
mcpConnectorConnectorOptionalDeliver scraped events into a connector you've authorized (Notion, Slack, Airtable, Google Sheets, …).
deliveryModeEnumOptionalsummary (one call with the full event list), chunked (split a large list across multiple calls), perEvent (one call per event), or none. Default: summary.
mcpToolStringOptionalTool to call on the connector (e.g. create_page, send_message, append_row).
mcpArgumentsObjectOptionalArguments for the tool; string values support {placeholders}.
mcpMessageTemplateStringOptionalTemplate 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": true for 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

FieldDescription
nameEvent name
venueVenue name
dateEvent date as shown on site
cityCity configured in input
categoryEvent category (music, comedy, sports, etc.)
urlDirect link to the event on Tixel
imageUrlEvent poster / thumbnail URL
ticketsAvailableNumber of tickets currently listed
hasTicketstrue / false
priceFromLowest listed ticket price
currencyAUD / NZD / GBP / USD / EUR / JPY
scrapedAtUTC timestamp of when the event was scraped
sourcePagePage 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

CountryCities
🇦🇺 AustraliaAdelaide, Ballarat, Brisbane, Cairns, Canberra, Darwin, Geelong, Gold Coast, Hobart, Ipswich, Melbourne, Newcastle, Perth, Sydney, Toowoomba, Townsville, Wollongong
🇬🇧 UKBirmingham, Bournemouth, Brighton, Bristol, Cardiff, Coventry, Edinburgh, Glasgow, Leeds, Leicester, Liverpool, London, Manchester, Newcastle Upon Tyne, Nottingham, Sheffield, Wolverhampton
🇺🇸 USAAtlanta, 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 ZealandAuckland, Christchurch, Wellington
🇳🇱 NetherlandsAmsterdam, Rotterdam
🇯🇵 JapanNagano
Category valueDescription
allAll categories
musicConcerts & music
festivalFestivals
sportsSports events
theatreTheatre
comedyComedy shows
foodFood & 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 chunked mode 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: summary sends the full event list in one call, chunked splits a large list across a few calls/pages, and perEvent sends 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.

SlackmcpTool: "send_message", mode perEvent or summary

{ "channel": "#tixel-events", "text": "{message}" }

DiscordmcpTool: "send_message", mode perEvent or summary

{ "channel_id": "<your-channel-id>", "content": "{message}" }

NotionmcpTool: "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}" }
}
}

NotionmcpTool: "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}" } }] } }
]
}

AirtablemcpTool: "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 SheetsmcpTool: "append_row", mode perEvent

{
"spreadsheetId": "<your-spreadsheet-id>",
"range": "Sheet1!A:G",
"values": [
["{name}", "{venue}", "{city}", "{category}", "{date}", "{ticketsAvailable}", "{priceFrom} {currency}", "{url}"]
]
}

JiramcpTool: "create_issue", mode perEvent

{
"project": "EVT",
"issueType": "Task",
"summary": "Follow up: {name} ({city})",
"description": "{message}"
}

LinearmcpTool: "create_issue", mode perEvent

{
"teamId": "<your-team-id>",
"title": "Follow up: {name} ({city})",
"description": "{message}"
}

GitHubmcpTool: "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:

  1. Fetches page 1 of the Tixel discover page and reads the pagination footer to find how many pages actually exist.
  2. 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.
  3. 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.
  4. 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 dependencies
pip install -r requirements.txt
# Create local input file
mkdir -p storage/key_value_stores/default
echo '{
"cities": ["Melbourne"],
"categories": ["all"],
"maxPages": 2,
"onlyWithTickets": false
}' > storage/key_value_stores/default/INPUT.json
# Run the actor
python -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.