ELECTRIC STATE · SCENE INDEX
The API
Festival booking data for electronic music — 700+ editions, 9,000+ artists, 1995 to present. Day-by-day lineups, set times where published, every edition linked to its series.
Plans
Launch pricing — 50% off. The rate you sign up at is your rate for the life of the subscription; when launch pricing ends, it ends for new subscribers, not for you. Your API key is issued the moment checkout completes; cancel anytime from the Stripe receipt email.
STANDARD50% OFF LAUNCH
$199$99.5 / month
or $995 / year (normally $1,990)
- Full API — recent, current & announced seasons
- Momentum leaderboards (upcoming scope)
- 50,000 requests / month
PRO50% OFF LAUNCH
$499$249.5 / month
or $2,495 / year (normally $4,990)
- Everything in Standard
- Complete 1995 → now historical archive
- All-time leaderboards & booking arcs
- Exports + the quarterly scene read
Need a custom cut — a roster, a territory, a genre — or an enterprise volume? hello@electricstate.app
Authentication
Keys are issued per organization — write to hello@electricstate.app. Send yours on every request:
curl -s https://api.electricstate.app/v1/coverage \ -H "Authorization: Bearer esk_live_YOUR_KEY"
Keys are secrets: server-side only, never in a browser page or a shared notebook. Responses are uncached and metered; monthly limits return 429.
Endpoints
| GET /v1/festivals | Editions list — filters: year, country, series, q, upcoming, limit, offset. |
| GET /v1/festivals/{slug} | One edition in full: lineup, set times, and its series siblings. |
| GET /v1/artists/{name}/bookings | An artist’s entire booking history; name matching folds case and punctuation. |
| GET /v1/leaderboards/most-booked | scope=upcoming (default) or scope=all — two different questions, answered separately. |
| GET /v1/coverage | Catalog counts, all-time and upcoming. |
Machine-readable spec: openapi.json
For AI assistants
Using ChatGPT? A regular chat cannot call this API — its Python tool has no internet access and its browser cannot send auth headers. Build a custom GPT instead (once, two minutes, needs a paid plan):
- ChatGPT → Explore GPTs → + Create → Configure tab. Name it “Scene Index”.
- Paste the block below into Instructions.
- Actions → Create new action → Import from URL → https://api.electricstate.app/v1/openapi.json
- Authentication → API Key → type Bearer → paste your key. Save, visibility “Only me”.
- Ask it: “what’s the coverage?” — then ask anything in plain English.
Using an agent with real HTTP tools (Claude Code, Cursor, a scripting agent)? Just paste this block into its instructions and add your key where it says<API_KEY>:
You can query the Electric State Scene Index API — festival booking data for
electronic music: 700+ festival editions, 9,000+ artists, 1995–present.
BASE URL: https://api.electricstate.app/v1
AUTH: send header Authorization: Bearer <API_KEY> on every request.
The key is a secret. Never print it back, never put it in a URL.
ENDPOINTS (all GET, all return JSON):
1. /festivals — list editions (one row per festival per year).
Params: year=2015 | country=US | series=<series-slug> | q=<name search>
| upcoming=true | limit (max 200) | offset. Returns { meta.total, editions[] }.
2. /festivals/{slug} — one edition in full: lineup[], set_times[], series_editions[].
Slugs look like crssd-festival-spring-2015.
3. /artists/{name}/bookings — an artist's whole booking history.
Name matching ignores case and punctuation. Returns summary
{ total_bookings, first_year, last_year, span_years } plus every booking.
4. /leaderboards/most-booked?scope=upcoming|all&limit=50
scope=upcoming (default) = who is booked on festivals still ahead.
scope=all = all-time career leaderboard. These answer DIFFERENT questions —
never merge or swap them.
5. /coverage — { all_time, upcoming } festival and artist counts.
RULES:
- "Edition" means one festival in one year. A festival's history = filter by
its series slug, found on any edition row as series_slug.
- Booking counts measure frequency, never fees.
- Historical coverage is deeper in recent years; say so if comparing eras.
- On 401/403/429, stop and report the error body; do not retry in a loop.
Try it: GET /coverage, then GET /artists/Simply Jeff/bookings — a booking arc
that starts in 1995.Treat any chat or config you paste a key into as holding a secret — we can rotate your key any time, just ask.
Terms
Licensed per organization. No resale or redistribution of the dataset; attribution (“Data: Electric State Scene Index”) on published work. Booking counts measure frequency, never fees.
electricstate.app · The scene, actually counted.