Tous les articles

FourA Digest, du 17 au 24 juillet 2026

Les rejets liés aux quotas renvoient désormais HTTP 429 avec Retry-After. La page des tarifs indique la bande passante sur chaque forfait public : Illimitée. Et un code 403 approprié pour le ciblage géographique.

Points forts

Les réponses de dépassement de quota renvoient désormais HTTP 429 avec un en-tête Retry-After, ce qui correspond à ce que OpenAI, GitHub et Cloudflare envoient. La page des tarifs s'est enrichie d'une ligne Bande passante (chaque forfait public est Illimité). Et les requêtes qui demandent exitCountries sur un forfait sans ciblage géographique obtiennent désormais un 403 clair qui nomme le paramètre et la solution.

Quoi de neuf

Les limites de quota parlent HTTP 429 maintenant, pas 402

Si vous atteignez une limite de forfait (crédits ou bande passante), la réponse est 429 Too Many Requests avec Retry-After sur chaque réponse et resets_at dans le corps indiquant la fin de votre période de facturation. Le champ reason vous indique quelle limite vous avez atteinte (plan_limit_credits ou plan_limit_bandwidth) afin que cela n'entre pas en collision avec les limites de taux par minute.

Pourquoi ce changement ? 402 semble correct ("Paiement requis") mais en pratique, c'est ainsi que Stripe signale les échecs de paiement, et plusieurs clients HTTP et proxies le gèrent mal. OpenAI, GitHub, Twilio et Cloudflare rejettent tous les quotas dépassés avec 429 et un code d'erreur distinct. Suivre le troupeau ici est la bonne décision : toutes les bibliothèques de tentatives de la planète savent déjà quoi faire avec nos réponses.

La valeur de Retry-After est plafonnée à 24 heures pour ceux qui dorment et réessaient. Si vous voulez l'heure de réinitialisation réelle, lisez resets_at dans le corps JSON.

Bande passante sur la page des tarifs : Illimité

/prices a ajouté une ligne Bande passante dans la matrice de comparaison. Chaque forfait public est livré avec une bande passante non plafonnée, et la matrice le dit maintenant à haute voix. C'est le genre de chose dont vous n'avez pas besoin jusqu'à ce qu'un prospect le demande et que vous ne trouviez pas le chiffre. Maintenant, c'est sur la page.

Les forfaits personnalisés qui plafonnent la bande passante affichent leur chiffre en Go dans la même ligne.

le ciblage géographique se bloque avec une erreur appropriée

Si une requête envoie exitCountries alors que le forfait n'inclut pas la fonctionnalité de ciblage géographique, la réponse est 403 avec un message nommant le paramètre et comment le corriger. Avant, la requête passait comme si le ciblage géographique était autorisé. Maintenant, elle échoue bruyamment à la porte.

Les requêtes sans exitCountries sont intactes. Cela ne se déclenche que lorsque vous demandez réellement la fonctionnalité.

Petites corrections du tableau de bord sur les limites et la facturation

Trois corrections de qualité de vie :

  • Onglet Limites. Le sous-onglet enregistré (Vue d'ensemble / Clés API / Limites et fonctionnalités) est restauré avant la peinture, vous ne voyez donc plus de flash de mauvais onglet au rechargement.
  • Clés API. La zone de recherche utilise le modèle de recherche canonique au lieu d'une entrée nue.
  • Facturation. Les méta-lignes sous le mode de paiement s'affichent désormais avec le bon style (elles étaient sans style avant).

Sous le capot

Les modes d'application des limites de forfait sont désormais modifiables en direct. Chacune des six limites du plan de données (concurrence par produit, taux par minute, navigateur par jour, crédits, bande passante, fonctionnalités) ainsi que la vérification de création de clé du plan de gestion peuvent être commutées entre désactivé, signal et appliquer depuis un panneau de paramètres contrôlé par notre équipe. Aucun redéploiement. Un rafraîchisseur en arrière-plan interroge le paramètre toutes les 60 secondes et le chemin chaud reste synchrone.

Pourquoi est-ce important pour vous ? Lorsqu'une limite pose problème en production, nous pouvons la réduire en une minute au lieu de déployer du nouveau code. Cela nous permet également d'appliquer les restrictions progressivement, par limite, en observant le trafic réel à chaque étape. Le mode signal enregistre l'événement sans bloquer ; l'application active la réponse 429 ou 403. Nous voulions que l'étape intermédiaire soit une fonctionnalité à part entière plutôt qu'un bouton d'urgence.

Chiffres

  • Retry-After plafond sur les rejets de quota : 24 heures (temps de réinitialisation réel dans resets_at)
  • Intervalle d'interrogation des paramètres d'exécution : 60 secondes
  • Forfaits publics avec bande passante non plafonnée : tous

Le limiteur de forfait a été notre fil conducteur pendant un mois. Prochaine étape : l'application des premières limites (les crédits et la simultanéité par produit semblent être la première paire évidente), ainsi que des avertissements par e-mail une fois la phase de messagerie déployée.