Too many requests (HTTP 429)

Hallo,

ik loop tijdens testen tegen een 429 aan:

Fetching addressable: https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen/1676010000497582
==> Response code: 404
Fetching usable object: https://bag.basisregistraties.overheid.nl/api/v1/verblijfsobjecten/1676010000497582
Fetching addressable object: https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen/1676200000497581?geldigOp=2017-09-21
Fetching street link: https://bag.basisregistraties.overheid.nl/api/v1/openbare-ruimtes/1676300000422428?geldigOp=2017-09-21
New street: Verseputseweg in city 2679
City resolved to Kerkwerve
New street created: Verseputseweg in Kerkwerve
Fetching addressable: https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen/0402200001620817
Fetching street link: https://bag.basisregistraties.overheid.nl/api/v1/openbare-ruimtes/0402300001473674?geldigOp=2017-09-21
New street: Vaartweg in city 1036
City resolved to Hilversum
New street created: Vaartweg in Hilversum
Fetching addressable: https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen/0090010000661468
==> Response code: 404
Fetching usable object: https://bag.basisregistraties.overheid.nl/api/v1/verblijfsobjecten/0090010000661468
Fetching addressable object: https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen/0090200000661467?geldigOp=2017-09-21
==> Response code: 429

Dit is gedaan in 839ms en ik tel zo 9 requests. Waar kan ik vinden wat de throttle is (gokje: 1 per 100ms)?

Ook is 429 niet als mogelijke response code opgenomen in de documentatie.

In normaal gebruik zal ik er denk niet tegenaan lopen, dus ik wil graag weten met wat voor parameters ik m’n tests moet throttelen, maar het is toch fijn te weten waar je rekening mee moet houden voor het geval dat (en wat de backoff time is als je tegen 429 aan loopt).

Geinig, ik registreer hier nu net om een soortgelijke vraag te stellen. Volgens mij zijn er problemen met de nummeraanduiding API:

$ curl --header "X-Api-Key: <MIJN API KEY>" https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen&postcode=1234AB&huisnummer=123 
<html>
<head><title>504 Gateway Time-out</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx</center>
</body>
</html>

Misschien heb ik’m gesloopt?

(Hoi Daan! (ja, die Melvyn))

Wat toevallig! Ik dacht bijna dat ik de boosdoener was maar het was maar een enkele request.

Hij werkt overigens wel zonder query params. Dus er zal wel iets stuk zijn aan de achterkant.

Ongerelateerd ben ik bang. Query params er af gesloopt en nog steeds wordt er op de rem gedrukt:

Fetching addressable: https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen/0090010000661468
==> Response code: 429
Fetching usable object: https://bag.basisregistraties.overheid.nl/api/v1/verblijfsobjecten/0090010000661468
Fetching addressable object: https://bag.basisregistraties.overheid.nl/api/v1/nummeraanduidingen/0090200000661467
Fetching street link: https://bag.basisregistraties.overheid.nl/api/v1/openbare-ruimtes/0090300000578476
==> Response code: 429

Maar backoff tijd is wel laag zo te zien alleen kom je redelijk snel weer in problemen. En omdat je geen parent objecten kan opvragen met een request, moet je meerdere uitvoeren.

Probeer maar eens mijn URL op te vragen (filteren op postcode/huisnummer), dan krijg je ongetwijfeld ook een time-out.

Yep, en kijk naar je query string. Als je die fixed (hint: ?) dan gaat het goed. Dus we hebben een security bug te pakken (DOS). Good old times!

Hah, wow. Dat ik daar overheen heb gelezen. Zijn het toch 2 verschillende dingen helaas :wink:

Hallo @melvyn,
De rate limit staat nog op 2/s per IP. Daar liepen we zelf ook al tegenaan. We gaan hem binnenkort verhogen.

Hallo @melvyn
De rate limit is zojuist verhoogd naar 20/s per IP. De documentatie gaan we ook aanpassen, maar dat duurt nog even.

1 like

Bedankt voor de snelle reactie en fix!

1 like

Bij nader inzien gaan we de docs niet aanpassen maar de rate limit voorlopig verwijderen :wink:

2 likes