Resident Advisor Events Scraper
Pricing
Pay per event
Resident Advisor Events Scraper
Discover Resident Advisor events by area and date range with lineups, venues, genres, and popularity data.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Export public electronic-music event listings from Resident Advisor by city area and date range.
The Actor returns structured event IDs, dates, times, lineups, venues, genres, images, ticketed status, and public attending counts. It uses Resident Advisor's public first-party GraphQL surface, so no login, API key, browser, or proxy subscription is required.
What does Resident Advisor Events Scraper do?
Resident Advisor Events Scraper discovers events from one or more RA areas and saves one normalized dataset row per unique event.
It can:
- discover upcoming events from nine convenient city presets;
- query any other RA area by its numeric area ID;
- cover a custom date range of up to 93 days;
- filter results by exact RA genre names;
- paginate through large city calendars;
- combine several cities while deduplicating event IDs;
- stop at a predictable
maxItemslimit; - produce JSON, CSV, Excel, XML, or other Apify dataset exports.
The Actor targets ra.co only. It does not invent ticket prices, scrape secondary ticket sites, or claim that every local event appears on Resident Advisor.
Who is it for?
Nightlife and travel apps
Build fresh city guides and electronic-music discovery feeds without manually copying RA listings.
Promoters and booking teams
Monitor event calendars, venue activity, genres, and lineups across selected markets.
Artist and venue researchers
Create repeatable datasets connecting public events with RA artist and venue identifiers.
Data and editorial teams
Schedule a daily or weekly Actor run, export only new date windows, and feed normalized records into a database, spreadsheet, or newsroom workflow.
Why use this Actor?
- Direct structured data: the Actor reads RA's public GraphQL response instead of rendering protected HTML pages.
- Useful output: artists, venue, genres, image, popularity, and timing are normalized in one row.
- Bounded scope: date range, item count, retries, and request page size have explicit limits.
- No automatic residential fallback: runs avoid an unmeasured proxy mode and its unpredictable transfer cost.
- Integration ready: the default Apify dataset works with API clients, webhooks, Make, Zapier, Google Sheets, and cloud storage exports.
What Resident Advisor data can I extract?
| Field | Meaning |
|---|---|
eventId | Stable Resident Advisor event identifier |
listingDate | Date under which RA lists the event |
title | Public event title |
date | RA event date |
startTime, endTime | Scheduled timing when RA provides it |
url | Canonical ra.co/events/... URL |
imageUrl | Flyer or listing image URL when available |
isTicketed | Whether RA marks the event as ticketed |
attending | Public RA attending count when available |
artists | Artist IDs, names, and RA profile URLs |
venue | Venue ID, name, and RA club URL |
genres | RA genre IDs and names |
areaId | RA area used for discovery |
scrapedAt | UTC normalization timestamp |
Fields that RA omits are returned as null or empty arrays, depending on the field type.
How to scrape Resident Advisor events
- Open the Actor input page.
- Select one or more
areas, such as London or Berlin. - Optionally set
startDateandendDateinYYYY-MM-DDformat. - Optionally add genre names such as
TechnoorHouse. - Set a suitable
maxItemslimit. - Start the run.
- Open the Events dataset view and export the records in your preferred format.
The default input selects London, searches today through the next 14 days, and saves up to 100 events.
Input parameters
| Input | Type | Default | Description |
|---|---|---|---|
areas | string array | ["london"] | City presets: Amsterdam, Barcelona, Berlin, Lisbon, London, Melbourne, Paris, Sydney, or Tokyo |
areaIds | integer array | none | Other numeric RA area IDs, combined with presets |
startDate | string | today | First listing date in YYYY-MM-DD format |
endDate | string | start + 14 days | Last listing date; range cannot exceed 93 days |
genres | string array | none | Exact, case-insensitive RA genre names |
maxItems | integer | 100 | Maximum unique matching events, from 1 to 5,000 |
To use only custom IDs, send an empty areas array:
{"areas": [],"areaIds": [13],"maxItems": 100}
Input examples
Upcoming London events
{"areas": ["london"],"maxItems": 100}
Berlin techno listings
{"areas": ["berlin"],"genres": ["Techno"],"maxItems": 50}
Multi-city feed
{"areas": ["london", "berlin", "amsterdam", "paris", "lisbon"],"maxItems": 1000}
Output example
A real run produces rows with this shape:
{"eventId": "2331574","listingDate": "2026-07-25T00:00:00.000","title": "The Cause FM: New Frequency","date": "2026-07-25T00:00:00.000","startTime": "2026-07-25T14:00:00.000","endTime": "2026-07-26T04:00:00.000","url": "https://ra.co/events/2331574","imageUrl": "https://images.ra.co/526755cd0f4718e3474f3c277c3590eefd989f07.jpg","isTicketed": true,"attending": 3501,"artists": [{"id": "93717","name": "Cousin","url": "https://ra.co/dj/cousin"}],"venue": {"id": "198121","name": "The Cause","url": "https://ra.co/clubs/198121"},"genres": [{"id": "39","name": "Club"}],"areaId": 13,"scrapedAt": "2026-07-25T16:06:36.210Z"}
Artist arrays can contain the full public lineup. Use dataset field selection when you only need summary columns.
How much does it cost to scrape Resident Advisor events?
The Actor uses pay-per-event pricing:
- one Start charge of $0.005 per run;
- one Item processed charge for every saved event;
- no item charge for duplicates, filtered-out rows, empty results, or failed records.
Current event prices decrease by Apify plan tier:
| Tier | Price per saved event |
|---|---|
| Free | $0.000041071 |
| Bronze | $0.000035714 |
| Silver | $0.000027857 |
| Gold | $0.000021429 |
| Platinum | $0.000014286 |
| Diamond | $0.000010000 |
At the Free tier, 100 saved events cost about $0.0091 including the start charge. A 1,000-event run costs about $0.0461. Genre filters can require more source pages, but billing remains based on saved events, not fetched pages.
Apify compute usage is included in pay-per-event billing; users are not separately charged by this Actor for a proxy because it does not use one.
Pagination, filters, and deduplication
RA returns listing pages of up to 50 rows. The Actor requests pages sequentially for each area and stops when it reaches the source total, receives a short page, or saves maxItems.
Deduplication uses eventId across all requested areas. If the same event appears in more than one selected area, the default dataset contains it once.
Genre filtering is client-side because RA's listing query returns source genre context. A filter matches an exact genre name without case sensitivity. An event with no matching RA genre is skipped and not charged as an item.
Scheduled monitoring workflow
For a repeat feed:
- choose stable area presets or IDs;
- run daily with a short forward-looking date window;
- use
eventIdas the destination database key; - upsert records so attending counts and lineups can refresh;
- send the dataset through an Apify webhook or integration;
- retain your own snapshots if historical changes matter.
This Actor does not maintain cross-run history. Each run returns the current public response for its input.
Export and integration options
From the dataset page you can export JSON, JSONL, CSV, Excel, XML, RSS, or HTML.
Common workflows include:
- a scheduled city-events feed in Google Sheets;
- venue and artist enrichment in a CRM;
- a warehouse table keyed by
eventId; - editorial alerts for selected genres;
- Make or Zapier automations triggered after a run;
- custom apps that call the Apify API and read the default dataset.
Run from the Apify API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~resident-advisor-events-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"areas":["london"],"maxItems":100}'
For production systems, send the token in an authorization header rather than a URL when your client supports it.
Run from JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/resident-advisor-events-scraper').call({areas: ['berlin'],genres: ['Techno'],maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run from Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation-lab/resident-advisor-events-scraper").call(run_input={"areas": ["amsterdam"], "maxItems": 100})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with Apify MCP
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/resident-advisor-events-scraper"
Claude Desktop, Cursor, and VS Code use the same actor-scoped MCP URL. Add this JSON in each client's MCP server settings:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/resident-advisor-events-scraper"}}}
Example prompts:
- “Get up to 100 upcoming Resident Advisor events in London.”
- “Create a Berlin techno events dataset from Resident Advisor.”
- “Collect RA listings for London, Paris, and Amsterdam for my city guide.”
Reliability and anti-bot behavior
The normal RA HTML site can show a DataDome challenge. This Actor does not scrape that HTML route. It calls the structured first-party GraphQL endpoint with ordinary browser-origin headers.
Requests retry transient network errors, HTTP 429 responses, and temporary server errors up to three times with backoff. Stable client errors, GraphQL errors, non-JSON challenge responses, and unexpected schemas fail the run instead of returning a misleading empty success.
There is no hidden browser or residential-proxy fallback. If RA changes or protects its GraphQL schema, the Actor will need an update.
Limits and responsible use
- Date ranges are limited to 93 days per run.
- Each run saves at most 5,000 events.
- Area IDs are controlled by Resident Advisor and can change.
- Attending counts, lineups, images, genres, and times reflect RA's current public data and may be missing or edited.
- An empty dataset is valid when the selected area, dates, and genres have no matching public listings.
- The Actor does not buy tickets or access account-only information.
Use reasonable schedules and item limits. Avoid repeatedly collecting unchanged large date ranges when an incremental workflow meets your needs.
Legal and ethical use
This Actor extracts publicly available event information. You are responsible for ensuring that your use complies with Resident Advisor's terms, applicable laws, database rights, copyright, privacy obligations, and your downstream platform's policies.
Do not use the data for harassment, unlawful profiling, spam, or deceptive resale. Attribute sources where appropriate, avoid republishing protected images or editorial material without permission, and honor valid deletion or correction requests in your own systems.
This documentation is operational guidance, not legal advice.
Troubleshooting
The run says an area preset is unsupported
Use one of the schema's listed presets. For another market, provide the numeric RA area in areaIds and set areas to [] if you do not also want London.
The date input fails
Use a real calendar date in YYYY-MM-DD format. Ensure endDate is not before startDate and that the range is no longer than 93 days.
The dataset is empty
Check whether RA currently lists events for that area and date range. Remove genre filters to distinguish a naturally empty source result from an overly narrow filter.
The run reports a non-JSON response
RA may be challenging or temporarily blocking the endpoint. Retry later. Repeated automatic retries or proxy rotation are intentionally avoided for deterministic cost and source safety.
Related Automation Lab actors
- Meetup Scraper for broader community event discovery.
- Eventbrite Scraper for public Eventbrite listings and organizer workflows.
These sources complement Resident Advisor; they do not provide identical coverage or identifiers.
FAQ
Does this Actor require a Resident Advisor account?
No. It uses public event data and requires no RA login, cookie, or private API token.
Does it use a browser or proxy?
No. Version 0.1 uses direct HTTPS GraphQL requests. This keeps memory and transfer use low.
Can I search any city?
The input includes nine presets. For other RA markets, use the numeric areaIds input.
Can I scrape one event URL?
Not in version 0.1. This Actor is designed for area-and-date discovery. It returns canonical URLs for every discovered event.
Are ticket prices included?
No. The output states whether RA marks an event as ticketed, but it does not promise price or inventory data.
Are the results real time?
Results reflect the public RA response at run time. They are not guaranteed to capture edits that happen after the run.
How do I avoid duplicate records across scheduled runs?
Use eventId as an upsert key in your destination. The Actor deduplicates within a run but does not persist cross-run state.
Can I request more than 5,000 events?
Split the work into smaller area or date windows. The limit keeps runs bounded and predictable.