Límites de uso

Dado que la API de Google Chat es un servicio compartido, aplicamos cuotas y limitaciones para asegurarnos de que todos los usuarios la utilicen de manera justa y para proteger el rendimiento general de Google Workspace.

Si superas una cuota, recibirás una respuesta con el código de estado HTTP 429: Too many requests. Las verificaciones adicionales del límite de frecuencia en el backend de Chat también pueden generar la misma respuesta de error. Si se produce este error, debes usar un algoritmo de retirada exponencial y volver a intentarlo más tarde. Siempre y cuando te mantengas dentro de las cuotas por minuto que se indican en las siguientes tablas, no hay límite para la cantidad de solicitudes que puedes realizar por día.

Es posible que se apliquen varios tipos de cuotas a los métodos de la API de Chat: cuotas por proyecto, por espacio y por usuario.

Cuotas por proyecto

Las cuotas por proyecto limitan la frecuencia de las consultas para un proyecto de Google Cloud y, por lo tanto, se aplican a una sola app de Chat que llama a los métodos especificados de la API de Chat para cada cuota.

En la siguiente tabla, se detallan los límites de consultas por proyecto. También puedes encontrar estos límites en la página Cuotas.

Cuota por proyecto

Métodos de la API de Chat

Límite (por 60 segundos)

Operaciones de escritura de mensajes por minuto

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

Operaciones de lectura de mensajes por minuto

spaces.messages.get

spaces.messages.list

3000

Búsquedas de mensajes por minuto

spaces.messages.search

300

Operaciones de escritura de membresías por minuto

spaces.members.create

spaces.members.delete

300

Operaciones de lectura de membresías por minuto

spaces.members.get

spaces.members.list

3000

Operaciones de escritura de espacios por minuto

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

Operaciones de lectura de espacios por minuto

spaces.get

spaces.list

spaces.findDirectMessage

spaces.search

3000

Operaciones de lectura de búsqueda de espacios por minuto (sin privilegios de administrador)

spaces.search

300

Operaciones de escritura de archivos adjuntos por minuto

media.upload

600

Operaciones de lectura de archivos adjuntos por minuto

spaces.messages.attachments.get

media.download

3000

Operaciones de escritura de reacciones por minuto

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

Operaciones de lectura de reacciones por minuto

spaces.messages.reactions.list

3000

Operaciones de escritura de CustomEmoji por minuto

customEmojis.create

customEmojis.delete

600

Operaciones de lectura de CustomEmoji por minuto

customEmojis.get

customEmojis.list

3000

Operaciones de escritura de secciones por minuto

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

600

Operaciones de lectura de secciones por minuto

users.sections.list

users.sections.items.list

3000

Operaciones de lectura de disponibilidad por minuto

users.availability.get

3000

Operaciones de escritura de disponibilidad por minuto

users.availability.update

users.availability.markAsActive

users.availability.markAsAway

users.availability.markAsDoNotDisturb

3000

Cuotas por espacio

Las cuotas por espacio limitan la tasa de consultas en un espacio determinado y se comparten entre todas las apps de Chat que actúan en ese espacio y que llaman a los métodos de la API de Chat enumerados para cada cuota.

En la siguiente tabla, se detallan los límites de consultas por espacio:

Cuota por espacio

Métodos de la API de Chat

Límite (por segundo)

Operaciones de lectura por segundo

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

15

Operaciones de escritura por segundo

media.upload

spaces.delete

spaces.patch

spaces.messages.create (Se aplican límites adicionales a los webhooks entrantes)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.delete

1

Crear escrituras de reacción por segundo

spaces.messages.reactions.create

5

Operaciones de escritura de mensajes por segundo durante la importación de datos a Google Chat

spaces.messages.create

10

Cuotas por usuario

Las cuotas por usuario limitan la frecuencia de las consultas para un usuario de Google Chat. Las consultas se relacionan con todas las apps de Chat que llaman a un método de la API de Chat en nombre de un usuario (con autenticación de usuario).

En la siguiente tabla, se detallan los límites de consultas por usuario:

Cuota por usuario

Métodos de la API de Chat

Límite (por segundo)

Escrituras de CustomEmoji por segundo

customEmojis.create

customEmojis.delete

1

Lecturas de CustomEmoji por segundo

customEmojis.get

customEmojis.list

15

Operaciones de escritura por segundo

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

users.availability.update

users.availability.markAsActive

users.availability.markAsAway

users.availability.markAsDoNotDisturb

1

Operaciones de lectura por segundo

users.sections.list

users.sections.items.list

users.availability.get

15

Límites de uso adicionales

El tráfico alto de la API que se segmenta para el mismo espacio puede activar límites internos adicionales que no se ven en la página Cuotas.

