Operated by Sourcelane✓ verified
Scrape upcoming Eventbrite and Meetup events for any city and keyword with dates, venues, prices, attendee counts and organizer contacts.
A location-and-keyword driven events scraper that searches Eventbrite and Meetup in a single run to produce normalized, deduplicated event records for a city and date range. Outputs per-event metadata including title/link/description and source, timing as timezone-aware ISO-8601 start/end timestamps, online/free flags and ticket price range with currency, venue details and geolocation (address, city, region, country, latitude/longitude), attendance and capacity figures (RSVPs or ticket limits), category and topic tags, image link, and organizer identity with follower/member counts and optional total events hosted; each record also indicates which keyword matched and when it was scraped. Technical capabilities include combined scraping of two sites without login or API keys, date-range and online/free filtering, per-site result limits, de-duplication across keywords per site, and an option to perform extra requests to fetch additional organizer details.
Verified Sep 28, 3:55 AM
$0.005
per event
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Event lead generation for vendors (venues, caterers, AV, photographers, sponsors) to find upcoming events by city and date
Organizer outreach to build lists of active organizers and Meetup groups with follower/member counts
Competitor event monitoring for conferences, workshops, and industry meetups
Building local event calendars or neighborhood/topic "what's on" pages and newsletters
Market research on event volume and price distributions by category and city over time
Speaker and partnership scouting to discover meetups and conferences seeking speakers or sponsors
City to search, e.g.
Optional search terms, one per line (e.g.
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"eventbrite-meetup-events-scraper","params":{"location":"San Francisco, CA"},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
location | string | required | City to search, e.g. 'San Francisco, CA', 'London', 'Sydney, Australia'. Resolved separately on each site; the best match is used. |
keywords | array | optional | Optional search terms, one per line (e.g. 'startup', 'yoga', 'wine tasting'). Each keyword is searched separately and results are de-duplicated. Leave empty to list all upcoming events in the location. |
dateRange | string | optional | Only return events starting inside this window (evaluated in the location's local time zone). |
includeEventbrite | boolean | optional | Search Eventbrite for matching events. |
includeMeetup | boolean | optional | Search Meetup for matching events. |
onlineOnly | boolean | optional | Return only virtual events. Note: Eventbrite online events are global (not tied to the location); Meetup online events are those promoted to the location. |
freeOnly | boolean | optional | Return only events with free admission. |
maxItemsPerSource | integer | optional | Maximum events to return from each site across all keywords. 0 = keep paginating until the site runs out of results (Eventbrite stops at about 1,000 per keyword) or the run times out. |
fetchOrganizerDetails | boolean | optional | Open each organizer / group page once to fill in total events hosted and exact follower or member counts. Adds one extra request per unique organizer. |
Each result contains
| Field | Type | Description |
|---|---|---|
source | string | Source |
eventId | string | Event Id |
url | string | Url |
title | string | Title |
description | string | Description |
startAt | string | Start At |
endAt | string | End At |
timezone | string | Timezone |
isOnline | boolean | Is Online |
isFree | boolean | Is Free |
minPrice | integer | Min Price |
maxPrice | number | Max Price |
currency | string | — |
venueName | null | — |
address | null | — |
city | null | — |
region | null | — |
country | null | — |
latitude | null | — |
longitude | null | — |
attendeeCount | null | — |
capacity | null | — |
category | string | — |
tags | array | — |
imageUrl | string | — |
organizerName | string | — |
organizerUrl | string | — |
organizerId | string | — |
organizerFollowers | integer | — |
organizerEventCount | null | — |
keyword | string | — |
scrapedAt | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “What has been reported about solid-state batteries in the last week? Cite sources.”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"eventbrite-meetup-events-scraper","params":{"location":"San Francisco, CA"},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "eventbrite-meetup-events-scraper",
"params": {"location":"San Francisco, CA"},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…