API documentatie

Overzicht

Met de Inzetrooster REST API kun je diensten tonen op je eigen website of integreren in je eigen applicatie. Je kunt diensten opvragen met dezelfde filters die beschikbaar zijn op de pagina Alle diensten.

De API geeft JSON terug en gebruikt tokengebaseerde authenticatie. Elk verzoek moet je API-token meesturen in de request header. Tokens zijn alleen beschikbaar voor premium accounts en kunnen hier gevonden worden.

Alle actieve groepen worden teruggegeven, inclusief privé-groepen. Zorg er daarom voor dat je API-token alleen gedeeld wordt met vertrouwde partijen.

Authenticatie

Elk verzoek moet een Authorization-header bevatten met een Bearer-token:

Authorization: Bearer <jouw-api-token>

Verzoeken zonder geldig token krijgen een 401 Unauthorized-melding terug:

{"error": "Invalid or expired API token"}

Neem contact op met Inzetrooster support om een API-token aan te vragen.

Diensten eindpunt

GET /:account/api/v1/shifts

Geeft een gepagineerde lijst van diensten terug voor jouw account. Zonder filters worden de diensten van de komende 12 maanden teruggegeven.

Filterparameters

Alle filterparameters zijn optioneel en kunnen vrij gecombineerd worden.

Parameter
Type
Omschrijving
group_ids[]
array van integers
Filter op één of meerdere groep-ID's.
months[]
array van integers
Filter op maandnummer (1 = januari … 12 = december).
years[]
array van integers
Filter op jaar, bijv. 2026.
weeks[]
array van integers
Filter op ISO-weeknummer (1–53).
days[]
array van integers
Filter op dag van de week (1 = zondag, 2 = maandag … 7 = zaterdag).
location_ids[]
array van integers
Filter op één of meerdere locatie-ID's.
day
datum (YYYY-MM-DD)
Diensten voor één specifieke datum.

Paginaparameters

Parameter
Standaard
Omschrijving
page
1
Paginanummer.
per_page
500
Resultaten per pagina. Maximum is 500.

Antwoordformaat

Het antwoord is JSON met een shifts-array en een meta-object voor paginering.

{
  "shifts": [
    {
      "id": 123,
      "date": "2026-05-01",
      "start_time": "09:00",
      "end_time": "17:00",
      "end_date": "2026-05-01",
      "group": {
        "id": 5,
        "name": "Ochtendploeg"
      },
      "location": {
        "name": "Grote zaal",
        "address": "Kerkstraat 1, Amsterdam"
      },
      "person": {
        "name": "Jan de Vries"
      },
      "remarks": "Neem je badge mee",
      "starred": false,
      "cancelled": false,
      "noshow": false
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "per_page": 500,
    "total_pages": 1
  }
}

Veldnamen

Veld
Omschrijving
id
Uniek dienst-ID.
date
Startdatum van de dienst (YYYY-MM-DD).
start_time / end_time
Begin- en eindtijd (HH:MM, 24-uurs notatie).
end_date
Einddatum van de dienst. Gelijk aan date bij ééndagsdiensten.
group
De groep waar deze dienst bij hoort (id + naam).
location
Locatienaam en adres. null als er geen locatie is ingesteld.
person
Naam van de ingeschreven persoon. null als de dienst open is.
remarks
Optionele opmerking bij de dienst.
starred
true als de dienst gemarkeerd (starred) is.
cancelled
true als de dienst is geannuleerd.
noshow
true als de ingeschreven persoon niet is komen opdagen.

Voorbeelden

Alle komende diensten (standaard)

curl -H "Authorization: Bearer <token>" \
  "https://inzetrooster.nl/jouwaccount/api/v1/shifts"

Diensten voor een specifieke maand en jaar

curl -H "Authorization: Bearer <token>" \
  "https://inzetrooster.nl/jouwaccount/api/v1/shifts?months[]=5&years[]=2026"

Diensten van een specifieke groep

curl -H "Authorization: Bearer <token>" \
  "https://inzetrooster.nl/jouwaccount/api/v1/shifts?group_ids[]=5"

Diensten op één specifieke datum

curl -H "Authorization: Bearer <token>" \
  "https://inzetrooster.nl/jouwaccount/api/v1/shifts?day=2026-05-01"

Door meerdere pagina's bladeren

curl -H "Authorization: Bearer <token>" \
  "https://inzetrooster.nl/jouwaccount/api/v1/shifts?years[]=2026&page=2&per_page=50"

JavaScript (fetch)

fetch('/jouwaccount/api/v1/shifts?months[]=5&years[]=2026', {
  headers: { 'Authorization': 'Bearer <token>' }
})
.then(r => r.json())
.then(data => console.log(data.shifts));

Foutmeldingen

HTTP-status
Betekenis
200 OK
Verzoek geslaagd.
401 Unauthorized
Ontbrekend, ongeldig of verlopen API-token.
404 Not Found
Account niet gevonden.