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
- Log in als beheerder en ga naar Instellingen → API.
- Maak een token aan (bijvoorbeeld "Kerkwebsite"). Kopieer het meteen: je ziet het maar één keer.
- 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. 401geen of ongeldig token.403je abonnement bevat geen API-toegang of is niet actief.404het opgevraagde item bestaat niet (of hoort niet bij jouw kerk).422ongeldige parameters; de response bevatmessageenerrors.
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.