APIPour commencer
Limites de débit
120 requêtes par minute et 3000 par heure par adresse IP, avec les en-têtes RateLimit et Retry-After.
Quotas#
Chaque adresse IP peut faire 120 requêtes par minute et 3000 par heure (fenêtres glissantes). Toutes les requêtes comptent, y compris les réponses 304 et les erreurs.
C’est large pour un bot, un site ou un outil personnel, et cela protège le petit serveur qui sert WoWDB à tout le monde.
curl -s -D - -o /dev/null https://api.wowdb.assemblee-defias.fr/v1/stats | grep -i ratelimit
# RateLimit-Limit: 120
# RateLimit-Remaining: 119
# RateLimit-Reset: 60
# RateLimit-Policy: 120;w=60, 3000;w=3600En-têtes#
| En-tête | Valeur |
|---|---|
RateLimit-Limit | Requêtes permises dans la fenêtre qui s’applique. |
RateLimit-Remaining | Requêtes restantes avant le refus. |
RateLimit-Reset | Secondes avant qu’une place se libère. |
RateLimit-Policy | Les deux fenêtres : 120;w=60, 3000;w=3600. |
Retry-After | Sur une réponse 429 seulement : secondes à attendre. |
Ces en-têtes sont exposés au JavaScript des navigateurs (CORS).
En cas de dépassement#
La réponse est 429 Too Many Requests, avec Retry-After et une erreur rate_limit_error / rate_limited. Attendez le délai indiqué avant de réessayer ; inutile d’insister avant, chaque requête refusée compte aussi.
// Réessaie après le délai de Retry-After, au plus trois fois.
async function getAvecPatience(url, essais = 3) {
for (let i = 0; ; i++) {
const res = await fetch(url);
if (res.status !== 429 || i >= essais) return res;
const attente = Number(res.headers.get("Retry-After") || 1);
await new Promise(r => setTimeout(r, attente * 1000));
}
}Bonnes pratiques#
- Gardez les réponses en cache : les données ne changent qu’aux mises à jour de WoWDB (cache et ETag).
- Utilisez
limit=100pour parcourir une liste : 50 fois moins de requêtes qu’avec des pages de 2. - Préférez une recherche ou un filtre à des centaines de fiches lues une à une.
- Pour un très gros besoin, écrivez-nous sur le forum avant de lancer l’import.
API de WoWDB des Défias, v1. Données du jeu © Blizzard Entertainment. Conditions d’usage · Markdown · llms.txt · OpenAPI