Limites de uso

Como a API Planilhas Google é um serviço compartilhado, aplicamos cotas e limitações para garantir que ela seja usada de maneira justa por todos os usuários e para proteger a integridade geral do sistema do Google Workspace.

Limites de cotas

Embora a Sheets API não tenha limites rígidos de tamanho para uma solicitação de API, os usuários podem ter limites de diferentes componentes de processamento não controlados pelo Planilhas Google. Para acelerar as solicitações, o Google recomenda um payload máximo de 2 MB.

A Sheets API tem cotas por minuto, e elas são preenchidas a cada minuto. Por exemplo, há um limite de solicitação de leitura de 300 por minuto por projeto. Se o aplicativo enviar 350 solicitações em um minuto, as 50 solicitações adicionais excederão a cota e gerarão uma resposta de código de status HTTP 429: Too many requests. Se isso acontecer, use um algoritmo de retirada exponencial. Depois de um minuto, é possível executar as solicitações novamente. Os usuários podem enviar várias solicitações ao mesmo tempo, desde que estejam dentro do limite da cota.

Todas as solicitações do Planilhas são aplicadas atomicamente. Ou seja, se qualquer solicitação não for válida, toda a atualização não será bem-sucedida e nenhuma das alterações (possivelmente dependentes) será aplicada.

A tabela a seguir detalha os limites de solicitação. Contanto que você se mantenha dentro das cotas por minuto, não há limite para o número de solicitações que podem ser feitas por dia.

Cotas
Solicitações de leitura
Por minuto em cada projeto 300
Por minuto, por usuário e por projeto 60
Solicitações de gravação
Por minuto em cada projeto 300
Por minuto, por usuário e por projeto 60

Veja mais detalhes sobre os limites de arquivos em Arquivos que você pode armazenar no Google Drive.

Resolver erros de cota com base no tempo

Para todos os erros com base no tempo (máximo de N solicitações por X minutos), recomendamos que seu código capture a exceção e use uma espera exponencial truncada para garantir que seus dispositivos não gerem carga excessiva.

A espera exponencial é uma estratégia padrão de tratamento de erros para aplicativos de rede. Um algoritmo de espera exponencial repete as solicitações usando tempos de espera exponencialmente crescentes entre as solicitações, até um tempo de espera máximo. Se as solicitações ainda não tiverem sucesso, é importante que os atrasos entre solicitações aumentem ao longo do tempo até que a solicitação seja bem-sucedida.

Exemplo de algoritmo

Um algoritmo de espera exponencial repete solicitações exponencialmente, aumentando o tempo de espera entre novas tentativas até um tempo máximo de retirada. Por exemplo:

  1. Faça uma solicitação à API Google Sheets.
  2. Se a solicitação falhar, aguarde 1 + random_number_milliseconds e tente novamente.
  3. Se a solicitação falhar, aguarde 2 + random_number_milliseconds e tente novamente.
  4. Se a solicitação falhar, aguarde 4 + random_number_milliseconds e tente novamente.
  5. E assim por diante, até um tempo maximum_backoff.
  6. Continue aguardando e tentando novamente até um número máximo de novas tentativas, mas não aumente o período de espera entre elas.

onde:

  • O tempo de espera é min(((2^n)+random_number_milliseconds), maximum_backoff), com n incrementado em 1 para cada iteração (solicitação).
  • random_number_milliseconds é um número aleatório de milissegundos inferior ou igual a 1.000. Isso ajuda a evitar casos em que muitos clientes são sincronizados por alguma situação e todos tentam novamente de uma vez, enviando solicitações em ondas sincronizadas. O valor de random_number_milliseconds é recalculado após cada solicitação de repetição.
  • maximum_backoff costuma ser 32 ou 64 segundos. O valor apropriado depende do caso de uso.

O cliente pode continuar tentando novamente depois de maximum_backoff. As novas tentativas depois desse ponto não precisam continuar aumentando o tempo de espera. Por exemplo, se um cliente usar um tempo maximum_backoff de 64 segundos, depois de atingir esse valor, ele poderá tentar novamente a cada 64 segundos. Em algum momento, os clientes devem ser impedidos de tentar novamente indefinidamente.

O tempo de espera entre novas tentativas e o número de novas tentativas depende do seu caso de uso e das condições da rede.

Preços

O uso da API Google Sheets está disponível sem custo adicional. Exceder os limites de solicitação de cota não gera cobranças extras e sua conta não é faturada.

Solicitar aumento de cota

Dependendo do uso de recursos do projeto, é possível solicitar um aumento de cota. Considera-se que as chamadas de API de uma conta de serviço usam uma única conta. A solicitação de uma cota maior não garante a aprovação. O aumento de cotas pode levar mais tempo para ser aprovado.

Nem todos os projetos têm as mesmas cotas. À medida que você usa cada vez mais o Google Cloud, pode ser necessário aumentar suas cotas. Caso espere um aumento de uso significativo, solicite o ajuste das cotas na página "Cotas" no Console do Google Cloud.

Para saber mais, consulte os seguintes recursos: