Limity Gmail API w 2026 roku: kwoty, limity żądań i sposoby ich obsługi

Gmail API - maj 2026

Limity Gmail API w 2026 roku: Limity, Limity pobierania, i Jak sobie z nimi radzić

Kompletny odnośnik do limitów Gmail API obejmujący limity na minutę, na użytkownika i dzienne, koszty jednostkowe metod, obsługę błędów 429 oraz gotowy do produkcji wzorzec wykładniczego opóźniania (exponential backoff) dla uwierzytelnionych użytkowników.

retry-handler.js
async function withBackoff(fn, maxRetries = 5) { let delay = 1000; for (let i = 0; i < maxRetries; i++) { try { return await fn(); } catch (err) { if (err.code !== 429) throw err; const jitter = Math.random() * 500; await sleep(delay + jitter); delay *= 2; } }}
Obsługuje 429 rateLimitExceeded i userRateLimitExceeded
Uwaga dotycząca przetwarzania danych

Zakres do sesji uwierzytelnionego użytkownika

Unipile nie prowadzi równoległego archiwum danych skrzynek pocztowych Gmail. Dostęp do wszystkich wiadomości e-mail jest zakres sesji uwierzytelnionego użytkownika kto wyraźnie udzielił zgody OAuth. Żadne dane nie są przechowywane niezależnie poza tym, co jest wymagane do obsłużenia tego konkretnego żądania.

Jak Działa Unipile

Niezależny pośrednik techniczny

Unipile działa jako niezależny pośrednik techniczny, wykonując wywołania API Gmail w imieniu każdego uwierzytelnionego użytkownika. Unipile nie jest partnerem ani powiązaną firmą Google. Dane uwierzytelniające nie są udostępniane między użytkownikami. Każdy token OAuth należy wyłącznie do użytkownika, który go nadał.

Limity platformy

Cadence to decyzja po stronie klienta

Unipile przekazuje limity zapytań i ograniczenia kwotowe API Gmaila, zgodnie z definicją Google. Częstotliwość i wielkość wywołań API w imieniu każdy użytkownik jest decyzja po stronie klienta. Unipile obsługuje błędy kwot i stosuje logikę wycofywania, ale częstotliwość wywołań pozostaje pod kontrolą programisty.

Aktualizacja maj 2026

Limity Gmail API w skrócie

Zanim napiszesz choćby jedną linię logiki ponawiania prób, musisz mieć jasny obraz wszystkich trzech osi limitów, które egzekwuje Google. Poniższa tabela stanowi odniesienie, które dodasz do zakładek: przepustowość na projekt, limity na użytkownika i dzienny limit, który resetuje się o północy czasu pacyficznego.

1,2 mln Jednostki limitu / min / projekt
6 tys. Jednostki limitu / min / użytkownik
80 mln Jednostki limitu / dzień / projekt
500 Limity wysyłanych e-maili dziennie (bezpłatnie)
Limit Wartość Wymiar Notatki
Limit przydzielania Gmail API (jednostki kwoty) 1 200 000 / min Na projekt GCP Współdzielone dla wszystkich użytkowników w projekcie
Limit użycia na użytkownika dla Gmail API 6000 obr./min Na skrzynkę pocztową użytkownika Najczęstszym wyzwalaczem błędu 429 w produkcji
Dzienna porcja 80 000 000 / dzień Na projekt GCP Resetuje się o północy czasu pacyficznego
Limit wysyłania Gmail (bezpłatny Gmail) 500 e-maili / dzień Według adresu nadawcy 2000 / dzień dla Google Workspace
Równoczesne żądania na skrzynkę pocztową 50 Za skrzynkę pocztową Ukryty limit — wyzwala 429 niezależnie od limitu
Żądania wsadowe na wywołanie 100 zapytań Na partię Użyj wsadowo, aby zmniejszyć zużycie jednostek limitu
Maksymalny rozmiar wiadomości (załączniki) 25 MB Za wiadomość Wraz z nagłówkami i zakodowanym ciałem
Limit żądania projektu 1 200 000 / min Jednostki limitów, na projekt GCP
Limit na użytkownika 6000 obr./min Na skrzynkę pocztową - najczęstszy wyzwalacz 429
Dzienna porcja 80 000 000 / dzień Dla projektu GCP resetuje się o północy czasu pacyficznego
Limit wysyłania Gmail 500 / dzień (bezpłatnie) 2000 / dzień dla Google Workspace
Współbieżne żądania 50 na skrzynkę Ukryty limit — odpala 429 nawet poniżej progu

Dokumentacja Google Developers, Gmail API - Limity użycia (ostatnia weryfikacja: maj 2026). Limity mogą ulec zmianie; zawsze sprawdzaj stronę limitów w konsoli GCP, aby uzyskać aktualne wartości dla swojego projektu.

Odniesienie

Trzy wymiary limitu

Limity wykorzystania Gmail API działają jednocześnie w trzech niezależnych osiach. Żądanie może zostać zablokowane, nawet jeśli dwa z trzech są w porządku. Zrozumienie rozgraniczenia między limitami na projekt, na użytkownika i dziennymi jest pierwszym krokiem do pisania odpornego kodu dla dowolnego uwierzytelnionego użytkownika.

