Résoudre les erreurs API 401, 403 et 429 et respecter les limites d'appels
Commencez par conserver la méthode HTTP, le chemin de l'endpoint, le code de réponse et le corps d'erreur, en masquant le jeton. Vérifiez ensuite la documentation de cet…
Écrit par Baptiste Lorreyte
Dernière mise à jour Il y a 26 minutes
Commencez par conserver la méthode HTTP, le chemin de l'endpoint, le code de réponse et le corps d'erreur, en masquant le jeton. Vérifiez ensuite la documentation de cet endpoint : type d'accès, scopes, version et compte attendu.
Erreur 401 : authentification
Contrôlez l'en-tête Authorization: Bearer …, la validité du jeton et le mécanisme utilisé : OAuth ou intégration privée. Vérifiez qu'aucun espace, guillemet ou préfixe n'a été ajouté par votre outil. Ne publiez jamais le jeton dans une conversation ou une capture.
Erreur 403 : autorisation ou périmètre
Vérifiez les scopes requis et l'accès à la ressource dans le bon sous-compte. Un jeton autorisé à lire les contacts ne possède pas automatiquement les droits des calendriers. Vérifiez aussi les restrictions d'accès ou de bêta de l'endpoint. Régénérer un jeton avec les mêmes droits ne corrige pas un scope absent.
Erreur 429 : débit dépassé
Réduisez la concurrence et espacez les appels. Pour cette API, après une 429, si X-RateLimit-Daily-Remaining vaut zéro, attendez X-RateLimit-Daily-Reset millisecondes. Sinon, si X-RateLimit-Remaining vaut zéro, attendez l’intervalle X-RateLimit-Interval-Milliseconds. Le délai quotidien est une durée, pas une date ; les fenêtres ne se réinitialisent pas systématiquement à minuit. La documentation n’annonce pas d’en-tête Retry-After pour ces réponses. Plafonnez les tentatives et coordonnez les appels des différents processus. Pour une écriture ou une erreur ambiguë, vérifiez si l’opération a déjà abouti avant de la répéter.
Les limites techniques par défaut documentées sont de 100 requêtes par 10 secondes et 200 000 par fenêtre de 24 heures. Pour OAuth, elles sont comptées par application Marketplace et ressource location/company. Pour une intégration privée, le compteur court est propre à l’intégration et à la ressource ; le compteur quotidien est partagé par les intégrations privées de cette ressource. Des limites particulières peuvent s’appliquer : lisez les en-têtes réels. Ces seuils ne définissent aucun quota commercial CrocoClick.
Exemple de requête de lecture
L'exemple suivant vise l'API versionnée 2021-07-28. La documentation propose aussi d'autres versions, dont v3 : utilisez l'en-tête de la version choisie. Fournissez le jeton à votre environnement et utilisez un contact de test ; ne stockez pas le secret dans le fichier :
curl --request GET \
--url "https://services.leadconnectorhq.com/contacts/${CONTACT_ID}" \
--header "Authorization: Bearer ${CROCO_API_TOKEN}" \
--header "Version: 2021-07-28" \
--header "Accept: application/json"
Cet exemple nécessite le scope contacts.readonly et l’accès au contact ciblé. Il illustre la syntaxe d’un shell POSIX ; adaptez la lecture des variables d’environnement si vous utilisez un autre terminal. Pour un autre endpoint, utilisez sa propre documentation de version et de permissions.
Cela a-t-il été utile ?
Plus dans API & Intégrations
Intégrations NativesUtiliser des Webhooks pour connecter n'importe quelle partie de CrocoClick à vos apps externes (et inversement)Utiliser le déclencheur Webhook (webhook entrant)Utiliser l’action Webhook (webhook sortant)Besoin d'aide supplémentaire ? Demander à l'équipe