// docs / quotas & limits
Quotas et limites
Chaque valeur de quota et de limite de débit ci-dessous vient du module d'entitlements au moment du build ; cette page ne peut donc pas diverger de ce que le serveur applique réellement.
Droits par offre
| Gratuit | Loisir | Pro | Illimité | |
|---|---|---|---|---|
| Scans / mois | 3 | 50 | 200 | Plan Unlimited¹ |
| Projets (domaines vérifiés) | 1 | 1 | 5 | 20 |
| Tokens API | 0 | 1 | 5 | 20 |
| Endpoints webhook | 0 | 1 | 5 | 20 |
| Sondes actives | non | oui | oui | oui |
| Scans de dépôts GitHub | non | non | oui | oui |
| Re-scans planifiés | non | non | cadence ≥3 h | ≥6h cadence |
| Détection de menaces en direct | non | non | non | oui |
| Rapports partageables | non | non | oui | oui |
| Rétention | 7 jours | 30 jours | 90 jours | 365 jours |
| Sièges d'équipe | 1 | 1 | 1 | 5 |
| Support | standard | standard | prioritaire | dédié |
¹ The Unlimited plan's scan quota is subject to fair use — see Terms. ² The project cap defaults to 20 active-monitoring domains at ≥6h cadence. Contact support@fixvibe.app to raise it in exchange for a longer scheduled cadence.
Limites de débit API
Chaque requête /api/v1/* et /api/mcp est indexée sur un hash du bearer token et passe par deux fenêtres :
- Rafale : 10 requêtes par seconde.
- Stable : 60 requêtes par minute.
- Per signed-in user: 30 scan submissions per 10 minutes — a soft cap above the per-plan monthly quota that absorbs bursts without exhausting the daily budget.
Sur 429, la réponse inclut :
HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 47
x-ratelimit-limit: 60
x-ratelimit-remaining: 0
x-ratelimit-reset: 1715116200
{
"error": "rate_limited",
"message": "Token rate limit exceeded — steady (60/min). Retry in 47s.",
"retry_after_seconds": 47
}La fenêtre qui a déclenché la limite est nommée dans le message (burst (10/s) vs steady (60/min)) afin que le backoff d'un client puisse s'adapter.
Limite de débit des scans du plan Free (par IP/24)
On top of the per-org 3-scans-per-month cap, Free plan users face an additional per-IP/24 rate limit: 3 scans per rolling 24 hours per IP /24 block. The same limiter covers anonymous instant scans, which prevents farming Free quota through throwaway accounts on one IP. Requests exceeding the limit return HTTP 429 Too Many Requests with a Retry-After header.
Throttle d'inscription (par IP/24)
5 inscriptions réussies par IP/24 toutes les 24 heures, pour empêcher la création automatisée de comptes du plan Free. Les rappels limités redirigent vers /sign-in?error=rate_limited.
Rétention
Les scans + constats sont purgés automatiquement selon le tableau ci-dessus. Les scans anonymes ponctuels expirent 24 h après leur création. Les journaux d'audit sont conservés 18 mois. Les snapshots de monitor sont réduits aux 7 derniers jours plus la baseline la plus récente par (domaine, signal). Les alertes ignorées sont purgées après 90 jours. Toute la rétention est appliquée quotidiennement par /api/cron/retention-cleanup.