Cómo resolver errores de cuota basados en el tiempo

Para todos los errores basados en el tiempo (un máximo de N solicitudes por X minutos), te recomendamos que tu código detecte la excepción y use una retirada exponencial truncada para asegurarte de que tus dispositivos no generen una carga excesiva.

La retirada exponencial es una estrategia estándar de manejo de errores para aplicaciones de red. Un algoritmo de retirada exponencial reintenta las solicitudes con tiempos de espera que aumentan de forma exponencial entre las solicitudes, hasta un tiempo de retirada máximo. Si las solicitudes siguen sin tener éxito, es importante que las demoras entre las solicitudes aumenten con el tiempo hasta que la solicitud se realice correctamente.

Algoritmo de ejemplo

Un algoritmo de retirada exponencial vuelve a intentar las solicitudes de forma exponencial, lo que aumenta el tiempo de espera entre los reintentos hasta un tiempo de retirada máximo. Por ejemplo:

  1. Realiza una solicitud a la API de Google Chat.
  2. Si la solicitud falla, espera 1 + random_number_milliseconds segundos y vuelve a intentarla.
  3. Si la solicitud falla, espera 2 + random_number_milliseconds segundos y vuelve a intentar la solicitud.
  4. Si la solicitud falla, espera 4 + random_number_milliseconds segundos y vuelve a intentarla.
  5. Y así sucesivamente, hasta un tiempo de maximum_backoff.
  6. Continúa con la espera y los reintentos hasta llegar a una cantidad máxima, pero no aumentes el período de espera entre los reintentos.

Donde:

  • El tiempo de espera es min(((2^n)+random_number_milliseconds), maximum_backoff), con n incrementado en 1 para cada iteración (solicitud).
  • random_number_milliseconds es un número aleatorio de milisegundos menor o igual que 1,000. Esto ayuda a evitar los casos en los que muchos clientes se sincronizan por alguna situación y todos realizan el reintento a la vez, lo que hace que se envíen solicitudes en oleadas sincronizadas. El valor de random_number_milliseconds se vuelve a calcular después de cada reintento de solicitud.
  • maximum_backoff suele ser de 32 o 64 segundos. El valor apropiado depende del caso de uso.

El cliente puede seguir reintentando después de que alcanza el tiempo maximum_backoff. Después de este punto, los reintentos no necesitan continuar con el aumento del tiempo de retirada. Por ejemplo, si un cliente usa un tiempo de maximum_backoff de 64 segundos, luego de alcanzar este valor, el cliente puede volver a intentarlo cada 64 segundos. En algún momento, se debe evitar que los clientes vuelvan a intentarlo de forma indefinida.

El tiempo de espera entre los reintentos y la cantidad de reintentos dependen del caso práctico y las condiciones de la red.

Solicita un aumento de cuota por proyecto

Según el uso de recursos de tu proyecto, es posible que desees solicitar un ajuste de cuota. Las llamadas a la API realizadas por una cuenta de servicio se consideran como si se usara una sola cuenta. Solicitar una cuota ajustada no garantiza la aprobación. Las solicitudes de ajuste de cuota que aumentarían significativamente el valor de la cuota pueden tardar más en aprobarse.

No todos los proyectos tienen las mismas cuotas. A medida que tu uso de Google Cloud aumenta con el tiempo, es posible que debas incrementar los valores de tus cuotas. Si prevés un aumento considerable en el uso, puedes solicitar ajustes en la cuota de forma proactiva en la página Cuotas y límites del sistema de la consola de Google Cloud.

Para obtener más información, consulta los siguientes recursos:

Cuotas del servidor de MCP de chat

El servidor de MCP de Chat usa una métrica de asignación de costos de consultas. En las siguientes tablas, se detalla el costo de consulta de cada método del servidor de MCP de Chat por sección:

Cuotas de MCP de Chat

Se aplican dos tipos de cuotas:

  • Por minuto y por proyecto: Este es el costo de la consulta para tu proyecto de Google Cloud por un minuto.

  • Por minuto, por usuario y por proyecto: Este es el costo de la consulta para tu proyecto de Google Cloud durante un minuto que puede usar cualquier usuario en particular.

En la siguiente tabla, se detallan estas cuotas:

Tipo de límite de uso Costo de la búsqueda
Por minuto, por proyecto 3,000
Por minuto, por usuario y por proyecto 300

Cuotas del conjunto de herramientas de MCP de chat

En la siguiente tabla, se detalla el costo de la consulta para cada conjunto de herramientas de chatmcp.googleapis.com:

Extremo

Herramienta

Costo de la búsqueda

/mcp/v1

list_messages

1

search_conversations

10

search_messages

10

send_message

10

Para obtener más información, consulta la referencia de la API de Chat MCP.