Naar de inhoud

Beginnen

Bouwen met PartyPPL

De agenda van het nachtleven in Nederland en België als JSON: events, locaties, artiesten, organisaties, genres en steden. Voor een agenda op je eigen site, een app, een bot of een assistent.

Waar de API voor is

Met de API lees je de openbare agenda: elke goedgekeurde nacht met zaal, line-up, tijden, prijzen en genres, plus de pagina's van artiesten, locaties en organisaties. Als organisator lees en schrijf je daarnaast wat over je eigen events gaat: bezoekersaantallen, externe verkoop en de scanner aan de deur.

  • REST over HTTPS, JSON in en uit, op https://api.partyppl.nl/v1.
  • Een OpenAPI 3.1-specificatie op https://api.partyppl.nl/v1/openapi.json, gegenereerd uit dezelfde tabel waarop de API zijn verzoeken afhandelt. Deze site leest diezelfde specificatie.
  • Een MCP-server op https://partyppl.nl/mcp, zodat een assistent als Claude dezelfde gegevens als tools gebruikt. Zie MCP en Claude.

Je eerste verzoek

Maak een token met het recht read (zie Sleutel aanvragen), zet het in een omgevingsvariabele en vraag de eerstvolgende events op:

bash
export PPL_TOKEN=ppl_live_...
curl
curl -s "https://api.partyppl.nl/v1/events?city=Amsterdam&limit=25" \
  -H "Authorization: Bearer $PPL_TOKEN"
JavaScript
const res = await fetch("https://api.partyppl.nl/v1/events?city=Amsterdam&limit=25", {
  headers: {
    Authorization: `Bearer ${process.env.PPL_TOKEN}`,
  },
});
if (!res.ok) throw new Error((await res.json()).error.message);
const { data, meta } = await res.json();
Python
import os
import requests

res = requests.get(
    "https://api.partyppl.nl/v1/events?city=Amsterdam&limit=25",
    headers={"Authorization": f"Bearer {os.environ['PPL_TOKEN']}"},
    timeout=30,
)
res.raise_for_status()
payload = res.json()

Elk antwoord heeft dezelfde envelop: data met wat je vroeg en meta met het request_id, bij een lijst de paginering en bij openbare gegevens de bronvermelding.

Bronvermelding

Wie de gegevens toont, noemt PartyPPL en linkt naar de eventpagina op partyppl.nl. Elk antwoord met agendagegevens draagt dat zelf mee in meta.attribution: de zin, de link en de link naar de voorwaarden. Toon die zin, of een vertaling ervan, zichtbaar bij de gegevens. Verspreid de agenda niet als geheel. De zes spelregels staan bij Voorwaarden.

Wat er bewust niet in zit

Sommige dingen kan de API niet, en dat blijft zo. Ze gaan over geld van bezoekers of over bezoekers zelf, en horen in de app of op de site, waar iemand zelf bevestigt.

  • Tickets kopen, overdragen of terugbetalen. Dat gaat via de site en de app, met de betaling erbij.
  • Groepschats, forumberichten en privéberichten. Lezen noch schrijven.
  • Gegevens over individuele bezoekers, ook niet wie er naar een nacht gaat. Een organisator ziet aantallen, geen namen.
  • Webhooks. De API heeft geen uitgaande webhooks; lees met de ETag en poll binnen de limieten.

Een organisatortoken antwoordt alleen over de eigen organisatie. Het recht admin is van het platform zelf en wordt niet aan derden gegeven.

Verder lezen