Controla el uso de tu clave antes de alcanzar un límite
Vigilar las cabeceras de cuota sobre la marcha te indica cuándo te acercas a un límite, mucho antes de que se rechace realmente una solicitud.
Algunas API devuelven un ID de trabajo para un lote grande y esperan que sondees o aguardes un webhook mientras se procesa en segundo plano. Esta no funciona así. Cada solicitud masiva, grande o pequeña, se responde de forma síncrona en la misma llamada, lo que cambia cómo deberías plantearte la ejecución de un trabajo muy grande.
En lugar de enviar una matriz enorme y esperar, divide un trabajo grande en fragmentos de tamaño fijo, de entre unos cientos y unos pocos miles de elementos cada uno, y envíalos como una secuencia de solicitudes POST masivas normales. Como cada llamada devuelve sus resultados de inmediato, no hay ningún estado de trabajo que sondear, solo el siguiente fragmento que enviar.
POST /v1/forward
Content-Type: application/json
["address 1", "address 2", "... up to a few hundred items"]Lo más parecido a un sondeo en esta configuración es comprobar tus propias cabeceras de cuota entre fragmentos, en lugar de comprobar el estado de un trabajo. Lee X-Quota-Free-Remaining y X-Credits-Remaining cuando termine cada fragmento, y pausa el trabajo, o detenlo, si estás a punto de superar tu cuota diaria gratuita sin crédito prepago suficiente para continuar.
X-Quota-Free-Remaining: 340
X-Credits-Remaining: 12.50Un pequeño script que recorre los fragmentos, envía cada uno, comprueba las cabeceras de la respuesta y continúa o se pausa según lo que ve es todo lo que necesita aquí un gran trabajo por lotes. No hay ningún endpoint aparte de estado del trabajo al que llamar, ya que el fragmento que acabas de enviar ya contiene todo lo que pediste.
Registra qué índice de fragmento has procesado correctamente hasta ahora, para que una pausa por el reinicio de la cuota o por una recarga de crédito pueda reanudarse exactamente donde se quedó, en lugar de volver a procesar fragmentos anteriores y gastar solicitudes dos veces.
El coste es el mismo en ambos casos, una solicitud por elemento en todo el trabajo. La fragmentación solo cambia cómo gestionas el trabajo, no cuántas solicitudes usa en total.
Tratar un trabajo grande como una secuencia de fragmentos síncronos normales, en lugar de buscar un sistema de trabajos asíncronos que aquí no existe, lo mantiene todo sencillo. La documentación sobre límites de frecuencia explica las cabeceras de cuota en las que se basa este patrón.