Na projekt (GCP)

1 200 000 jednostek/min

To jest Sufit podwieszany we wszystkich użytkownikach w obrębie jednego projektu GCP. Jeśli 500 uwierzytelnionych użytkowników jednocześnie wykonuje wywołania Gmail API, całe spożycie ich limitów jest zliczane do tego jednego zasobu. Osiągnięcie go uruchamia Przekroczono limit żądań 429. Dzienny ekwiwalent wynosi 80 milionów sztuk, resetujące się o północy czasu pacyficznego.

Na użytkownika (na skrzynkę pocztową)

6000 jednostek/min

Ta czapka ma zastosowanie niezależnie do każdy uwierzytelniony użytkownik. Nawet jeśli Twój projekt ma wolne zasoby kwotowe, jeden użytkownik obciążający swoją skrzynkę pocztową szybkim odpytywaniem uruchomi Przekroczono limit żądań użytkownika 429. W aplikacjach wielodostępnych jest to limit, który uruchamia się najczęściej: jest on na użytkownika, a nie współdzielony.

Dzienna porcja

80 000 000 jednostek/dzień

Dzienny limit jest również na projekt. W przeciwieństwie do okien minutowych, które odnawiają się automatycznie po 60 sekundach, osiągnięcie dzienny limit oznacza brak dalszego dostępu do API do północy czasu pacyficznego. Błąd to dziennyLimitPrzekroczony. Zwiększenie limitu można zlecić za pośrednictwem konsoli GCP – omawiamy to w sekcji dotyczącej wielu najemców.

Ważne: Limity żądań interfejsu API Gmaila powyżej są mierzone w "jednostkach przydziału", a nie w liczbie surowych żądań. A wiadomości.wyslij połączenie kosztuje 100 jednostek, podczas gdy Wiadomości.lista kosztuje tylko 5. Oznacza to, że Twój budżet na praktyczne żądania może się znacznie różnić w zależności od tego, które metody wywołasz. Zobacz tabelę kosztów jednostkowych w następnej sekcji. Zwróć również uwagę, że Weryfikacja zakresu OAuth błędy z przepływu zgody są całkowicie oddzielone od tych błędów limitu czasu wykonania.

Referencja techniczna

Koszt jednostkowy limitu na metodę

Nie wszystkie wywołania interfejsu API Gmail są równe. Google przelicza wykorzystanie limitu na abstrakcyjne "jednostki", a każda metoda ma inny koszt. Znajomość tych kosztów pozwala obliczyć rzeczywistą pojemność żądań i zoptymalizować wywoływane punkty końcowe. Limit szybkości Gmail API na użytkownika wynoszący 6000 jednostek/min działa bardzo różnie w zależności od mieszanki wywołań.

Metoda Koszt jednostkowy Żądania / min (na użytkownika) Wskazówka optymalizacyjna
wiadomości.wyslij 100 60 wysyłanych/min maks Najwyższy koszt - korzystaj z wersji roboczej + wysyłaj tylko w razie potrzeby
wiadomości.wstaw 25 240/min max Wkładanie do skrzynki pocztowej - niższe od wysyłki
threads.pobierz 10 600/min maks Wolę threads.get od wielu messages.get.
wiadomości.pobierz 5 1200/min maks Dodaj pola= częściowa odpowiedź, aby utrzymać koszt na poziomie 5
Wiadomości.lista 5 1200/min maks Użyj history.list zamiast wzorców synchronizacji
threads.list 5 1200/min maks Paginacja z maxResults, aby zmniejszyć liczbę wywołań
użytkownicy.historia.lista 2 3000 obr./min maks. Najlepsze dla synchronizacji przyrostowej - najniższy koszt odpytywania
etykiety.lista 1 6000/min maks Buforuj wynik - etykiety rzadko się zmieniają
wiadomości.modyfikuj 5 1200/min maks Użyj batchModify do masowej aktualizacji etykiet
wiadomości.załączniki.pobierz 5 1200/min maks Pobieraj załączniki tylko wtedy, gdy są wyraźnie potrzebne
wiadomości.wyslij100 jednostek
wiadomości.wstaw25 sztuk
threads.pobierz10 jednostek
wiadomości.pobierz5 jednostek
Wiadomości.lista5 jednostek
threads.list5 jednostek
użytkownicy.historia.lista2 jednostki
etykiety.lista1 sztuka

Sztuczka: Możesz użyć pola= parametr zapytania dla częściowych odpowiedzi na dowolną metodę. Żądanie tylko pól, których potrzebuje Twoja aplikacja, nie zmniejsza surowego kosztu jednostkowego, ale znacznie zmniejsza rozmiar ładunku odpowiedzi i opóźnienie - warto, gdy zbliżasz się do limitów kwoty API Gmaila. Przetestuj swoje zapytania interaktywnie za pomocą Gmail OAuth Playground przed wdrożeniem na produkcję.

Zintegruj swój Gmail
Ukryty Limit

Ukryty limit 50 jednoczesnych żądań na skrzynkę pocztową

