
Instagram Reel Scraper
scrape.ly/store/echofield/instagram-reel-scraperSocial mediaVideos
1 monthly user

Scrape Resident Advisor (ra.co) events by city, club, artist, promoter or event id: dates, venues with coordinates, full lineups, genres, ticket tiers with prices, promoters, flyers and attendance. No login needed.
Get every event listed on Resident Advisor (ra.co), the go-to calendar for electronic music, as clean structured data. Pull a whole city's club calendar, a venue's programme, an artist's tour dates or years of past events, with full lineups, genres, venues with coordinates and live ticket prices. No login, no cookies, results in seconds.
https://ra.co/events/uk/london, https://ra.co/clubs/5031 or https://ra.co/dj/upsammy. Or type city names such as Berlin.| Field | What it does |
|---|---|
startUrls | ra.co links: cities/areas, countries, clubs, artists, promoters, events or event id ranges |
cities | City names, matched to their RA area ("Berlin", "Portland, US", local names like "München" or "東京" work too) |
maxItems | Maximum events to save across all inputs (default 20, 0 = no limit) |
maxItemsPerInput | Optional cap per URL or city, so one big city does not use up the whole limit |
dateFrom / dateTo | Date range (YYYY-MM-DD). Empty = upcoming events |
genres | Keep events with any of these genres (Techno, House, Drum & Bass, ...) |
ticketedOnly | Only events selling tickets on RA |
picksOnly | Only RA Picks |
{
"startUrls": [
{ "url": "https://ra.co/events/de/berlin" },
{ "url": "https://ra.co/dj/upsammy" }
],
"maxItems": 100,
"genres": ["Techno"],
"dateFrom": "2026-11-01",
"dateTo": "2026-11-30"
}
Supported links:
| Type | Example |
|---|---|
| City / area | https://ra.co/events/nl/amsterdam |
| Country | https://ra.co/events/de/all |
| Club / venue | https://ra.co/clubs/5031 |
| Artist / DJ | https://ra.co/dj/upsammy |
| Promoter | https://ra.co/promoters/73281 |
| Event | https://ra.co/events/2186229 |
| Event id range | https://ra.co/events/2186229-2186250 |
Date filters apply to cities, countries, clubs, artists and promoters. Event ids and id ranges are always returned as they are. City listings follow RA's own calendar, so a multi-day festival that is still running inside your date range is included even if it started a day or two earlier.
One row per event. The table view shows the key columns; every row also carries the full RA event record.
| Field | Description |
|---|---|
id, title, url | RA event id, title and page |
date, startTime, endTime | Local date and times |
venueName, venueAddress, city, country, countryCode, latitude, longitude | Where it happens |
artistNames, artists, lineup | Lineup as names, RA profiles and the raw lineup text |
genreNames, genres | Genres |
ticketPriceFrom, ticketCurrency, tickets, standardTickets | Cheapest RA ticket and all available tiers |
cost, minimumAge, content | Door price text, age limit, description |
interestedCount, attending | RA interest counts |
promoters, promotionalLinks, pick | Promoters, their links, RA Pick blurb |
imageUrl, flyerFront, images | Flyers |
isTicketed, isFestival, hasSecretVenue, datePosted, dateUpdated | Flags and timestamps |
sourceType, sourceUrl | Which input found the event |
{
"id": "2521590",
"title": "Toffler presents J4SCO and friends",
"url": "https://ra.co/events/2521590",
"date": "2026-10-23T00:00:00.000",
"startTime": "2026-10-23T23:00:00.000",
"endTime": "2026-10-24T05:00:00.000",
"venueName": "Toffler",
"venueAddress": "Weena-Zuid 33, 3012 NH, Rotterdam, Netherlands",
"city": "Rotterdam",
"country": "Netherlands",
"countryCode": "NL",
"latitude": 51.923439,
"longitude": 4.474325,
"artistNames": [
"LeBagig",
"Swart"
],
"genreNames": [
"Techno"
],
"imageUrl": "https://images.ra.co/b7b0e6e2269c2dbfa169c445434e047829a4a273.png",
"ticketPriceFrom": null,
"ticketCurrency": null,
"flyerFront": null,
"flyerBack": null,
"content": "23.10 TOFFLER Presents J4SCO and friends\n\nLINE-UP ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ \nJ4SCO (hybrid set)\n11:11 B2B Blue Fractals\nBe...",
"minimumAge": 18,
"cost": "14,50",
"contentUrl": "/events/2521590",
"embargoDate": null,
"interestedCount": 5,
"attending": 5,
"lineup": "J4SCO (hybrid set)\n11:11 B2B Blue Fractals\nBella Stone B2B <artist id=\"151724\">LeBagig</artist>\nMinor Figures\n<artist id=\"7657\">Swart</artist>",
"isTicketed": false,
"isFestival": false,
"isMultiDayEvent": false,
"dateUpdated": "2026-08-26T13:46:50.100Z",
"resaleActive": false,
"datePosted": "2026-08-26T13:46:50.123Z",
"hasSecretVenue": false,
"live": true,
"images": [
{
"id": "2672846",
"filename": "https://images.ra.co/b7b0e6e2269c2dbfa169c445434e047829a4a273.png",
"alt": null,
"type": "FLYERFRONT",
"crop": null
}
],
"venue": {
"id": "9037",
"name": "Toffler",
"address": "Weena-Zuid 33, 3012 NH, Rotterdam, Netherlands",
"contentUrl": "/clubs/9037",
"live": true,
"area": {
"id": "174",
"name": "Rotterdam",
"urlName": "rotterdam",
"country": {
"id": "6",
"name": "Netherlands",
"urlCode": "NL",
"isoCode": "NLD"
}
},
"location": {
"latitude": 51.923439,
"longitude": 4.474325
}
},
"promoters": [],
"artists": [
{
"id": "151724",
"name": "LeBagig",
"contentUrl": "/dj/lebagig",
"urlSafeName": "lebagig"
},
{
"id": "7657",
"name": "Swart",
"contentUrl": "/dj/swart",
"urlSafeName": "swart"
}
],
"pick": null,
"promotionalLinks": [],
"tracking": [],
"admin": {
"id": "464426",
"username": "Toffler"
},
"tickets": [],
"standardTickets": [],
"playerLinks": [],
"childEvents": [],
"genres": [
{
"id": "5",
"name": "Techno",
"slug": "techno"
}
],
"setTimes": {
"id": null,
"lineup": null,
"status": "NONE"
},
"area": {
"id": "174",
"name": "Rotterdam",
"urlName": "rotterdam",
"ianaTimeZone": "Europe/Amsterdam",
"country": {
"id": "6",
"name": "Netherlands",
"urlCode": "NL",
"isoCode": "NLD"
}
},
"ticketingSystem": "LEGACY",
"presaleStatus": null,
"sourceType": "area",
"sourceUrl": "https://ra.co/events/nl/rotterdam"
}
You pay $2.50 per 1,000 events ($0.0025 per event), plus a small amount of platform usage (compute and proxy) for the run.
Example: 1,000 London events cost about $2.50 in total: $2.50 in event fees plus $0.0013 of platform usage (measured on a real 1,000-event run).
Is it legal to scrape Resident Advisor? The scraper only reads public event pages that anyone can open without an account. Check RA's terms and your local laws for how you use the data, especially personal data.
Do I need an RA account, cookies or my own proxy? No. It works without login. The default datacenter proxy is included and works well.
How many events can I get? As many as RA lists. A big city like London has a few thousand upcoming events, and archives go back years when you set a date range. Use Max events to cap a run.
Why are some fields empty? RA only fills what the promoter entered. Ticket tiers exist only for events sold through RA, flyers and set times are optional, and secret venues hide the venue until it is revealed.
Can I schedule it or use it from my code? Yes. Schedule runs in the console (for example every morning for your city) and read the dataset over the API or with webhooks.
I was using another RA scraper. Is the input compatible?
Yes, startUrls with { "url": ... } objects, maxItems, dateRangeFrom and dateRangeTo are accepted as they are.
promotionalLinks.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalResident Advisor URLs
Paste ra.co links. City/area pages (ra.co/events/uk/london), clubs (ra.co/clubs/5031), artists (ra.co/dj/upsammy), promoters (ra.co/promoters/73281), single events (ra.co/events/2186229) or an event id range (ra.co/events/2186229-2186250). Country pages (ra.co/events/de/all) and old residentadvisor.net links work too.
citiesarrayOptionalCities
Or just type city names, e.g. 'Berlin', 'New York', 'Amsterdam'. Add a country to pick the right one ('Portland, US'). Each city is matched to its Resident Advisor area.
maxItemsintegerOptionaldefault 20Max events
Maximum number of events to save across all inputs. Set 0 for no limit.
maxItemsPerInputintegerOptionalMax events per URL or city
Optional cap per URL or city, so one big city does not use up the whole limit. Empty or 0 means no per-input cap.
Leave both dates empty for upcoming events. Set dates to get past events or a specific period.
dateFromstringOptionalFrom date
Only events on or after this day (YYYY-MM-DD). Set it in the past to get past events. Empty means from today (or no lower bound when only 'To date' is set).
dateTostringOptionalTo date
Only events on or before this day (YYYY-MM-DD).
genresarrayOptionalGenres
Only events tagged with at least one of these genres, e.g. 'Techno', 'House', 'Drum & Bass', 'Disco', 'Afro House'.
ticketedOnlybooleanOptionaldefault falseOnly events with RA tickets
Keep only events that sell tickets on Resident Advisor (ticket tiers and prices are then filled).
picksOnlybooleanOptionaldefault falseOnly RA Picks
Keep only events chosen as RA Picks by the editors.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy
Datacenter proxies work well for Resident Advisor.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | null | RA event id |
| title | string | null | Event title |
| url | string | null | Event page on ra.co |
| date | string | null | Event date (local) |
| startTime | string | null | Start time (local, ISO) |
| endTime | string | null | End time (local, ISO) |
| venueName | string | null | Venue name |
| venueAddress | string | null | Venue address |
| city | string | null | City / RA area |
| country | string | null | Country |
| countryCode | string | null | Country code (RA) |
| latitude | number | null | Venue latitude |
| longitude | number | null | Venue longitude |
| artistNames | array | null | Artists on the lineup |
| genreNames | array | null | Genres |
| imageUrl | string | null | Flyer image |
| ticketPriceFrom | number | null | Cheapest RA ticket price (incl. fees) |
| ticketCurrency | string | null | Ticket currency |
| flyerFront | string | null | Front flyer URL |
| flyerBack | string | null | Back flyer URL |
| content | string | null | Event description |
| minimumAge | number | null | Minimum age |
| cost | string | null | Door / ticket cost text |
| contentUrl | string | null | Relative event path |
| embargoDate | string | null | Embargo date |
| interestedCount | number | null | People interested |
| attending | number | null | People attending |
| lineup | string | null | Raw lineup text with artist tags |
| isTicketed | boolean | null | Sells tickets on RA |
| isFestival | boolean | null | Festival |
| isMultiDayEvent | boolean | null | Multi-day event |
| dateUpdated | string | null | Last updated (UTC) |
| resaleActive | boolean | null | Ticket resale active |
| datePosted | string | null | Posted (UTC) |
| hasSecretVenue | boolean | null | Secret venue |
| live | boolean | null | Live on RA |
| images | array | null | Images |
| venue | object | null | Venue with area, country and coordinates |
| promoters | array | null | Promoters |
| artists | array | null | Artists with RA profile links |
| pick | object | null | RA Pick with editor blurb |
| promotionalLinks | array | null | Promoter links |
| tracking | array | null | Tracking pixels |
| admin | object | null | Event admin user |
| tickets | array | null | Available ticket tiers with prices |
| standardTickets | array | null | Standard ticket tiers |
| playerLinks | array | null | Music player links |
| childEvents | array | null | Child events |
| genres | array | null | Genres with slugs |
| setTimes | object | null | Set times |
| area | object | null | RA area with time zone |
| ticketingSystem | string | null | Ticketing system |
| presaleStatus | string | null | Presale status |
| sourceType | string | null | Input type: area, venue, artist, promoter or event |
| sourceUrl | string | null | Input that found this event |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Event | One saved Resident Advisor event. | $0.0025 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('echofield/resident-advisor-scraper').call({
"startUrls": [
{
"url": "https://ra.co/events/uk/london"
}
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run echofield/resident-advisor-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=echofield/resident-advisor-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Type a city name and keep only events tagged Techno, with lineups, venues and ticket prices.
Paste a city page link from ra.co to get its upcoming club calendar.
Paste a club link to get the venue's upcoming programme with full lineups.
Artist link plus a date range: past events where the artist played (here upsammy in 2023).
Only the events Resident Advisor's editors picked in New York City.
Only events that sell tickets on Resident Advisor, with every ticket tier and price.
Fetch events by id: a single event link or a whole id range such as 2186229-2186240.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.