API

Rate limiting API immobilière

Le rate limiting protège une API contre les abus, garantit l'équité entre clients, et permet de dimensionner l'infrastructure. Cet article décrit les algorithmes courants, les bonnes pratiques côté client, et les limites Ts-Immo selon les plans.

Pourquoi limiter les requêtes

Sans rate limit, un client mal codé peut consommer 100 % des ressources de l'API et pénaliser tous les autres. Le rate limiting est donc à la fois une protection technique et une question d'équité de service.

Les algorithmes courants

AlgorithmePrincipeComportement
Fixed windowX requêtes par minute civileRisque de pic à la frontière
Sliding windowX requêtes glissantesPlus juste, plus complexe
Token bucketCrédit de tokens régénéréPermet des bursts
Leaky bucketFile à débit fixeLissage maximal

Limites Ts-Immo par plan

PlanLecture / minÉcriture / minBurst
Free301060
Starter6030120
Pro240120480
Network6003001200

Les en-têtes de réponse

Chaque réponse Ts-Immo inclut trois en-têtes pour piloter le throttling côté client.

En-têtes de rate limiting
HTTP/1.1 200 OK
X-RateLimit-Limit: 240
X-RateLimit-Remaining: 184
X-RateLimit-Reset: 1716120000
Content-Type: application/json

Code 429 et retry

Quand la limite est dépassée, l'API renvoie un 429 Too Many Requests avec un en-tête Retry-After indiquant le nombre de secondes à attendre. Votre client doit respecter cette valeur.

Implémentation simple d'un retry sur 429
async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const res = await fetch(url, options)
    if (res.status !== 429) return res
    const retryAfter = parseInt(res.headers.get('Retry-After') || '1')
    await new Promise(r => setTimeout(r, retryAfter * 1000))
  }
  throw new Error('Rate limit exceeded after retries')
}

Bonnes pratiques côté client

  • Throttler proactivement en fonction de X-RateLimit-Remaining.
  • Mettre en cache local les réponses qui ne changent pas (agencies, types).
  • Préférer un cycle nocturne pour les imports massifs.
  • Utiliser updated_since pour limiter le volume.
  • Implémenter un backoff exponentiel en cas de 429 répétés.

Anti-pattern

Ignorer le 429 et réessayer immédiatement est garanti d'aggraver le problème : votre client sera bloqué plus longtemps, et vous risquez une suspension temporaire.

Demander un quota supérieur

Pour les usages spécifiques (intégrateur, agrégateur, importation initiale massive), des quotas custom sont disponibles sur demande via le support. Comptez 24 à 48 h pour l'analyse et la validation du besoin.

Questions fréquentes

Que se passe-t-il si je dépasse la limite en continu ?+

Les premières fois, vous recevez des 429 et il suffit d'attendre le délai indiqué. En cas d'abus répété (plus de 100 dépassements en 24 h), votre clé peut être suspendue temporairement avec notification. Le support vous aide à corriger l'usage avant réactivation.

Le rate limit est-il par compte ou par clé API ?+

Par clé API. Cela permet à un même compte d'avoir plusieurs clés (production, staging, dev) avec des quotas indépendants. Vous pouvez aussi créer une clé dédiée par intégrateur pour cloisonner les usages.

Les webhooks comptent-ils dans le rate limit ?+

Non. Les webhooks sortants (Ts-Immo vers votre endpoint) sont décomptés différemment et n'impactent pas votre quota d'API lecture. Les écritures vers Ts-Immo (création de leads, par exemple) comptent normalement dans le quota d'écriture.

Aller plus loin dans le cocon

CRM, thèmes WordPress, guides techniques, comparatifs et ressources connectés à cette page.

Mots-clés associés

rate limitingquota429

Prêt à connecter votre CRM ?

Démarrez gratuitement ou contactez-nous pour une démonstration personnalisée de Ts-Immo.

Rate limiting API immobilière : guide — Ts-Immo