Istnieje limit, o którym większość poradników dotyczących Gmail API nigdy nie wspomina, a jednak jest on przyczyną tajemniczych błędów 429 w aplikacjach wielowątkowych lub asynchronicznych: Gmail narzuca maksymalnie 50 równoczesnych żądań w locie na skrzynkę pocztową. Ten limit jest całkowicie niezależny od twojego budżetu jednostek limitu. Możesz wykorzystać 500 z 6 000 dostępnych jednostek limitu i nadal otrzymać kod 429, jeśli masz jednocześnie otwartych 51 żądań przeciwko skrzynce pocztowej tego samego uwierzytelnionego użytkownika.

Dlaczego to zaskakuje deweloperów

Frameworki asynchroniczne, takie jak Node.js Promise.all() lub Python asyncio.gather() Ułatwienie wysyłania ponad 100 jednoczesnych żądań. Kiedy przetwarzasz synchronizację skrzynki pocztowej i rozsyłasz się, aby pobrać 200 wiadomości jednocześnie w imieniu pojedynczego uwierzytelnionego użytkownika, Gmail widzi 200 otwartych połączeń TCP do jednej skrzynki pocztowej i od razu zaczyna ograniczać przepustowość. Pulpit nawigacyjny limitów w GCP pokaże dużo pozostałych jednostek - pułap 50 współbieżnych połączeń nie jest uwidoczniony jako metryka limitu.

Kiedy się aktywuje

Limit 50 jednoczesnych połączeń jest aktywowany podczas masowego synchronizowania skrzynek pocztowych: pobierania dużych wątków, jednoczesnego pobierania załączników dla wielu wiadomości lub stronicowania przez duże liczby etykiet przy jednoczesnym przetwarzaniu wyników. Każdy kod, który uruchamia więcej niż 50 aktywnych żądań do tej samej skrzynki pocztowej, napotka ten limit.

Jak to naprawić

Użyj limitera współbieżności (semafora) ograniczonego dla każdego uwierzytelnionego użytkownika. W Node.js biblioteki takie jak p-ograniczenie działać dobrze. W Pythonie, asyncio.Semaphore(40) z bezpiecznym marginesem poniżej 50 zapobiega awarii. Utrzymuj współbieżność na użytkownika na poziomie 40 lub mniej na margines bezpieczeństwa.

concurrency-limiter.js - bezpieczne wywołania API Gmaila na użytkownika
// p-limit utrzymuje współbieżność na użytkownika poniżej 40import pLimit z 'p-limit';// Jedna instancja limitera na uwierzytelnionego użytkownika (kluczowana przez userId)const userLimiters = nowy Mapa();funkcja pobierzOgranicznik(userId) { jeśli !limiteryUżytkownika.posiada(userId)) { Limiterów użytkownika.zestaw(identyfikatorUzytkownika, pLimit(40)); } return Limiterów użytkownika.uzyskać(userId);}// Otocz każde wywołanie Gmail API limitem użytkownikaasync function pobierzWiadomosc(gmail, userId, messageId) { const limit = pobierzOgranicznik(userId); return ograniczenie(() => gmail.users.messages.uzyskać({ userId: 'ja', id: idWiadomosci, pola: 'id,id wątku,nagłówki ładunku,snippet' }));}
Odnośnik błędu

Rozszyfrowanie błędów: 429 vs 403

API Gmail zwraca dwa różne kody statusu HTTP dla problemów z limitami i dostępem: 429 (Zbyt wiele żądań) i 403 (Zabronione). W obrębie tych dwóch kodów znajdują się cztery odrębne przyczyny błędów, każda z innym pierwotnym źródłem i inną rozdzielczością. Mylenie ich marnuje czas debugowania. Uwaga: błędy przepływu OAuth, takie jak nieprawidłowe_poświadczeniebłędy tokena odświeżania - są całkowicie oddzielone od tych limitów szybkości API Gmaila w czasie rzeczywistym.

Kod HTTP Powód błędu Przyczyna Naprawić
429 Przekroczono limit żądań Przekroczono 1,2 mln jednostek kwoty/min na poziomie projektu GCP. Wszyscy uwierzytelnieni użytkownicy w projekcie zbiorczo osiągnęli limit. Wycofanie wykładnicze z jitterem. Poczekaj i spróbuj ponownie. W dłuższej perspektywie: podział na wiele projektów GCP lub złożenie wniosku o zwiększenie limitu.
429 Przekroczono limit żądań użytkownika Pojedynczy uwierzytelniony użytkownik przekroczył 6000 jednostek limitu na minutę LUB przekroczył 50 jednoczesnych żądań do swojej skrzynki pocztowej. Najczęstszy błąd produkcyjny 429. Kolejka per użytkownik z ogranicznikiem współbieżności. Zastosuj wzorzec semafora (maksymalnie 40 jednoczesnych połączeń). Dodaj wykładnicze wycofywanie się przy ponowieniu próby (błąd 429).
403 dziennyLimitPrzekroczony Projekt GCP zużył całe 80 milionów dziennych jednostek limitu przed północą czasu pacyficznego. Nie można ponowić próby do czasu resetu. Jest to twarde zatrzymanie. Czekaj na zresetowanie o północy czasu pacyficznego lub poproś o zwiększenie limitu w konsoli GCP. Zaimplementuj dzienne budżetowanie limitów na użytkownika w swojej aplikacji.
403 Przekroczono limit Został przekroczony określony podlimit. Może to również oznaczać, że limit wysyłania Gmail (500 e-maili/dzień za darmo, 2000 Workspace) został osiągnięty dla konkretnego adresu nadawcy. Sprawdź, który limit. Dla limitu wysyłki: przełącz adres wysyłki lub poczekaj 24 godziny. Dla innych sub-limitów: zidentyfikuj konkretną metrykę w panelu limitów GCP.
429 Przekroczono limit żądań

