Génération de captcha
L'endpoint /captcha génère une image CAPTCHA. Il propose deux modes : challenge, celui par défaut, qui garde la réponse côté serveur pour la vérifier ensuite, et image, qui retourne la réponse en même temps que l'image.
Changement en 6.0.0
challenge est désormais le mode par défaut : l'image arrive avec un jeton signé dans X-Captcha-Token plutôt qu'avec la réponse en clair. Un code qui lisait X-Captcha-Text sans préciser mode ne la trouvera plus — passez ?mode=image pour retrouver le comportement précédent.
Préférez la preuve de travail
Un captcha visuel n'arrête plus un robot déterminé : les modèles de vision les lisent bien, souvent mieux que les humains. Pour une protection anti-bot, préférez /pow, qu'aucun modèle ne peut contourner — le seul moyen de passer est de dépenser le calcul.
curl -X GET \ "https://api.moxon.dev/v6/captcha"Envoyez la requête pour voir la réponse ici.
mode"image" | "challenge"optionnelchallenge(défaut) ouimagetextstringoptionnelLe texte du captcha. Si omis, une chaîne aléatoire est générée. Refusé en mode
challengelengthnumberoptionnelLongueur du texte auto-généré, de 1 à 20. Par défaut :
6widthnumberoptionnelLargeur de l'image en pixels, de 100 à 800. Par défaut : 60 × la longueur du texte
heightnumberoptionnelHauteur de l'image en pixels, de 50 à 400. Par défaut :
120noise"low" | "medium" | "high"optionnelNiveau de bruit :
low,medium(défaut) ouhighbgstringoptionnelCouleur de fond en hexadécimal (ex.
ffffff)colorstringoptionnelCouleur du texte en hexadécimal (ex.
000000)
| Mode | Réponse |
|---|---|
image | Image PNG, avec la réponse dans l'en-tête X-Captcha-Text |
challenge | Image PNG, avec un jeton signé dans l'en-tête X-Captcha-Token — la réponse n'est jamais transmise |
Les deux modes retournent une image PNG (Content-Type: image/png), utilisable dans une balise <img>.
En mode challenge, la réponse ne quitte jamais le serveur : elle n'existe que dans la signature du jeton, donc intercepter la réponse ne la révèle pas. Le rendu est également durci contre la lecture automatique — les glyphes se chevauchent pour empêcher leur découpage, suivent une ligne de base sinusoïdale, mélangent plusieurs polices, et sont traversés par des traits de la couleur même du texte, qu'aucun filtre ne peut retirer. Envoyez le jeton et la réponse de l'utilisateur à /v6/captcha pour la vérifier.
À savoir
Les deux en-têtes sont exposés au JavaScript des navigateurs via CORS, donc une page web peut les lire dans la réponse.
La chaîne auto-générée évite les caractères ambigus (ex. 0/O, 1/l).
Si les paramètres sont manquants ou invalides, l'API retournera une erreur :
- 400
Mode must be one of: image, challengeLa valeur demoden'est pas valide - 400
A custom text cannot be used in challenge modetexta été fourni avecmode=challenge - 400
length must be a numberLe paramètrelengthn'est pas un nombre - 400
length must be between 1 and 20Lalengthest hors de la plage autorisée - 400
width must be a numberLe paramètrewidthn'est pas un nombre - 400
width must be between 100 and 800Lawidthest hors de la plage autorisée - 400
height must be a numberLe paramètreheightn'est pas un nombre - 400
height must be between 50 and 400Laheightest hors de la plage autorisée - 400
Noise must be one of: low, medium, highValeur denoiseinvalide - 400
Invalid color (use hex like ff6600)Un paramètrebgoucolorest malformé
- post/v6/captcha - Vérifier la réponse à un challenge
- get/v6/pow - Preuve de travail, l'alternative recommandée
Mis à jour le 13 septembre 2026