ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ APIИспользованиС ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ API2. OграничСния частоты запросов (Rate Limits)

2. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ частоты запросов (Rate Limits)

ДокумСнтация описываСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ограничСния частоты запросов (rate limiting) Π² ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ API GitVerse. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ инфраструктуру ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ API для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠžΠ±Ρ‰Π΅Π΅ описаниС

Π’ цСлях обСспСчСния ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ API GitVerse Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ограничСния Π½Π° количСство запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π»ΠΈΠΌΠΈΡ‚ Π½Π° запросы ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΏΠΎ ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ).

Π›ΠΈΠΌΠΈΡ‚ ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (ΠΏΠΎ ID)

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ ΠΊ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ запросам, содСрТащим Ρ‚ΠΎΠΊΠ΅Π½ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Authorization.

  • Π»ΠΈΠΌΠΈΡ‚ β€” 2000 запросов Π² час;
  • ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» β€” 1 час (3600 сСкунд);
  • сброс β€” автоматичСски ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ час.

⚠️ ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚Π° всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ запросы ΠΎΡ‚ этого ID Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒΡΡ Π΄ΠΎ сброса счСтчика.

Если Π»ΠΈΠΌΠΈΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½, API Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ с ΠΊΠΎΠ΄ΠΎΠΌ состояния 429 Too Many Requests.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ API (ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ с ошибкой) содСрТит Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ использованиС Π»ΠΈΠΌΠΈΡ‚ΠΎΠ²:

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
GitVerse-RateLimit-LimitМаксимальноС количСство запросов, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… Π·Π° час (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2000)
GitVerse-RateLimit-User-RemainingΠžΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ количСство запросов Π΄ΠΎ достиТСния Π»ΠΈΠΌΠΈΡ‚Π°
GitVerse-RateLimit-Retry-AfterΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ сСкунд, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ запрос послС ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π»ΠΈΠΌΠΈΡ‚Π°
Gitverse-Ratelimit-ResetВрСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° Unix (Π² сСкундах), ΠΊΠΎΠ³Π΄Π° Π»ΠΈΠΌΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½
Retry-AfterΠ‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ GitVerse-RateLimit-Retry-After

Π­Ρ‚ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ частотой запросов ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

Π£ΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ запрос

HTTP/1.1 200 OK
Date: Tue, 12 Aug 2025 17:00:00 GMT
Content-Type: application/json; charset=utf-8
GitVerse-RateLimit-Limit: 2000
GitVerse-RateLimit-User-Remaining: 1999
Vary: Origin
Cache-Control: max-age=0, private, must-revalidate, no-transform

ΠŸΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ID-Π»ΠΈΠΌΠΈΡ‚Π°

HTTP/1.1 429 Too Many Requests
Date: Tue, 12 Aug 2025 17:00:00 GMT
Content-Type: application/json; charset=utf-8
GitVerse-RateLimit-Limit: 2000
GitVerse-RateLimit-User-Remaining: 0
GitVerse-RateLimit-Retry-After: 2253
Gitverse-Ratelimit-Reset: 1754917200
Retry-After: 2253
Vary: Origin
Cache-Control: max-age=0, private, must-revalidate, no-transform

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ исчСрпал Π»ΠΈΠΌΠΈΡ‚ Π² 2000 запросов. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ запрос ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 2253 сСкунды (~37.5 ΠΌΠΈΠ½ΡƒΡ‚).

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

  1. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ 429, приостановитС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ запросов Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² Retry-After врСмя.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… запросов.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ состояния Π»ΠΈΠΌΠΈΡ‚ΠΎΠ²:

  • слСдитС Π·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ GitVerse-RateLimit-User-Remaining β€” ΠΎΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ запросом;
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Gitverse-Ratelimit-Reset для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сброса (Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Unix timestamp).

Π’Ρ‹ нашли Ρ‡Ρ‚ΠΎ искали?