# EDMDb for Developers > The EDMDb API gives programmatic access to the Electronic Dance Music Database — artists, events, festivals, venues, lineups, labels, genres, cities and podcast tracklists — as clean, de-duplicated JSON over REST. Read-only in v1. Base URL: https://developer.edmdb.net/api/v1 Every endpoint requires an API key, sent as `Authorization: Bearer edm_live_...` or `x-api-key`. Keys are created at https://edmdb.net/account/developer. The one exception is the OpenAPI document below, which is public — a specification nobody can read without a credential is not documentation. Responses are JSON with `snake_case` fields. Lists return `{ "data": [...], "page": { "next_cursor": ..., "has_more": ... } }` and are cursor-paginated; pass `next_cursor` back as `?cursor=`. Cursors are opaque and endpoint-specific. Absent values are always explicit `null`, never omitted keys. Errors use one envelope: `{ "error": { "type": ..., "message": ..., "docs": ... } }`. Branch on `type`, which is stable; `message` is written for humans and gets reworded. Two limits apply, reported on every response: a short-window per-key rate limit (`X-RateLimit-*`) and a monthly per-account quota (`X-Quota-*`). Both return `429` — `rate_limit_exceeded` means back off, `quota_exceeded` means the month's allowance is spent. An MCP server is also available at https://developer.edmdb.net/mcp for agent use, speaking MCP `2026-07-28` (stateless; 2025-era clients are still served). It requires authorization: either OAuth 2.1, discovered from the `401` challenge at `/.well-known/oauth-protected-resource/mcp`, or the same API key as the REST surface sent as a bearer token. Calls count against the same monthly quota, and which tools are available depends on the plan. ## API - [OpenAPI specification](https://developer.edmdb.net/api/v1/openapi.json): Machine-readable OpenAPI 3.1, generated from the running code. **Start here** — it lists every endpoint, parameter and response shape. No API key needed to read it. - [Interactive reference](https://developer.edmdb.net/docs): The same specification rendered, with a console for making live calls. ## Docs - [Quickstart](https://developer.edmdb.net/docs/quickstart): Create a key and make your first call. - [Authentication](https://developer.edmdb.net/docs/authentication): How to send your API key, and how to keep it safe. - [Pagination](https://developer.edmdb.net/docs/pagination): Cursor pagination, filtering and limits. - [Errors](https://developer.edmdb.net/docs/errors): The error envelope and every code it can carry. - [Rate limits](https://developer.edmdb.net/docs/rate-limits): The per-key rate limit, the monthly quota, and the headers that report both. - [Versioning](https://developer.edmdb.net/docs/versioning): How /v1 evolves and how changes are announced. - [MCP server](https://developer.edmdb.net/docs/mcp): Connect ChatGPT, Claude or any MCP client. - [Changelog](https://developer.edmdb.net/docs/changelog): Dated record of API changes. ## Optional - [MCP server](https://developer.edmdb.net/mcp-server): What the MCP endpoint can answer, how to connect an assistant to it, and which tools each plan can call. - [Pricing and quotas](https://developer.edmdb.net/pricing): Plans, monthly request allowances and the commercial-use licence. - [Support](https://developer.edmdb.net/support): How to report a problem or ask about licensing. - [EDMDb](https://edmdb.net): The consumer site the data comes from. Every API resource includes a `url` field pointing at its page there, which is also how the free tier's attribution requirement is satisfied.