Het dataportaal van Samenmeten heeft sinds 27 juni een 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 hebben ons vaak gevraagd of er een API beschikbaar is. Nu kunnen ze er mee aan de slag.

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.rivmRijksinstituut voor Volksgezondheid en Milieu.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 bepaald 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.

afbeelding van API

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,’ZWL’)

3. geef een lijst van alle typen Sensoren
https://api-samenmeten.rivm.nl/v1.0/Sensors

4. geef alle pm10-data van Thing 28823
https://api-samenmeten.rivm.nl/v1.0/Datastreams(98122)/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