Esdeveniments.cat API

A free public REST API for Catalonia's cultural agenda: events, news, categories and places, in Catalan, Spanish and English. Use it in your app, your website or an AI agent.

API keys

You don't need a key. Read (GET) endpoints are public and need no authentication. Please stay under 60 requests per minute per IP. The MCP server enforces it and answers a 429 with a Retry-After header above it.

Quickstart

Make your first call with curl. Lists are paginated: when the last field is false, ask for the next page.

# Today's events in Barcelona
curl "https://www.esdeveniments.cat/api/events?place=barcelona&byDate=avui"

# Search events by keyword
curl "https://www.esdeveniments.cat/api/events?term=jazz&size=10"

# One event
curl "https://www.esdeveniments.cat/api/events/{slug}"

Documentation

Try the API

Read calls change nothing, so you can try them right against the production API. Open these examples in your browser:

AI agents and MCP

Connect an AI agent to our MCP server, or use the WebMCP tools the site registers in the browser.

Esdeveniments.cat MCP server

Writes and idempotency

Sponsor checkout (POST /api/sponsors/checkout) accepts an Idempotency-Key header. Send a new key (a UUID) for each attempt and reuse it when you retry: only one checkout session is created.

await fetch("/api/sponsors/checkout", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(), // reuse it on retries
  },
  body: JSON.stringify({ duration: "7days", geoScope: "town", place: "barcelona", placeName: "Barcelona" }),
});

GitHub and contact

Follow the project on GitHub, or email us if you need more data or a higher limit.