Het dataportaal van Samen Meten is op 12 augustus 2020 overgeschakeld naar een nieuwe verbeterde API. API staat voor Application Programming Interface. Een API biedt programmeurs de mogelijkheid om via zelf geschreven software data te benaderen.
De data experts onder de citizen scientists maken graag gebruik van de Samen Meten API die er sinds de zomer 2019 is. Onze data zijn Open Data en een API is een manier om toegang tot die data zo makkelijk mogelijk te maken.
Let op, de links hieronder geven dus toegang tot stukjes computercode en niet tot gewone webpagina’s. Programmeurs hebben hiermee de mogelijkheid om op een gestructureerde manier de data die op samenmeten.rivm.nl aanwezig is te benaderen via URL’s met JSON-output.
Begripsbepaling
De API kent een aantal z.g. Endpoints die toegang bieden tot verschillende delen van de data. De belangrijkste Endpoints zijn:
- Things: hiermee worden fysieke objecten bedoeld. In ons geval de complete meetsystemen. Verwarrend is dat wij dat meestal de sensor noemen.
- Sensors: het specifieke meetapparaat dat iets bepaalds (PM10, NO2, Temperatuur) meet. Een Thing kan dus meerdere Sensors bevatten.
- Observations: de meetwaarde gemeten door een bepaalde Sensor in een bepaald Thing op een bepaalde tijd.
Paginering
De uitvoer kan gepagineerd worden als dat nodig blijkt. De response bevat dan een z.g. nextLink die verwijst naar de volgende set met inhoud. De laatste set zal geen nextLink bevatten.
Authenticatie
Er is geen vorm van authenticatie nodig. De API is openbaar.
Gebruik en documentatie
De API is bereikbaar via https://api-samenmeten.rivm.nl/v1.0
Hieronder worden enkele eenvoudige voorbeelden gegeven hoe de API te gebruiken.
1. geef een lijst van alle sensoren (eigenlijk alle meetpunten)
https://api-samenmeten.rivm.nl/v1.0/Things
2. geef een lijst van alle sensoren die beginnen met ZWL
https://api-samenmeten.rivm.nl/v1.0/Things?$filter=startswith(name,%27ZWL%27)
3. geef een lijst van alle typen Sensoren
https://api-samenmeten.rivm.nl/v1.0/Sensors
4. geef alle gekalibreerde pm10-data van Thing 126
https://api-samenmeten.rivm.nl/v1.0/Datastreams(614)/Observations
Kijk vooral bij de ODATA $filter opties om te filteren op verschillende entities. Handig hier is uiteraard date en time. Maar er zijn meer mogelijkheden.
De volledige documentatie vind je op
https://gost1.docs.apiary.io/#reference/0/root/get-sensorthings-resource-endpoints