Naar de inhoud

KerkPoint API (Premium)

Met de API haal je diensten, roosters, locaties en rollen van je kerk op, bijvoorbeeld om ze op je eigen website of in een app te tonen. De API is alleen-lezen en zit in het Premium-abonnement.

Toegang

  1. Log in als beheerder en ga naar Instellingen → API.
  2. Maak een token aan (bijvoorbeeld "Kerkwebsite"). Kopieer het meteen: je ziet het maar één keer.
  3. Stuur het token mee als Bearer-token:
Authorization: Bearer 12|abcdef…
Accept: application/json

De API draait op het domein van je eigen kerk:

https://<jouwkerk>.kerkpoint.nl/api/v1

Een token werkt alleen voor de kerk waarin hij is aangemaakt. Trek een token in via dezelfde pagina zodra je het niet meer gebruikt.

Limieten en fouten

  • Maximaal 60 verzoeken per minuut per token/IP. Daarboven krijg je 429 Too Many Requests.
  • 401 geen of ongeldig token.
  • 403 je abonnement bevat geen API-toegang of is niet actief.
  • 404 het opgevraagde item bestaat niet (of hoort niet bij jouw kerk).
  • 422 ongeldige parameters; de response bevat message en errors.

Alle fouten hebben de vorm {"message": "…"}.

Endpoints

GET /services

Komende diensten met het rooster, gesorteerd op datum en tijd.

Parameter Type Standaard Omschrijving
from YYYY-MM-DD vandaag Eerste datum
to YYYY-MM-DD – Laatste datum (inclusief)
building integer – Alleen diensten op deze locatie (id uit /buildings)
per_page 1–100 25 Aantal per pagina
page integer 1 Pagina
{
  "data": [
    {
      "id": 42,
      "name": "Ochtenddienst",
      "date": "2026-10-11",
      "start_time": "10:00",
      "description": "Doopdienst",
      "song": "Psalm 100",
      "readings": "Lucas 2",
      "building": { "id": 3, "name": "Grote Kerk" },
      "assignments": [
        { "role": "Koster", "role_id": 7, "person": "Jan de Vries", "status": "accepted" }
      ]
    }
  ],
  "meta": { "current_page": 1, "last_page": 1, "per_page": 25, "total": 1 },
  "links": { "next": null, "prev": null }
}

status is pending (nog niet bevestigd), accepted of declined.

GET /services/{id}

Eén dienst, met dezelfde velden als hierboven plus liturgy_html (de liturgie zoals ingevoerd in de editor, als HTML).

GET /buildings

{ "data": [ { "id": 3, "name": "Grote Kerk", "address": "Kerkplein 1, Nunspeet" } ] }

GET /roles

{ "data": [ { "id": 7, "name": "Koster", "slots": 1 } ] }

Voorbeeld

curl -H "Authorization: Bearer $KERKPOINT_TOKEN" -H "Accept: application/json" \
  "https://mijnkerk.kerkpoint.nl/api/v1/services?from=2026-10-01&to=2026-10-31"
const response = await fetch('https://mijnkerk.kerkpoint.nl/api/v1/services', {
  headers: { Authorization: `Bearer ${token}`, Accept: 'application/json' },
});
const { data } = await response.json();

Zet het token nooit in JavaScript dat in de browser draait: iedereen kan het dan uitlezen. Haal de gegevens op via je eigen server (of een serverless functie) en cache het resultaat een paar minuten.

Wil je alleen een agenda op je website of in je telefoon? Daarvoor heb je de API niet nodig: gebruik de agendalinks (iCal) onder Exporteren & iCal of de widgets onder Instellingen → Insluitcodes.