Limit projektu: 1,2 mln jednostek kwotowych/min dla wszystkich użytkowników.

Napraw Wykładnicze wycofywanie się + jitter. Długoterminowo: wiele projektów GCP lub prośba o zwiększenie limitu.

429 Przekroczono limit żądań użytkownika

Pojedynczy użytkownik przekroczył 6000 jednostek/min LUB 50 współbieżnych żądań. Najczęstszy kod 429.

Napraw Kolejka per użytkownik + semafor (maks. 40 równoległych). Dodaj mechanizm ponawiania z wykładniczym wycofywaniem.

403 dziennyLimitPrzekroczony

Projekt skonsumował wszystkie 80 milionów dziennych jednostek limitu. Całkowite wstrzymanie do północy czasu pacyficznego.

Napraw Poczekaj na ponowne uruchomienie lub prześlij żądanie zwiększenia limitu przez konsolę GCP.

403 Przekroczono limit

Limit wiadomości wychodzących Gmail (500/dzień bezpłatnie, 2000 w Workspace) osiągnięty przez nadawcę.

Napraw Sprawdź pulpit GCP pod kątem konkretnego podlimitu. W przypadku wysyłania: zmień adres lub poczekaj 24 godziny.

Nie mylić ich z błędami OAuth. Błędy takie jak nieprawidłowe_poświadczenie, odmowa_dostępuoraz nieprawidłowy_klient pochodzą z warstwy wymiany żetonów OAuth, a nie z egzekwowania limitu Gmail API. Są one objęte osobną ochroną w sekcji Przewodnik po błędach Google OAuth. Jeśli zobaczysz 401 Unauthorized, jest to również problem z uwierzytelnianiem - sprawdź swoje Weryfikacja aplikacji OAuth status i czy token odświeżający wygasł.
Kod Produkcyjny

Gotowość do produkcji: wykładnicze wycofywanie + jitter

Wycofanie wykładnicze jest jedyną prawidłową odpowiedzią na kod błędu 429 z Gmail API. Natychmiastowe ponawianie próby pogarsza problem: dodajesz kolejne żądania do już ograniczonego okna limitu. Dodanie losowego szumu zapobiega problemowi "grzmocącego stada", w którym wszystkie klienty we flocie ponawiają próby dokładnie w tym samym momencie. Poniżej znajdują się kompletne, przetestowane w produkcji implementacje w Node.js i Pythonie.

1s

Początkowe opóźnienie

Zacznij od 1000 ms przy pierwszej ponownej próbie. Nigdy nie ponawiaj próby natychmiast po 429.

x2

Mnożnik wykładniczy

Opóźnienie podwojone przy każdej próbie: 1s, 2s, 4s, 8s, 16s. Limit maksymalnie 32-64 sekundy.

+R

Losowe drżenie

Dodaj losowe opóźnienie w zakresie 0-500 ms, aby zapobiec zsynchronizowanemu ponawianiu prób w wielu równoległych procesach roboczych.

gmail-opóźnienie
// gmail-backoff.js - production-ready exponential backoff + jitter// Handles rateLimitExceeded and userRateLimitExceeded (gmail api rate limits)const sleep = (ms) => new Promise(r => setTimeout(r, ms));async function withGmailBackoff(fn, { maxRetries = 5, initialDelay = 1000, maxDelay = 32000, jitter = 500} = {}) { let delay = initialDelay; for (let attempt = 0; attempt < maxRetries; attempt++) { try { return await fn(); } catch (err) { const code = err?.code || err?.response?.status; const reason = err?.errors?.[0]?.reason || ''; // Only retry on quota errors - not on 403 dailyLimitExceeded const isRetryable = code === 429 || reason === 'rateLimitExceeded' || reason === 'userRateLimitExceeded'; if (!isRetryable || attempt === maxRetries - 1) throw err; const wait = Math.min(delay + Math.random() * jitter, maxDelay); await sleep(wait); delay *= 2; } }}// Usage: on behalf of each authenticated userconst message = await withGmailBackoff(() => gmail.users.messages.get({ userId: 'me', id: messageId }));
Ponawia żądania tylko dla odpowiedzi 429. Nie ponawia żądań dla dailyLimitExceeded (403). Opóźnienie jest ograniczone do 32s.
# gmail_backoff.py – wykładniczy algorytm odłożenia + jitter dla limitów przepustowości API Gmailaimport asyncio, losowyz googleapiclient.errors import Błąd HTTPasynchroniczne def z_powrotem_gmail( funkcja, max_ponowień=5, opóźnienie_początkowe=1.0, max_opóźnienie=32.0, drżenie0.5): "Wykonaj każde wywołanie Gmail API z wykładniczym ponownym próbami i losowym jitterem. Obsługuje limity żądań Gmail API: rateLimitExceeded i userRateLimitExceeded. """ opóźnienie = początkowe_opóźnienie dla próba w zakres(maksymalna_liczba_ponowień): próbuj: return funkcja() Funkcja # to synchroniczne wywołanie klienta Gmaila oprócz Błąd HTTP jako e: status = e.resp.status powód = e.error_details[0].uzyskać('powód', '') jeśli e.szczegóły_błędu inaczej '' # Ponów próbę przy kodzie 429; NIE ponawiaj próby przy kodzie dailyLimitExceeded ponawialny = status == 429 lub powód w ( 'limitPrzekroczony', 'przekroczono limit żądań użytkownika' ) jeśli nie ponawialny lub próba == max_ponownych_prób - 1: wzrastać czekaj min(opóźnienie + losowy.mundur(0, jitter), max_delay) czekać asyncio.sen(czekaj) opóźnienie *= 2
Kompatybilny z Google API Python Client. Gotowy do pracy asynchronicznej z asyncio.sleep.
Najlepsze praktyki

