Concepts clés
Limites de requêtes
Chaque clé peut faire 120 requêtes par minute, et chaque réponse indique combien il en reste.
Limites
| Limite | S'applique à |
|---|---|
| 120 requêtes par minute | Chaque clé API, sur tous les endpoints. La minute est une fenêtre fixe qui commence à la minute pile. |
| 10 exports par heure | Chaque compte, sur Créer un export. Au-delà, 429 export_rate_limit_exceeded. |
| 10 DM par minute | Chaque compte X, sur Envoyer un message. Au-delà, 429 dm_rate_limited. |
| 300 DM par jour | Chaque compte X, par jour UTC, ou moins quand X fixe un quota plus bas. Au-delà, 429 dm_daily_limit. |
| 5 essais de code par heure | Chaque compte, sur Définir le code X Chat. Au-delà, 429 passcode_rate_limited. |
| 6 messages à Julien AI par minute | Chaque compte X, sur Envoyer un message et l'outil MCP ask_julien_ai. Au-delà, 429 assistant_rate_limited. |
| 100 messages à Julien AI par jour | Chaque compte X, par jour UTC. Au-delà, 429 assistant_daily_limit. |
| Un seul message à Julien AI à la fois | Chaque chat, et 3 chats en même temps par compte X. Au-delà, 409 assistant_busy. |
Headers RateLimit
Chaque réponse indique l'état de la fenêtre de la clé.
| Header | Signification |
|---|---|
RateLimit-Limit | Requêtes autorisées par fenêtre, 120. |
RateLimit-Remaining | Requêtes restantes dans la fenêtre en cours. |
RateLimit-Reset | Secondes avant la prochaine fenêtre. |
Retry-After | Sur un 429 uniquement, les secondes à attendre avant de réessayer. |
Headers
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
RateLimit-Limit: 120
RateLimit-Remaining: 0
RateLimit-Reset: 17
Retry-After: 17
Request-Id: req_3Vb8YzC1dF6hJ0sWRéponse429
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. This key can make 120 requests a minute.",
"param": null,
"request_id": "req_3Vb8YzC1dF6hJ0sW",
"doc_url": "https://gemlead.ai/docs/errors#rate_limit_exceeded"
}
}Gérer un 429
Attends Retry-After secondes, puis renvoie la même requête.
- Étale les gros traitements dans le temps au lieu de tout envoyer d'un coup.
- Lis
RateLimit-Remainingpour ralentir avant d'arriver à zéro. - Pour récupérer beaucoup de leads d'un coup, un seul export vaut mieux que des centaines de pages.
- Les webhooks t'envoient les événements, tu ne dépenses donc jamais de requêtes à interroger l'API pour trouver de nouveaux leads.
# curl waits for Retry-After, then tries again
curl --retry 5 https://gemlead.ai/api/v1/leads \
-H "Authorization: Bearer $GEMLEAD_API_KEY"