Ограничения и квоты защищают инфраструктуру Google от автоматизированных процессов, которые ненадлежащим образом используют API передачи данных. Чрезмерные запросы от API могут быть результатом безобидной опечатки или неэффективно спроектированной системы, которая выполняет ненужные вызовы API. Независимо от причины, блокировка трафика из определенного источника, когда он достигает определенного уровня, необходима для общего состояния системы Google Workspace. Это гарантирует, что действия одного разработчика не могут негативно повлиять на более широкое сообщество.
Ошибки запроса API
В том маловероятном случае, если ваш запрос API завершится неудачно, ваше приложение получит ответ с кодом состояния HTTP. Код состояния 403
содержит информацию об ошибке неправильного ввода, а код состояния HTTP 503
содержит информацию об ошибке, указывающую, какие квоты API были превышены. Эти ответы позволяют вашему пользовательскому приложению обнаружить эти ошибки и предпринять соответствующие действия.
Выполняйте запросы в фиксированный период времени
Если ваши запросы необходимо выполнить в течение фиксированного периода времени, отправляйте их параллельно или используйте несколько потоков в приложении Java или C#. Например, разбейте свои запросы по месяцам или другому периоду времени. В случае с потоками попробуйте начать с 10 потоков, по одному потоку на запрос. Рекомендация по потоку имеет компромиссы и полезна не для всех ситуаций API. Если количество запросов станет слишком большим, возникнут ошибки квоты.
Ошибки, основанные на времени
Для всех ошибок, основанных на времени (максимум N событий в течение X секунд на поток), особенно ошибок кода состояния 503
, мы рекомендуем, чтобы ваш код перехватывал исключение и, используя алгоритм экспоненциальной задержки , подождал небольшую задержку, прежде чем повторить попытку. неудачный звонок. Пример API передачи данных для одного потока — подождать 5 секунд и повторить неудачный вызов. Если запрос успешен, повторите этот шаблон для других потоков. Если второй запрос не увенчался успехом, ваше приложение должно уменьшить частоту запроса до тех пор, пока вызов не будет успешным. Например, увеличьте начальную задержку в 5 секунд до 10 секунд и повторите неудачный вызов еще раз. Также определите лимит повторов. Например, повторите запрос 5–7 раз с разным временем задержки, прежде чем ваше приложение вернет пользователю ошибку.
Пределы
Категории лимитов API | Пределы |
---|---|
Запросов в секунду (QPS) | Ограничение проекта разработчика составляет 10 запросов в секунду (QPS) на аккаунт. |
Квоты
Категории квот API | Квоты |
---|---|
Максимальное количество запросов API в день | Максимальное количество запросов API в день — 500 000. |
Архив, срок действия сообщений | Групповые архивы не имеют срока действия. Сообщения остаются в архиве до тех пор, пока группа не будет удалена. Политика хранения электронной почты не влияет на сообщения в архиве группы. |
Размер почтового сообщения | Максимальный размер почтового сообщения составляет 25 МБ. Это ограничение включает в себя заголовки метаданных, тело и любые вложения сообщения. |
Другие виды лимитов
Другие виды лимитов | Ограничения и рекомендации |
---|---|
Форматы типов контента | Сообщение электронной почты должно быть в стандартном текстовом формате RFC 822 . В формате типа контента запроса для загрузки перенесенных электронных писем используется заголовок Content-type: message/rfc822 . |
Формат данных в ответах API | Формат данных ответа — нотация объектов Javascript ( JSON ). |
Политики размещения данных | API передачи данных не поддерживает политики расположения данных, требующие хранения данных в определенных географических или политических границах по договорным причинам. Не используйте API передачи данных, если для вашей учетной записи требуется местоположение данных. |
Параллельная вставка сообщений | API передачи данных поддерживает параллельные запросы на вставку электронной почты в разные групповые архивы. Но API передачи данных не поддерживает параллельную вставку сообщений в один и тот же групповой архив. Пакетные запросы также не поддерживаются в этой версии API. |
Несанкционированные запросы | API передачи данных не принимает несанкционированные запросы. Запрос считается неавторизованным, если не предоставлен токен авторизации. |