# Resident Advisor Events — Electronic Music & Promoters (`aitorsm/ra-events`) Actor

Get electronic-music events from Resident Advisor (RA.co): title, date, venue, lineup, and ticket status. Every event includes enriched promoter leads — name, website, Instagram/Facebook/Twitter handles, and follower count. Built for music-industry BD, booking, and sponsorship targeting.

- **URL**: https://apify.com/aitorsm/ra-events.md
- **Developed by:** [Aitor Sanchez-Mansilla](https://apify.com/aitorsm) (community)
- **Categories:** Automation, Lead generation, E-commerce
- **Features:** Limited permissions
- **Stats:** 11 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Resident Advisor Events — Electronic Music Lead-Gen with Enriched Promoter Data

[![Resident Advisor Events status](https://apify.com/actor-badge?actor=aitorsm/ra-events)](https://apify.com/aitorsm/ra-events)

Get structured data on **electronic music events** worldwide — every club night, festival, warehouse party, and the promoters behind them — from [Resident Advisor (RA.co)](https://ra.co), the global directory for electronic music events, clubs, festivals, and promoters. This Actor turns those listings into clean event + promoter records. Each event returns:

- Event title, date, start/end time, RA event URL, flyer image
- **Enriched promoter (organizer) data** — name, RA profile URL, website, **social links (Instagram, Facebook, Twitter, SoundCloud)**, follower count, upcoming events count, area, country, blurb, festival flag.
- Full venue record — name, RA venue URL, live-status flag
- Artist lineup (every act on the bill, with their RA artist IDs and names)
- Ticket availability + interested count (RSVP-equivalent for the electronic music crowd)
- Editorial "pick" blurb when RA features the event

### Why this Actor

Resident Advisor is where indie electronic-music promoters publish their entire programming calendar. With `enrichPromoters` on (default), every event comes back as a self-contained lead row — the promoter's name, website, social links, audience size, and activity level — so there's no follow-up enrichment step to run.

### Use Cases

#### 1. **Electronic Music Events Data + Promoter Lead Generation**

Build a structured dataset of electronic music events for any city and pull every active promoter behind them, ranked by `followerCount` + `upcomingEventsCount`. Direct input for ticketing-platform BD (Posh, vivenu, Ticket Fairy, Showpass), event-marketing CRMs (Audience Republic, Bizzabo), and music-industry sponsorship outreach.

#### 2. **Festival + Club Booking Intelligence**

Each event carries the full venue record. Run the Actor for London / Berlin / Barcelona / Tokyo to map the active club ecosystem — useful for booking agents, music-tech vendors, and AV / production companies.

#### 3. **Artist / DJ Tracking**

Each event's `artists[]` array gives every act on the lineup. Useful for talent agencies (which DJs are headlining where), labels (gauging act-deployment frequency), and music-data SaaS.

#### 4. **Cross-Platform Organizer Database**

Combine RA output with Eventbrite, Posh, Luma, and DICE datasets for unified organizer intelligence. RA covers the global electronic-music niche that those platforms don't index deeply.

#### 5. **Sponsorship + Brand Activation Targeting**

Filter for `interestedCount > X` + `isFestival: true` → list of high-traffic festival promoters who'd consider sponsorship deals.

#### 6. **Editorial / Press Picks Aggregation**

The `editorialPickBlurb` field surfaces events RA's editorial team has highlighted — useful for press-coverage tracking, taste-making research, and curation-as-a-service products.

#### 7. **Audience-Size Validation for Underwriting**

Promoter `followerCount` + `upcomingEventsCount` are signals an underwriter can use to assess whether a festival/promoter is a legitimate operator (vs. someone running their first event). Direct input for credit-underwriting products like Ticket Fairy Capital.

> **On the roadmap**: per-event genre filtering, a venue-specific input mode, and event-ID lookup. [Drop me a line](mailto:business@aitorsm.com) if any of these would unblock a use case — it helps me prioritize.

### Cost

This Actor uses **pay-per-event** pricing:

- **$0.03 per event returned**
- **$0.02 per unique promoter enriched** — only charged when `enrichPromoters` is on (the default), and only once per promoter per run (deduplicated across all events). Turn `enrichPromoters` off to pay for events alone.

Apify's platform costs are included, so the total is predictable. A typical city sweep of 250 events with enrichment on costs roughly $7.50 (events) + ~$4 (promoters) ≈ **$11.70 for ~200 enriched promoter leads** with names, websites, social links, and follower counts.

### Input

- **`city`** — name of any major RA-covered city (e.g. `"Los Angeles"`, `"London"`, `"Berlin"`, `"Barcelona"`, `"Tokyo"`, `"Mexico City"`). About 40 major cities resolve instantly by name; others are matched against Resident Advisor's full city list at run time.
- **`areaId`** *(advanced)* — Resident Advisor's numeric area ID. Pass this directly if you have it (overrides `city`). E.g. `23` for LA, `13` for London, `34` for Berlin.
- **`listingDateGte`** — earliest event date to include (YYYY-MM-DD). Defaults to today.
- **`listingDateLte`** — latest event date to include (YYYY-MM-DD). Leave empty for no upper bound.
- **`maxItems`** — global cap on events returned (deduped across all paginated pages). 0 = uncapped.
- **`enrichPromoters`** *(boolean, default `true`)* — when true, each event's promoters\[] array is enriched with full detail (name, website, social links — Instagram, Facebook, Twitter, SoundCloud — follower count, upcoming events count, blurb, area, country, isFestival). Enriched once per unique promoter and cached for the run. **Recommended for lead-generation use cases** — without it you only get promoter IDs.

#### Sample inputs

**Quick city preview**:

```json
{ "city": "Los Angeles", "maxItems": 20 }
```

**Wide lead-gen sweep** (2 months of LA events, enriched promoters):

```json
{
  "city": "Los Angeles",
  "listingDateGte": "2026-06-01",
  "listingDateLte": "2026-07-31",
  "maxItems": 500,
  "enrichPromoters": true
}
```

**Direct area access** (London by ID, skips lookup):

```json
{ "areaId": 13, "maxItems": 100 }
```

### Output

The data is returned in **JSON format**, ideal for direct ingestion into analytics platforms, CRMs, dashboards, or downstream pipelines.

#### Example entry

Input: `{ "city": "Los Angeles", "maxItems": 1, "enrichPromoters": true }`

```json
{
  "eventId": "2384905",
  "listingDate": "2026-05-23",
  "areaId": 23,
  "name": "Into The Woods presents Ben UFO (Extended Set)",
  "date": "2026-05-23T00:00:00.000",
  "startTime": "2026-05-23T22:00:00.000",
  "endTime": "2026-05-24T04:00:00.000",
  "url": "https://ra.co/events/2384905",
  "contentUrl": "/events/2384905",
  "flyerFront": "https://static.ra.co/images/events/flyer/...",
  "isTicketed": true,
  "interestedCount": 423,
  "venueId": "139125",
  "venueName": "Sound Nightclub",
  "venueUrl": "https://ra.co/clubs/139125",
  "venueLive": true,
  "promoterIds": ["65088"],
  "promoterNames": ["Into The Woods LA"],
  "promoters": [
    {
      "id": "65088",
      "name": "Into The Woods LA",
      "url": "https://ra.co/promoters/65088",
      "blurb": "Into The Woods is a music series, label, and collective that bridges the sonic gap between Los Angeles, Detroit and beyond to amplify diverse voices in electronic dance music.",
      "logoUrl": "https://static.ra.co/images/promoter/us-intothewoods.jpg",
      "coverUrl": null,
      "website": "https://www.facebook.com/intothewoodsrecordings/",
      "followerCount": 1076,
      "upcomingEventsCount": 0,
      "isFestival": false,
      "areaName": "Los Angeles",
      "countryName": "United States of America",
      "socialMediaLinks": [
        { "platform": "instagram", "link": "https://instagram.com/intothewoodsla" },
        { "platform": "facebook", "link": "https://facebook.com/intothewoodsrecordings" },
        { "platform": "twitter", "link": "https://twitter.com/intothewoodsla" }
      ],
      "instagram": "https://instagram.com/intothewoodsla",
      "facebook": "https://facebook.com/intothewoodsrecordings",
      "twitter": "https://twitter.com/intothewoodsla",
      "soundcloud": null
    }
  ],
  "artists": [
    { "id": "5294", "name": "Ben UFO" }
  ],
  "ticketsAvailable": 2,
  "editorialPickBlurb": null,
  "imageUrl": "us/2026/5/us-0523-into-the-woods-flyer.jpg",
  "scrapedAt": "2026-05-23T02:18:40.184Z"
}
```

#### Fields

| Field | Purpose |
|---|---|
| `eventId`, `contentUrl`, `url` | RA event identifiers + canonical URL |
| `title`, `date`, `startTime`, `endTime` | Event basics |
| `flyerFront`, `imageUrl` | Event flyer URLs |
| `isTicketed`, `interestedCount`, `ticketsAvailable` | Availability + popularity signals |
| `venueId`, `venueName`, `venueUrl`, `venueLive` | Venue record |
| **`promoters[]`** | When `enrichPromoters=true`: full promoter records with name, website, social links (`socialMediaLinks[]` + flat `instagram`/`facebook`/`twitter`/`soundcloud`), follower count, upcoming events count, blurb, area, country, isFestival. When false: just IDs. |
| `promoterIds[]`, `promoterNames[]` | Convenience flat arrays for filtering / joining |
| `artists[]` | Lineup acts `[{id, name}]` |
| `editorialPickBlurb` | RA editorial-pick blurb when featured |
| `listingDate`, `scrapedAt` | Audit metadata (`scrapedAt` = when the record was retrieved) |

#### Simplified Overview

A simplified view of this data is shown directly in the **Apify console**:

```json
{
  "name": "Into The Woods presents Ben UFO (Extended Set)",
  "flyerFront": "https://static.ra.co/images/events/flyer/...",
  "date": "2026-05-23T00:00:00.000",
  "venueName": "Sound Nightclub",
  "promoterNames": ["Into The Woods LA"],
  "artists": [{"id":"5294","name":"Ben UFO"}],
  "interestedCount": 423,
  "isTicketed": true,
  "url": "https://ra.co/events/2384905"
}
```

***

### How to Use

1. **Pick a city** — type any major RA-covered city (LA, London, Berlin, Barcelona, Tokyo, ~40+ in fast lookup).
2. **Set a date range** — defaults to "today onwards"; tighten for narrower windows.
3. **Keep `enrichPromoters: true`** — that's the lead-gen feature.
4. **Set `maxItems`** — 100 for a quick test, thousands for a city's full forward calendar.
5. **Run the Actor** — check the Overview tab to see events as they arrive.
6. **Export the dataset** — JSON, CSV, Excel, or HTML.

***

Start collecting Resident Advisor events today by running this Actor on Apify.

### FAQ

**What data can I get on electronic music events?**
For every event you get the title, date, start/end time, venue, flyer image, ticketing status, and an "interested" popularity count, plus the full artist lineup. With promoter enrichment on (the default), each event also carries the promoter's name, website, social links (Instagram, Facebook, Twitter, SoundCloud), follower count, upcoming-events count, and area/country — so each row is a self-contained electronic-music-events lead.

**Which cities and countries are covered?**
Any city Resident Advisor lists — London, Berlin, Barcelona, Tokyo, Los Angeles, New York, Mexico City, and dozens more. About 40 major cities resolve instantly by name; others are matched against Resident Advisor's full city list at run time. You can also target a city directly by its numeric area ID.

**Can I limit results to a specific date range?**
Yes. Set `listingDateGte` and `listingDateLte` (YYYY-MM-DD) to bound the window. Leaving the upper bound empty returns everything from the start date onward.

**How do I get promoter contact details and leads, not just events?**
Keep `enrichPromoters` on (the default). Each unique promoter is enriched once per run and deduplicated, giving you website + social handles + audience size — the fields you need for outreach. Turn it off to pay for events alone.

**Can I run it on a schedule?**
Yes. Schedule the Actor (e.g. weekly per city) and diff the output over time to track new promoters, new events, and shifts in audience size. It also works through Apify's integrations for downstream pipelines.

**Why use this Actor?**
It returns the full structured record per event — lineup, venue, ticketing status, popularity count, and enriched promoter contacts — with no API key and no quota: point it at a city or date range and export to JSON, CSV, or Excel.

### Related Actors

Building an event-data set across platforms? These pair naturally with this Actor:

- [Eventbrite Events](https://apify.com/aitorsm/eventbrite) — broad ticketed-event coverage + organizer contact data for event lead generation.
- [Luma Events](https://apify.com/aitorsm/luma-events) — tech, community, and founder events with organizer socials included.
- [Posh Events](https://apify.com/aitorsm/posh-events) — US nightlife events and the promoters / throwers behind them.
- [DICE Events](https://apify.com/aitorsm/dice-events) — live music + nightlife events, venues, lineups, and pricing.
- [Email & Contact Extractor](https://apify.com/aitorsm/email-extractor) — turn any list of promoter or venue websites into emails and phone numbers.

**Related reading:** [The contact-enrichment cascade — what order to fire your tools in](https://www.linkedin.com/pulse/contact-enrichment-cascade-what-order-fire-your-tools-aitor-165ae/) — how to turn the promoter / venue websites this Actor surfaces into emails and phones, cheapest-first (with real hit rates per step).

### Contact

- **Email**: <business@aitorsm.com> — for custom features, advanced filtering, tailored data products, or anything off-spec.
- **Apify Discord**: find me as `aitor.sm`.

If this actor has been useful to you, please consider adding it to your bookmarks 📑 on Apify.

# Actor input Schema

## `city` (type: `string`):

Pick a city from the list, or type any city name. Cities beyond the suggestions and newly-added ones also work. Leave empty if providing areaId in the advanced section.

## `areaId` (type: `integer`):

Resident Advisor's numeric area ID. Overrides `city`. Useful for cities that aren't recognised by name.

## `listingDateGte` (type: `string`):

Earliest listing date to include. Defaults to today.

## `listingDateLte` (type: `string`):

Latest listing date (inclusive). Leave empty for no upper bound.

## `maxItems` (type: `integer`):

Maximum number of events to return. 0 = uncapped.

## `enrichPromoters` (type: `boolean`):

If true, each event's promoters\[] array is enriched with full data — name, website, social URLs (Instagram, Facebook, Twitter, SoundCloud), follower count, upcoming events count, area, country. Each unique promoter is enriched once per run. Recommended for lead-generation use cases.

## Actor input object example

```json
{
  "city": "Los Angeles",
  "maxItems": 100,
  "enrichPromoters": true
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "city": "Los Angeles",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("aitorsm/ra-events").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "city": "Los Angeles",
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("aitorsm/ra-events").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "city": "Los Angeles",
  "maxItems": 100
}' |
apify call aitorsm/ra-events --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aitorsm/ra-events"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oG90llRMfWt5DKDBL/builds/zVcNDXYb0qVM80f34/openapi.json