Strategie, aby pozostać poniżej limitu

Backoff zajmuje się sytuacjami awaryjnymi. Te proaktywne strategie pozwalają od samego początku uniknąć przekroczenia limitów API Gmaila. Zostały one wymienione w kolejności od największego do najmniejszego wpływu na zużycie limitu. Połączenie dwóch lub trzech z nich może obniżyć jednostkowe koszty o 80% w przypadku typowych obciążeń charakteryzujących się intensywnym odczytem.

Kolejka dla uwierzytelnionego użytkownika

Utrzymaj osobną kolejkę żądań na uwierzytelniony użytkownik. Nigdy nie mieszaj żądań od różnych użytkowników we wspólnej puli. Izoluje to ekspozycję limitów w przeliczeniu na użytkownika i umożliwia sprawiedliwe kolejkowanie: jeśli jeden użytkownik wywoła 429, zatrzymuje się tylko jego kolejka – inni kontynuują z pełną prędkością. Użyj Redis lub kolejki w pamięci z kubełkiem tokenów na użytkownika.

Użyj history.list zamiast messages.list do synchronizacji

Sondaż Wiadomości.lista na timerze jest najczęstszym błędem w limitach użycia interfejsu API Gmaila. użytkownicy.historia.lista tylko koszty 2 jednostki (w porównaniu z 5 w przypadku listy wiadomości) i zwraca jedynie różnicę od ostatniego punktu synchronizacji. W przypadku aplikacji intensywnie odczytujących dane, synchronizujących duże skrzynki pocztowe, samo to przełączenie może zmniejszyć zużycie limitu o 60%. Zapisz Identyfikator Historii z każdej odpowiedzi jako wskaźnik. Połącz z notyfikacjami push Gmail (Pub/Sub) w celu synchronizacji w czasie rzeczywistym.

Wywołania wsadowe API

API Gmail obsługuje żądania wsadowe: łącz do 100 indywidualnych próśb w jedno wywołanie HTTP. Każde pod-żądanie nadal nalicza normalny koszt jednostkowy, ale zmniejszasz narzut TCP i zużycie "slotów" limitu szybkości. Jest to szczególnie skuteczne w wiadomości.pobierz operacje, w których należy pobrać wiele wiadomości z delty synchronizacji. Sprawdź Instrukcja zbiorcza Gmail szczegółów implementacyjnych.

Użyj częściowych odpowiedzi (pola=)

Każda metoda Gmail API obsługuje pola= parametr, aby pobrać tylko te właściwości, które są potrzebne. Chociaż nie zmniejsza to jednostkowego kosztu żądania, pozwala zmniejszyć objętość odpowiedzi o 60–90% i skrócić opóźnienie. W przypadku wiadomości.pobierz zwracając tylko id,threadId,nagłówkiPayload,fragment, ładunek spada z ponad 40 KB do poniżej 2 KB. Mniej sieci = szybsze iteracje = więcej swobody przed osiągnięciem dziennego limitu API Gmail.

Push czy Pull: właściwy model synchronizacji

Unikaj wiadomości.lista co 30s

5 jednostek na zapytanie + N x 5 jednostek do pobrania każdej nowej wiadomości. Dla 100 użytkowników x 30s interwał = 1 mln jednostek/godzinę samych narzutów zapytania.

Lepiej historia.lista na timer

2 jednostki na zapytanie, zwraca tylko zmiany od ostatniej synchronizacji. 60% jest tańsze niż odpytywanie listy wiadomości w celu uzyskania tego samego wyniku.

Najlepszy Powiadomienia Push Gmail (Pub/Sub)

Zerowy koszt za wykorzystanie kwoty na dostawę. Google wysyła powiadomienie, gdy skrzynka pocztowa ulegnie zmianie - pobierasz tylko różnice. Wymaga publicznego punktu końcowego webhook. Idealne dla aplikacji zbliżonych do czasu rzeczywistego.

Zintegruj swój Gmail
Zaawansowany

Skalowanie wielodostępne i wnioskowanie o zwiększenie limitu zasobów

