Eventbrite's search API is gone. Here's how to get Eventbrite, Meetup and Luma events in one list A developer built an Apify scraper that aggregates event listings from Eventbrite, Meetup and Luma into a single normalized format, working around Eventbrite's 2020 shutdown of its public /v3/events/search endpoint and Luma's lack of any public search API. The actor returns unified fields such as title, dates, venue, price and attendee count, and the developer demonstrated pairing it with an AI model to auto-generate a weekly local events newsletter. Pricing is listed at $5 per 1,000 events, putting a weekly 100-event newsletter at roughly $2 a month. If you have tried to build anything with event data, you probably found this out the hard way: Eventbrite shut down its public event search endpoint /v3/events/search back in 2020. You can still read events you organize, but you can't search "all tech events in London next month" anymore. Meetup moved to a GraphQL API that needs an OAuth app, and Luma, where a lot of AI and startup events live now, has no public search API at all. So if you want a simple list of upcoming events in a city, you're stuck stitching three very different sites together. This post shows a shortcut, and then one fun thing to build with it: a weekly local events newsletter written by AI. I'll use the Eventbrite, Meetup & Luma Events Scraper https://apify.com/trendcraft/events-scraper on Apify. Disclosure: I built it, for exactly this problem. No API keys or logins needed. London , Berlin , San Francisco . AI , startup , python , design ... 50 . Or as JSON input: { "location": "London", "query": "AI", "sources": "eventbrite", "luma", "meetup" , "startDate": "2026-11-01", "endDate": "2026-11-07", "maxResultsPerSource": 50 } Every event comes back in the same format , whichever site it came from: title , url , description , startDate , endDate , timezone venueName , address , city , country , latitude , longitude isOnline , isFree , priceMin , priceMax , currency , soldOut organizerName , organizerUrl , attendeeCount , categories , imageUrl , source Fields a site doesn't publish are null Luma's public feed has no description, Eventbrite doesn't show attendee counts . Download as CSV, Excel or JSON from the Output tab. There's also an Online events only switch Eventbrite and Meetup if you want virtual events instead of a city. Here is the whole thing in Python: fetch next week's events, then ask an AI model to write a short newsletter. python from datetime import date, timedelta from apify client import ApifyClient client = ApifyClient "YOUR APIFY TOKEN" today = date.today run = client.actor "trendcraft/events-scraper" .call run input={ "location": "London", "query": "AI", "startDate": today.isoformat , "endDate": today + timedelta days=7 .isoformat , "maxResultsPerSource": 50, } events = list client.dataset run "defaultDatasetId" .iterate items lines = f'- {e "title" } | {e "startDate" } | {e.get "venueName" or "Online"} | ' f'{"free" if e.get "isFree" else "paid"} | {e "url" }' for e in events prompt = "Write a short, friendly weekly newsletter of AI events in London. " "Pick the 10 most interesting, group them by day, one sentence each, keep the links. " "Only use events from this list:\n" + "\n".join lines print prompt paste into Claude or ChatGPT, or call their API here Add a schedule on the Actor: Actions → Save as a new task , then Schedules , and you have the data side of a newsletter that refreshes itself every week. You pay per event saved; the current price is on the Actor's Pricing tab. At the time of writing it is $5 per 1,000 events, so a weekly 100-event newsletter costs about $2 a month, inside the free monthly credit. Good to know: Missing a site or a field? Open an issue on the Actor's Issues tab. This post was drafted with AI assistance; input names and output fields were checked against the Actor itself.