Er is geen RESTful API die deze informatie serveert, maar PDOK publiceert in principe voor elke web service een service metadata record in het NGR.
Het NGR ontsluit weer een CSW service die publiek toegangelijk is. Door middel van de volgende CSW query kan je een lijst maken van alle web services die door PDOK beheert worden:
https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?request=GetRecords&Service=CSW&Version=2.0.2&typeNames=gmd:MD_Metadata&resultType=results&startPosition=1&constraint=type=%27service%27%20AND%20organisationName=%27Beheer%20PDOK%27&constraintLanguage=CQL_TEXT&constraint_language_version=1.1.0
Het specifieke filter wat gebruikt wordt om alleen service
records van Beheer PDOK
(in het CSW request is deze url-encoded):
type='service' AND organisationName='Beheer PDOK'
De response op bovenstaande request geeft 10 records terug terwijl er 386 records gematched zijn. Om de volgende 10 records op te halen zul je met behulp van de query parameter startPosition=11
de volgende 10 records op moeten halen, enzovoort (voor zover ik weet geeft NGR max 10 records terug per CSW response).
CSW is overigens volledig XML gebaseerd, je kan bijvoorbeeld geen JSON output opvragen. Maar het is in ieder geval beter dan websites crawlen :).
Er is ook bestaande tooling om met een CSW service te praten, bijvoorbeeld ogr2ogr of OWSLib . Ik heb zelf ook een CSW CLI client geschreven die JSON output genereert.