Przejdź do treści

Limit zapytań API — ile trwają moje wywołania?

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

Odpowiedź: 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.

Wzór

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

Eksempel: 20.000 kald ÷ 5.000/time = 4 timer

Symbole i jednostki we wzorze
SymbolZnaczenieJednostka
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.

Ważność i źródło

Źródło
GitHub REST API-dokumentation (rate limits)

Nie dotyczy, gdy

  • 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.

Przykład obliczeniowy

Wstawiono domyślne wartości kalkulatora. Liczby obliczono dokładnie tym wzorem, którego używa narzędzie.

Wstawiono

  • Rate limit5000 kald/time
  • Ønsket antal kald i alt20 000 kald

Dawca

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

Sam kalkulator jest zablokowane

Utwórz bezpłatne konto, aby odblokować wszystkie artykuły, kalkulatory, szablony i asortyment — i uzyskać dostęp do quizów i klas. Zajmuje to poniżej minuty: imię, email i hasło. Żadna karta kredytowa.

Chcesz najpierw czegoś spróbować? Zobacz, czego możesz używać bez konta — strefa junior, leksykon, filmy i więcej.

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.

Krok za krokiem

  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.

Typowe błędy

  • 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.

Przykłady z codzienności

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

To znaczy: Importen tager 4 godziny, 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
1000 kald

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

Reguła praktyczna

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

Jak sprawdzić odpowiedź

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