Gdy wykraczasz poza kilka połączonych kont, limity Gmail API stają się zagadnieniem architektonicznym. Niniejsza sekcja omawia shardowanie projektów GCP dla wdrożeń na dużą skalę oraz szczegółowy proces ubiegania się o zwiększenie limitu Gmail API od Google.

Uwaga dotycząca limitu 100 użytkowników testowych: Aplikacje w trybie deweloperskim (jeszcze nie opublikowane przez weryfikację Google OAuth) są ograniczone do 100 testerów. To całkowicie odrębny limit od limitów API. Jeśli osiągasz limit 100 użytkowników, Twoja aplikacja musi zostać zweryfikowana i opublikowana. Zobacz Przewodnik po limicie 100 użytkowników dla pełnego przepływu weryfikacji. Omówione tutaj limity wzywania API Gmaila dotyczą tylko zweryfikowanych, opublikowanych aplikacji z rzeczywistymi uwierzytelnionymi użytkownikami.
01

Sharding projektu GCP

Limit jednostek kwotowych 1,2 mln/min to na projekt GCP. Jeśli masz 1000 uwierzytelnionych użytkowników aktywnie synchronizujących dane, możesz podzielić ich między dwa projekty GCP, aby podwoić swoją efektywną pojemność na poziomie projektu. Każdy projekt potrzebuje własnych poświadczeń klienta OAuth i ekranu zgody. Użytkownicy powiązani z projektem A nie mogą korzystać z limitu projektu B. Jest to szczególnie przydatne w scenariuszach synchronizacji poczty e-mail o dużym natężeniu, gdzie limit dziennego limitu API Gmaila jest problemem. Monitoruj wykorzystanie limitu w konsoli GCP, aby wiedzieć, kiedy potrzebne jest fragmentowanie.

02

Wniosek o zwiększenie limitu

Google przyznaje zwiększenia limitów na żądanie, ale zajmuje to trochę czasu (zwykle 3-5 dni roboczych na pierwszą weryfikację, do 2 tygodni w przypadku dużych zwiększeń). Złóż wniosek za pośrednictwem konsoli GCP: API i usługi > Gmail API > Limity > "Poproś o wyższy limit". Google wymaga szczegółowego uzasadnienia. Kluczowe elementy do uwzględnienia: szacowana dzienna liczba aktywnych użytkowników, średnia liczba zapytań na użytkownika dziennie, podział według metod (wiadomości.wyslij vs Wiadomości.lista itp.), a przypadek użycia produkcyjnego. Niejasne prośby są odrzucane. Podaj konkretne liczby z telemetrii ze środowiska przejściowego.

03

Monitoruj i budżetuj dzienne limity

Zaimplementuj śledzenie budżetu limitów dla każdego uwierzytelnionego użytkownika w swojej warstwie danych. Śledź JednostkiKwotyWykorzystane dla każdego użytkownika dziennie. Gdy użytkownik zbliży się do 70–80% swojego dziennego limitu, należy przełączyć go na tryb wyłącznie push na pozostałą część dnia. Zapobiega to sytuacji, w której jeden użytkownik generujący duży ruch nieproporcjonalnie wyczerpie dzienny limit na poziomie projektu. Częstotliwość przydzielania limitu na użytkownika jest decyzja po stronie klienta pod względem projektu aplikacji.

Co uwzględnić we wniosku o zwiększenie limitu

Podstawowe zużycie bieżące: "Obecnie używamy X milionów jednostek dziennie przez Y aktywnych użytkowników."

Prognoza wzrostu: "Za 6 miesięcy spodziewamy się Z użytkowników, co będzie wymagało około W milionów sztuk dziennie."

Przypadek użycia: "Nasz produkt odczytuje Gmail, aby zasilić [synchronizację CRM / skrzynkę odbiorczą ATS / analizę wiadomości e-mail]. Użytkownicy uwierzytelniają się indywidualnie poprzez OAuth."

Podział metody: "Główne metody: messages.list (40%), messages.get (35%), history.list (20%), messages.send (5%)."

Zacznij budować na dużą skalę
Rozwiązanie Zarządzane

Jak Unipile zarządza ograniczaniem Gmail-a w imieniu uwierzytelnionego użytkownika

Budowa całej infrastruktury ograniczającej, opisanej w tym przewodniku – kolejki per użytkownik, semafory, wykładnicze wycofywanie, budżetowanie dziennych limitów, zarządzanie projektem GCP – zajmuje tygodnie i wymaga ciągłej konserwacji. Unipile obsługuje wszystko to jako niezależny pośrednik techniczny, dzięki czemu Twój zespół może skupić się na logice produktu, a nie na „hydraulice” kwot. Dostęp do Gmail API przez Unipile nie jest powiązany, popierany ani sponsorowany przez Google.

Zarządzane wykładnicze wycofywanie się + jitter

Każde wywołanie Gmail API w imieniu każdy uwierzytelniony użytkownik przechodzi przez warstwę wykładniczego ograniczania liczby żądań Unipile. błędy 429 są przezroczyste dla Twojego kodu: Unipile automatycznie ponawia próby z pełnym wykładniczym ograniczaniem i losowością, prezentując jedynie ostateczny sukces lub jasny błąd po maksymalnej liczbie prób.

