Spring til indhold

API rate-limit — hvor lang tid tager mine kald?

Hvor lang tid tager det at lave mine ønskede API-kald, uden at ramme rate-limiten?

Svar: De fleste API'er begrænser, hvor mange kald man må lave pr. tidsenhed (rate limiting) for at beskytte serveren. GitHubs REST API tillader fx 5.000 kald i timen for autentificerede brugere, 60 i timen uautentificeret, og op til 15.000 i timen for GitHub Enterprise Cloud-apps. Beregneren viser, hvor lang tid et givet antal kald tager at gennemføre inden for en valgt grænse.

Formel

tid (timer) = ønskede kald ÷ tilladte kald pr. time

Eksempel: 20.000 kald ÷ 5.000/time = 4 timer

Symboler og enheder i formlen
SymbolBetydningEnhed
graense_kald_pr_timeRate limitkald/time
onsket_kaldØnsket antal kald i altkald
=Tid til at gennemføre alle kaldtimer
=Tilladte kald pr. minutkald/min.

Gyldighed og kilde

Kilde
GitHub REST API-dokumentation (rate limits)

Gælder ikke når

  • Konkrete rate limits varierer pr. API og kan ændres af udbyderen — tjek altid det specifikke API's dokumentation (fx via response-headeren x-ratelimit-limit) frem for at antage faste tal.

Regneeksempel

Beregnerens egne standardværdier sat ind. Tallene er regnet med præcis den formel værktøjet bruger.

Sat ind

  • Rate limit5.000 kald/time
  • Ønsket antal kald i alt20.000 kald

Giver

  • Tid til at gennemføre alle kald4,00 timer
  • Tilladte kald pr. minut83,33 kald/min.

Selve beregneren er låst

Opret en gratis bruger for at låse op for alle artikler, beregnere, skabeloner og sortiment — og få adgang til quizzer og klasser. Det tager under et minut: navn, email og en adgangskode. Intet betalingskort.

Vil du prøve noget først? Se hvad du kan bruge uden konto — junior-zonen, leksikonet, videoerne og mere.

Sådan bruger du den

Når en integration skal hente mange data fra et API, fx alle issues fra GitHub eller alle ordrer fra en webshop, sætter API'ets rate limit grænsen for, hvor hurtigt det kan gå. Beregneren viser, hvor lang tid kaldene tager, og hvor mange du må lave i minuttet.

Trin for trin

  1. Find grænsen i API'ets dokumentation eller i svar-headeren x-ratelimit-limit.
  2. Tæl hvor mange kald opgaven kræver, fx antal sider gange antal ressourcer.
  3. Del antal kald med grænsen pr. time. Det er tiden i timer.
  4. Planlæg pauser, så scriptet holder sig under grænsen pr. minut.

Typiske fejl

  • At sende alle kald på én gang. API'et svarer 403 eller 429, og nogle sætter en midlertidig blokering.
  • At glemme sideinddeling. Hent 100 pr. side, hvis API'et tillader det, i stedet for 30.
  • At hardcode grænsen. Læs x-ratelimit-remaining og x-ratelimit-reset i svarene, og vent til nulstillingen.

Eksempler fra hverdagen

Import af issues til et nyt værktøj

Du skal flytte 20.000 issues fra GitHub med et token (5.000 kald i timen).

Rate limit
Autentificeret bruger/OAuth-app (5.000 kald/time)
Ønsket antal kald i alt
20.000 kald

Det betyder: Importen tager 4 timer, og du må lave 83,33 kald/min. i snit. Kør den om natten med en pause mellem kaldene.

Script uden token

Et lille script uden login skal lave 1.000 kald mod GitHubs API.

Rate limit
Uautentificeret (60 kald/time pr. IP)
Ønsket antal kald i alt
1.000 kald

Det betyder: Det tager 16,67 timer, fordi grænsen kun er 60 kald i timen. Med et token går det på et kvarter.

Tommelfingerregel

5.000 kald i timen er ca. 83 i minuttet eller lidt under 1,4 i sekundet.

Sådan tjekker du svaret

Tid i timer gange grænsen pr. time skal give antal kald igen.