Nederlandse zwemranglijsten — REST API
v1 · JSON · HTTPS Base URL: https://zwembase.nl
⚡ Swagger UI ← Zwembase
ℹ️
Open endpoints zijn vrij toegankelijk — geen sleutel nodig.
Sleutel-endpoints vereisen een x-api-key header. Vraag een sleutel aan via dennis@aroundmyroom.com.

Ranglijsten

Beste tijden per zwemmer per event. Vrij toegankelijk, geen sleutel nodig.

GET /api/v1/public/rankings 🔓 Open Ranglijst beste tijden
Geeft de beste tijd per zwemmer terug voor een specifiek onderdeel (afstand + slag + baan). Elke zwemmer komt maximaal één keer voor; altijd de snelste persoonlijk record binnen de geselecteerde periode.
ParameterTypeVereistOmschrijving
distanceintegervereistAfstand in meters — bijv. 50, 100, 200, 400, 800, 1500
strokestringvereistSlag: Fr / Bk / Br / Bu / Me of voluit (Freestyle, Backstroke, Breaststroke, Butterfly, Medley)
coursestringvereistLCM (lange baan / 50m) of SCM (korte baan / 25m)
genderstringoptioneelM (heren) of F (dames) — standaard beide
yearintegeroptioneelFilter op geboortejaar zwemmer
fromdateoptioneelResultaten vanaf datum (YYYY-MM-DD)
untildateoptioneelResultaten tot en met datum (YYYY-MM-DD)
limitintegeroptioneelAantal resultaten (standaard 25, max 200)
offsetintegeroptioneelPaginering offset (standaard 0)
lapbooleanoptioneelToon lap/split-events i.p.v. hoofdevent (standaard false)
Voorbeeld
curl "https://zwembase.nl/api/v1/public/rankings?distance=100&stroke=Fr&course=LCM&gender=M&limit=25"

NJK Meerkamp

Publieke NJK-ranglijsten op basis van WA-punten. Vrij toegankelijk, geen sleutel nodig.

GET /api/v1/public/njk/editions 🔓 Open Actieve NJK edities
Geeft alle actieve NJK-edities terug met naam, seizoen en configuratie.
Geen parameters
curl "https://zwembase.nl/api/v1/public/njk/editions"
GET /api/v1/public/njk/events 🔓 Open NJK disciplines en afstanden
Geeft alle NJK-disciplines (afstanden en slagen) terug voor een editie.
ParameterTypeVereistOmschrijving
editionIdintegervereistID van de NJK editie (zie /njk/editions)
curl "https://zwembase.nl/api/v1/public/njk/events?editionId=1"
GET /api/v1/public/njk/rankings 🔓 Open NJK ranglijst op WA-punten
Geeft de NJK meerkamp-ranglijst terug. Zwemmers worden gerangschikt op basis van hun gecombineerde WA-punten over de geselecteerde disciplines.
ParameterTypeVereistOmschrijving
editionIdintegervereistID van de NJK editie
genderstringvereistM (heren) of F (dames)
limitintegeroptioneelAantal resultaten (standaard 50)
offsetintegeroptioneelPaginering offset
curl "https://zwembase.nl/api/v1/public/njk/rankings?editionId=1&gender=M"

Limieten & Kwalificaties

Kwalificatielimieten en gehaalde tijden per kampioenschap. Vrij toegankelijk, geen sleutel nodig.
Let op: de ruwe limietdata (tijden per onderdeel) is niet publiek beschikbaar — alleen de resultaten.

GET /api/v1/public/limits/meets 🔓 Open Actieve kampioenschappen
Geeft alle actieve limieten-kampioenschappen terug met naam, seizoen, kwalificatieperiode en cursus (LCM/SCM).
Geen parameters
curl "https://zwembase.nl/api/v1/public/limits/meets"
GET /api/v1/public/limits/meets/:id/swimmers 🔓 Open Zwemmers met limiettijden
Geeft alle zwemmers terug die binnen de kwalificatieperiode een of meer limieten hebben gehaald voor het opgegeven kampioenschap. Inclusief resultaten, deltatijden t.o.v. de limiet en eventuele bonuslimieten. Voor ranglijst-categorieën worden de zwemmers gerangschikt op WA-punten.
ParameterTypeVereistOmschrijving
:id (path)integervereistID van het kampioenschap (zie /limits/meets)
q (query)stringoptioneelFilter op naam van de zwemmer (minimaal 2 tekens)
curl "https://zwembase.nl/api/v1/public/limits/meets/5/swimmers"
curl "https://zwembase.nl/api/v1/public/limits/meets/5/swimmers?q=Jansen"
ℹ️
Haal eerst de actieve ID's op via /limits/meets — ID's zijn niet opeenvolgend.

Wedstrijden — API-sleutel vereist

Wedstrijduitslagen en zoeken op wedstrijd. Vereist een geldige API-sleutel.

