Skip to navigation

Wat zijn de limieten en foutmeldingen van de API?

Hoeveel aanvragen mag je doen?

De API beperkt het aantal aanvragen per minuut per account.

AccounttypeAanvragen per minuut
Gratis30
Betaald120

Ga je eroverheen, dan krijg je een 429 met een header die vertelt hoelang je moet wachten:

HTTP/1.1 429 Too Many Requests
Retry-After: 60
{
"error": {
"type": "invalid_request",
"message": "Rate limit exceeded, try again after 60 seconds"
}
}

Er zijn geen headers die je verbruik bijhouden zolang het goed gaat. Wacht dus op de Retry-After en houd zelf bij hoeveel aanvragen je verstuurt. Cache daarnaast wat zelden verandert: de velden van een lijst hoef je niet bij elke paginaweergave op te halen, één keer per dag is genoeg.

Hoe ziet een foutmelding eruit?

Alle foutmeldingen hebben dezelfde opbouw, dus je kunt ze op één plek afvangen. Elke fout komt terug als JSON met een type, een message, en meestal een code en de parameter die de fout veroorzaakte.

{
"error": {
"type": "invalid_input",
"message": "Email: invalid address",
"code": 208,
"parameter": "email"
}
}

Het veld type kan drie waarden hebben: invalid_request als de aanroep zelf niet klopt, invalid_input als de meegestuurde gegevens niet kloppen, en internal als het aan de kant van Laposta misgaat.

Statuscodes

De API gebruikt gewone HTTP-statuscodes om aan te geven hoe de aanvraag is verlopen.

CodeBetekenis
200Gelukt.
201Gelukt, en er is iets aangemaakt.
400Er klopt iets niet aan de aanvraag of aan de meegestuurde gegevens.
401Geen geldige sleutel meegestuurd, of dit endpoint staat niet aan voor dit account.
402De gegevens klopten, maar de aanvraag is niet uitgevoerd.
404Dit pad bestaat niet.
429Te veel aanvragen in een minuut.
500Er ging iets mis aan de kant van Laposta.

Een object dat niet bestaat geeft geen 404 maar een 400 met foutcode 203. Test dus niet op 404 om te zien of een lijst of relatie bestaat, want die krijg je alleen bij een pad dat niet bestaat.

Foutcodes

Bij invalid_input staat een numerieke code, zodat je de fout kunt vertalen naar een melding voor je eigen gebruiker. Samen met parameter weet je precies om welk veld het gaat.

CodeBetekenis
201De parameter is leeg.
202De opgegeven waarde heeft niet de juiste vorm.
203De opgegeven waarde bestaat niet, bijvoorbeeld een id dat niet bij dit account hoort.
204De waarde bestaat al.
205De waarde is geen getal.
206De waarde is geen true of false.
207De waarde is geen datum.
208De waarde is geen e-mailadres.
209De waarde is geen URL.
210De waarde is geen geldige JSON.
999Er is iets anders mis met de waarde.

Een id van een ander account geeft dezelfde melding als een id dat nergens bestaat: Unknown list, met code 203. Dat is met opzet, zodat niet te zien is wat er in andere accounts staat.

Gerelateerde artikelen