Izolacja kolejek dla każdego użytkownika

Unipile utrzymuje ścisłą izolację per_użytkownik. Przydławiony uwierzytelniony użytkownik nigdy nie wpływa na przepustowość innego użytkownika. Każdy powiązane konto posiada własną kolejkę z indywidualnymi limitami współbieżności, zapewniając sprawiedliwą alokację zasobów dla całej bazy użytkowników.

Zunifikowany model: Gmail + Outlook + IMAP

Ta sama logika ograniczania ma zastosowanie jednolicie do Gmail, Perspektywy (Microsoft 365 i Exchange Online), a IMAP. Twoja aplikacja używa jednego znormalizowanego API niezależnie od tego, z jakim dostawcą poczty e-mail połączył się uwierzytelniony użytkownik. Brak kodu ograniczającego tempo specyficzny dla dostawcy do utrzymania.

Zgodny z RODO, zgodny z SOC2

Dane dostępne za pośrednictwem Unipile to zakres sesji uwierzytelnionego użytkownika kto udzielił zgody OAuth. Brak równoległego archiwum, brak długoterminowego przechowywania danych skrzynki pocztowej poza wymogami sesji. Zgodność z RODO i SOC2 wbudowana.

unipile-gmail-messages.js - nie potrzeba kodu limitu
Z Unipile: bez wycofywania, bez semaforów, bez śledzenia limitówUnipile obsługuje wszystkie limity API Gmail jako niezależny pośrednik technicznyimport UnipileClient z '@unipile/node-sdk';const klient = nowy UnipileClient({ apiKey: process.env.UNIPILE_API_KEY, baseUrl: 'https://api3.unipile.com:13613'});// Wyświetl wiadomości z połączonego konta Gmail uwierzytelnionego użytkownika// Throttling, wycofywanie i izolacja per-użytkownik obsługiwane po stronie serwera przez Unipileasync function uzyskaj ostatnie emaile(accountId) { const wiadomości = czekać client.messaging.listMessages({ identyfikator_konta: accountid, // powiązane konto uwierzytelnionego użytkownika limit: 25 }); return wiadomości;}// Działa identycznie dla kont Gmail, Outlook i połączonych kont IMAP// Ten sam kod, brak obsługi limitów żądań specyficznych dla dostawcy
Unipile zarządza wykładniczym wycofywaniem się i kolejkami na użytkownika po stronie serwera. W Twojej aplikacji nie ma kodu kwot.
Unipile nie jest powiązany, wspierany ani sponsorowany przez Google. Gmail jest znakiem towarowym Google LLC. Wszystkie limity kwotowe interfejsu API Gmaila są określone przez Google i mogą ulec zmianie. Unipile przekazuje i zarządza tymi limitami w imieniu uwierzytelnionych użytkowników jako niezależny pośrednik techniczny.

Limity żądań Gmail API - FAQ

Odpowiedzi na najczęstsze pytania dotyczące limitów użycia interfejsu API Gmail, jednostek kwoty, błędów 429 i skalowania integracji.

Interfejs API Gmail wymusza limity w trzech wymiarach jednocześnie. Na poziomie projektu: 1 200 000 jednostek kwotowych na minutę współdzielonych przez wszystkich użytkowników, i 80 000 000 jednostek przydziału dziennie. Na poziomie użytkownika: 6000 jednostek limitu na minutę na skrzynkę pocztową. Istnieje również ukryty limit 50 równoczesnych żądań na skrzynkę pocztową co może wywołać błąd 429, nawet jeśli są Państwo znacznie poniżej limitu jednostek przydziału. Każda metoda ma inną cenę jednostkową - wiadomości.wyslij kosztuje 100 jednostek, podczas gdy Wiadomości.lista kosztuje tylko 5.

Wdrożyć wykładnicze wycofywanie z jitteremRozpocznij od 1000 ms przy pierwszej próbie ponowienia, podwajaj przy każdej próbie, dodawaj losowe opóźnienie 0-500 ms, ogranicz do 32 000 ms. Nigdy nie ponawiaj natychmiast. Dodaj ogranicznik współbieżności zakres na uwierzytelnionego użytkownika, utrzymując żądania w toku poniżej 40 na skrzynkę pocztową. Użyj kolejka na użytkownika aby jeden ograniczony użytkownik nie wpływał na innych. W dłuższej perspektywie przełącz sondowanie z Wiadomości.lista (5 sztuk) do historia.lista (2 sztuki) i rozważyć powiadomienia push Gmail, aby całkowicie wyeliminować odpytywanie.

API Gmail dzienny limit wynosi 80 000 000 jednostek limitu na projekt GCP, resetujący się o północy czasu pacyficznego. Ten limit zwraca 403 przekroczono dzienny limit błąd – w przeciwieństwie do błędów 429 na minutę, tego nie można ponowić do czasu dziennego resetu. Aby go zwiększyć: Konsola GCP > Interfejsy API i usługi > Gmail API > Limity > Poproś o wyższy limit. Podaj bieżące użycie, prognozy wzrostu i swój przypadek użycia. Zatwierdzenie zazwyczaj trwa 3-5 dni roboczych.