GET /api/v1/public/meets 🔑 Sleutel vereist Wedstrijdenlijst, gegroepeerd per maand
🔑
Dit endpoint vereist een API-sleutel via de x-api-key header. Zie Authenticatie.
Geeft alle wedstrijden terug, gefilterd op zoekterm/plaats/datumbereik/baan en gegroepeerd per maand (nieuwste eerst). Gebruik de key uit een wedstrijd om de uitslag op te halen via het detail-endpoint.
ParameterTypeVereistOmschrijving
qstringneeZoek op wedstrijdnaam
citystringneeFilter op plaats (bevat)
fromdateneeVanaf datum (YYYY-MM-DD)
todateneeTot en met datum (YYYY-MM-DD)
courseLCM / SCMneeFilter op baanlengte
limitintegerneeMax. aantal resultaten (1–2000, standaard 400)
curl "https://zwembase.nl/api/v1/public/meets?from=2026-01-01&course=LCM" \
  -H "x-api-key: <jouw-sleutel>"
GET /api/v1/public/meets/:key 🔑 Sleutel vereist Wedstrijd-uitslag (alle resultaten per nummer)
🔑
Dit endpoint vereist een API-sleutel via de x-api-key header. Zie Authenticatie.
Volledige uitslag van één wedstrijd. Resultaten zijn gegroepeerd per nummer (afstand + slag + baan) én geslacht, oplopend op tijd. Per resultaat: zwemmer, jaargang, club, tijd, WA-punten. De key komt uit de wedstrijdenlijst (/api/v1/public/meets).
ParameterTypeVereistOmschrijving
:key (path)stringvereistbase64url-identifier uit de wedstrijdenlijst
curl "https://zwembase.nl/api/v1/public/meets/<key>" \
  -H "x-api-key: <jouw-sleutel>"

Zwemmers — API-sleutel vereist

Zwemmerprofielen en persoonlijke resultaten. Vereist een geldige API-sleutel.

GET /api/v1/public/swimmers/:id 🔑 Sleutel vereist Zwemmer detail + resultaten
🔑
Dit endpoint vereist een API-sleutel via de x-api-key header. Zie Authenticatie.
Geeft het volledige profiel van een zwemmer terug inclusief al hun geregistreerde resultaten.
ParameterTypeVereistOmschrijving
:id (path)integervereistZwemmer-ID
curl "https://zwembase.nl/api/v1/public/swimmers/12345" \
  -H "x-api-key: <jouw-sleutel>"

Data-dekking — API-sleutel vereist

Beschikbaarheid van importdata per maand. Vereist een geldige API-sleutel.

GET /api/v1/public/coverage 🔑 Sleutel vereist Data-dekking per maand
🔑
Dit endpoint vereist een API-sleutel via de x-api-key header. Zie Authenticatie.
Toont per maand hoeveel resultaten er zijn en welke maanden binnen het bereik leeg zijn (nog niet geïmporteerd).
curl "https://zwembase.nl/api/v1/public/coverage" \
  -H "x-api-key: <jouw-sleutel>"

Authenticatie

API-sleutels worden meegestuurd via een HTTP-header. Aanbevolen methode: x-api-key.

MethodeHeaderOpmerking
Aanbevolen x-api-key: zwb_abc123… Standaard voor REST-clients en Swagger UI
Bearer Authorization: Bearer zwb_abc123… Compatibel met OAuth2-tooling
ApiKey Authorization: ApiKey zwb_abc123… Alternatief voor API-key clients

Swagger UI instellen

Ga naar /docs/swagger, klik rechtsboven op Authorize, vul je sleutel in bij apiKey (API key) → Value en klik op Authorize. Alle verzoeken worden daarna automatisch voorzien van de x-api-key header.

Sleutel aanvragen

Mail naar dennis@aroundmyroom.com en vermeld voor welk project je de sleutel wilt gebruiken. Sleutels hebben standaard een read-scope en een limiet van 1 000 verzoeken per uur.

Rate limiting

Per API-sleutel wordt het aantal verzoeken per uur bijgehouden via response-headers.

HeaderBetekenis
x-ratelimit-limitMaximaal toegestane verzoeken per uur voor deze sleutel
x-ratelimit-remainingResterende verzoeken in het huidige uur
⚠️
Bij overschrijding retourneert de API HTTP 429 Too Many Requests. Wacht tot het volgende uur of neem contact op voor een hogere limiet.

Foutcodes

CodeBetekenisOplossing
400Ongeldige queryparametersControleer de vereiste velden in Swagger UI
401Ontbrekende of ongeldige API-sleutelVoeg de x-api-key header toe
403Geen toegang (endpoint niet publiek)Dit endpoint is niet extern beschikbaar
404Niet gevondenControleer het pad en de ID
429Rate limit bereiktWacht tot het volgende uur of vraag hogere limiet aan
500ServerfoutProbeer opnieuw; meld aanhoudende fouten