Ra APIde.ra.co ↗
Fetch upcoming electronic music events from Resident Advisor by city and country. Returns event names, dates, venues, artist lineups, and flyer images.
What is the Ra API?
The de.ra.co API provides access to Resident Advisor's upcoming event listings through a single list_events endpoint that returns up to 9 fields per event, including event name, date, start and end times, venue, artist lineup, banner image URL, and a direct RA link. Query events by city slug and country code, with paginated results sorted by date and then popularity. Coverage spans RA's global city listings, from Berlin to New York.
curl -X GET 'https://api.parse.bot/scraper/f290c2a5-c61a-4ca5-bf8c-ff750ee51f9a/list_events?city=berlin&page=1&country=de&page_size=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace de-ra-co-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Resident Advisor Events SDK — discover upcoming electronic music events."""
from parse_apis.de_ra_co_api import ResidentAdvisor, CityNotFound
client = ResidentAdvisor()
# List upcoming events in Berlin, capped to 5 total items.
for event in client.events.list(country="de", city="berlin", page_size=5, limit=5):
print(event.event_name, "|", event.date, "|", event.venue)
print(" Artists:", ", ".join(event.artists))
# Drill-down: grab the first event in Hamburg to inspect its timing.
try:
first_event = client.events.list(country="de", city="hamburg", limit=1).first()
except CityNotFound:
first_event = None
print("City not found on RA.")
if first_event is not None:
print(f"\nFirst Hamburg event: {first_event.event_name}")
print(f" Starts: {first_event.start_time} Ends: {first_event.end_time}")
print(f" Link: {first_event.ra_link}")
print("\nexercised: events.list (Berlin + Hamburg), CityNotFound handling")
List upcoming events for a given city area on Resident Advisor. Returns paginated results sorted by date ascending, then popularity. Each event includes name, date/time, venue, artists, banner image URL, and RA event link. The area is resolved from a country URL code and city slug matching RA's URL scheme (e.g. /events/de/berlin). Multi-day events appearing on multiple listing dates are deduplicated by event ID within a page.
| Param | Type | Description |
|---|---|---|
| city | string | City slug as used in RA URLs (e.g. 'berlin', 'munich', 'hamburg'). Lowercase, no spaces. |
| page | integer | Page number for pagination (1-indexed). |
| country | string | Two-letter country URL code as used in RA URLs (e.g. 'de' for Germany, 'uk' for United Kingdom, 'us' for United States). |
| page_size | integer | Number of events per page (1-50). |
{
"type": "object",
"fields": {
"page": "integer current page number",
"events": "array of event objects with event_name, date, start_time, end_time, venue, artists, banner_url, ra_link, event_id",
"page_size": "integer page size used",
"total_results": "integer total number of upcoming events in the area"
},
"sample": {
"data": {
"page": 1,
"events": [
{
"date": "2026-08-07",
"venue": "OST",
"artists": [
"DTEXX",
"Elen Payne",
"JUNO (3)",
"SaltySis",
"Vieze Asbak"
],
"ra_link": "https://ra.co/events/2391028",
"end_time": "2026-08-08T08:00:00.000",
"event_id": "2391028",
"banner_url": "https://images.ra.co/bccc6eaf63d503d0adb8230729285688073d9580.png",
"event_name": "Blasphemy w. Vieze Asbak, Neek, SaltySis, Elen Payne",
"start_time": "2026-08-07T23:00:00.000"
}
],
"page_size": 5,
"total_results": 1684
},
"status": "success"
}
}About the Ra API
What the API Returns
The list_events endpoint returns a paginated array of upcoming electronic music events from Resident Advisor. Each event object in the response includes event_name, date, start_time, end_time, venue, artists (as an array), banner_url (the event flyer image), ra_link (the direct URL on ra.co), and a unique event_id. The top-level response also exposes total_results so you can calculate how many pages remain.
Filtering by Location
Location is controlled by two optional parameters: country (a two-letter code matching RA's URL structure, e.g. de for Germany, uk for United Kingdom) and city (a slug matching RA's URL structure, e.g. berlin, hamburg, london). Both parameters are independent — you can query at the country level or narrow to a specific city. Results are sorted by date ascending, then by popularity within each date.
Pagination
The endpoint supports pagination via the page (1-indexed) and page_size (1–50 events per page) parameters. The total_results field in the response tells you the total number of upcoming events available for the requested area, which lets you calculate the full page count and iterate through all results programmatically.
The Ra API is a managed, monitored endpoint for de.ra.co — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when de.ra.co changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official de.ra.co API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a city-specific event calendar for electronic music fans using
date,start_time, andvenuefields. - Aggregate artist touring schedules by scanning
artistsarrays across multiple city slugs. - Display event flyer images in a mobile app using the
banner_urlfield. - Monitor how many upcoming events RA lists for a given city using
total_results. - Generate RA deep-links in a newsletter or bot using the
ra_linkfield per event. - Track venue activity over time by grouping events by the
venuefield across paginated results.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Resident Advisor have an official developer API?+
What does the `artists` field contain — headliners only or full lineups?+
artists field returns an array of artist names as listed on the RA event page. This typically reflects the lineup as published by the promoter, which may be a partial or full lineup depending on what RA has on record at the time of the request.Does the API return past events or only upcoming ones?+
list_events endpoint returns only upcoming events for the requested area, sorted by date ascending. Past events are not included in the results. You can fork this API on Parse and revise it to add a past-events endpoint if historical data is needed.Can I retrieve ticket prices or buy links through this API?+
How specific can the location filtering get — can I query by neighborhood or venue ID?+
country (two-letter code) and city (slug) parameters. Sub-city filtering such as neighborhood, district, or specific venue ID is not currently supported. You can fork this API on Parse and revise it to add more granular location filtering.