Gmail Limit wysyłki to 500 e-maili dziennie darmowych kont Gmail oraz 2000 e-maili dziennie dla kont Google Workspace. Ten limit dotyczy jednego adresu nadawcy i jest niezależny od budżetu jednostek limitu przydzielonych dla interfejsu API. Każdy wiadomości.wyslij połączenie kosztuje również 100 jednostek limitu, więc przy limicie 6000 jednostek/min na użytkownika możesz wysłać maksymalnie 60 e-maili na minutę przed osiągnięciem limitu limitu wiadomości e-mail API Gmail na użytkownika – ale w typowych zastosowaniach najpierw zostanie osiągnięty dzienny limit 500/2000.

Przekroczono limit żądań oznacza, że cały projekt GCP przekroczył 1 200 000 jednostek limitu/min - wszyscy uwierzytelnieni użytkownicy razem. Przekroczono limit żądań użytkownika oznacza, że pojedynczy użytkownik przekroczył 6000 jednostek limitu na minutę lub wysłano ponad 50 jednoczesnych żądań do ich skrzynki pocztowej. W produkcyjnych aplikacjach wielodostępnych, Przekroczono limit żądań użytkownika jest znacznie częstsze, ponieważ poszczególni użytkownicy mogą niezależnie osiągnąć swoje limity, niezależnie od ogólnego marginesu projektu. Oba zwracają błąd HTTP 429 i oba reagują na wycofywanie wykładnicze.

Przejdź do Konsola GCP > Interfejsy API i usługi > Gmail API > Limity i kliknij "Poproś o wyższy limit". Twoja prośba musi zawierać konkretne uzasadnienie: obecny dzienny poziom użytkowania, prognozę wzrostu liczby użytkowników w ciągu 6 miesięcy, opis sposobu uwierzytelniania użytkowników indywidualnie poprzez OAuth oraz podział metod API według proporcji. Niejasne prośby są odrzucane. Upewnij się również, że Twoja aplikacja jest OAuth zweryfikowane - zweryfikowane aplikacje są ograniczone do 100 użytkowników testowych niezależnie od limitu. Przegląd zazwyczaj trwa 3-5 dni roboczych do pierwszej odpowiedzi.

wiadomości.wyslij koszty 100 jednostek kwotowych za połączenie - najdroższa metoda Gmail API. Z limitami 6 000 jednostek na minutę na użytkownika, możesz wysłać co najwyżej 60 e-maili na minutę na uwierzytelnionego użytkownika. Dla porównania: wiadomości.pobierz kosztuje 5 jednostek (1200 połączeń/min), historia.lista kosztuje 2 jednostki (3000 rozmów/min), a etykiety.lista kosztuje 1 jednostkę (6000 połączeń/min). W przypadku działań na dużą skalę rozważ, czy przypadek użycia faktycznie wymaga dzwonienia wiadomości.wyslij lub czy tworzenie szkiców i wysyłanie ich w partiach jest bardziej efektywne.

Unipile uzyskuje dostęp tylko do danych jawnie żądanych przez Twoją aplikację, zakres sesji uwierzytelnionego użytkownika kto udzielił zgody OAuth. Nie ma równoległego archiwum, ani niezależnego długoterminowego przechowywania danych poczty e-mail poza tym, co jest wymagane do obsługi bieżącego żądania API. Dane każdego uwierzytelnionego użytkownika są odizolowane: Unipile działa jako niezależny techniczny pośrednik wyłącznie w imieniu tego konkretnego użytkownika.

Częstotliwość i głośność wywołań API wykonywanych w imieniu każdego uwierzytelnionego użytkownika jest decyzja po stronie klienta. Unipile zarządza infrastrukturą wycofywania się i kolejkowania, ale Twoja aplikacja decyduje, jak często żądać danych. Unipile transparentnie obsługuje błędy limitów i stosuje logikę ponawiania prób, ale ogólne tempo wywołań – w tym liczba użytkowników synchronizujących się jednocześnie i ich częstotliwość – pozostaje pod Twoją kontrolą jako dewelopera tworzącego rozwiązania oparte na Unipile.

Nie. Unipile to nie powiązane z Google, nie zatwierdzone ani sponsorowane przez Google. Unipile jest niezależnym pośrednikiem technicznym, który wykonuje wywołania Gmail API w imieniu uwierzytelnionych użytkowników, którzy indywidualnie wyrazili zgodę w OAuth za pośrednictwem własnych kont Google. Gmail jest znakiem towarowym Google LLC. Wszystkie limity i zasady dotyczące Gmail API są definiowane przez Google i mogą ulec zmianie niezależnie od Unipile.

Pytania dotyczące limitów Gmail API i integracji z Unipile? Nasz zespół jest do Twojej dyspozycji.

Porozmawiaj z ekspertem
Prowadnica słupka

Kompletny przewodnik po API e-mail dla programistów

Limity Gmail są jednym z elementów obrazu interfejsu API poczty e-mail. Przewodnik po filarach obejmuje integrację Gmail, Outlook i IMAP od początku do końca.

Przeczytaj przewodnik po interfejsie API poczty e-mail
pl_PLPL