Instance
/health et /logs renseignent sur l'état d'une instance de l'API au lieu d'offrir un utilitaire. Ils sont à la racine, hors de toute version.
Les deux routes s'appellent sans version : https://api.moxon.dev/health, et non /v6/health. Elles comptent dans les limites de requêtes comme toute autre requête. GET / les liste avec les autres routes de la racine, /logs seulement une fois configuré.
GET /health répond avec l'état de l'instance : sa version, depuis combien de temps elle tourne et la mémoire qu'elle utilise. Elle ne demande aucun jeton, ce qui en fait la route à donner à une sonde de supervision. Le Try ci-dessous l'envoie à api.moxon.dev à l'ouverture de la page : sa réponse est donc celle du moment.
curl -X GET \ "https://api.moxon.dev/health"statusstringToujours
ok: une instance qui répond est en marcheuptimenumberSecondes écoulées depuis le démarrage de l'instance
versionstringVersion de l'API que l'instance fait tourner
nodestringVersion de Node.js
memory.rssstringMémoire occupée par le processus, en Mo avec une décimale
memory.heap_usedstringPart du tas JavaScript utilisée, en Mo
memory.heap_totalstringTaille du tas JavaScript, en Mo
connectionsnumberAdresses de clients que la limite de requêtes suit dans l'heure en cours
logsnumberEntrées gardées dans le journal des requêtes, 1 000 au plus
GET /logs renvoie les 1 000 dernières requêtes auxquelles l'instance a répondu, de la plus ancienne à la plus récente. Il porte le trafic de tous les clients, il est donc fermé par défaut : il ne s'ouvre qu'une fois LOGS_TOKEN défini, et demande alors cette valeur dans l'en-tête X-Logs-Token.
curl -H "X-Logs-Token: VOTRE_JETON_DE_LOGS" https://api.moxon.dev/logs[
{
"timestamp": 1792779323895,
"level": "info",
"method": "POST",
"url": "/v6/hash",
"status": 200,
"duration": "0ms",
"platform": "Android"
},
{
"timestamp": 1792781601223,
"level": "info",
"method": "GET",
"url": "/health",
"status": 200,
"duration": "5ms"
},
{
"timestamp": 1792781714358,
"level": "warn",
"method": "GET",
"url": "/statistics?values",
"status": 404,
"duration": "0ms"
}
]timestampnumberMoment où la requête a été journalisée, en millisecondes depuis 1970
levelstringinfosous 400,warnde 400 à 499,errorà partir de 500methodstringMéthode HTTP de la requête
urlstringChemin de la requête, avec le nom de ses paramètres de requête mais pas leur valeur
statusnumberStatut HTTP de la réponse, un
304noté200durationstringTemps de réponse, par exemple
12msplatformstringSystème du client, présent seulement quand le navigateur envoie
Sec-CH-UA-Platform
- La valeur des paramètres de requête :
?text=secretest noté?text. - Les jetons privés des chemins de chat et de tic-tac-toe, remplacés par
[redacted]. - Le corps des requêtes et des réponses.
- Les requêtes
HEAD, et les appels à/logslui-même.
Le journal vit dans la mémoire du processus : il repart vide quand l'instance redémarre.
- 404
Endpoint '/logs' does not exist.LOGS_TOKENn'est pas défini sur l'instance : la route répond comme un chemin inconnu - 401
Invalid token.L'en-têteX-Logs-Tokenest absent ou différent deLOGS_TOKEN
Une instance que vous faites tourner vous-même lit ses réglages dans des variables d'environnement. L'une d'elles concerne cette page :
| Variable | Par défaut | Effet |
|---|---|---|
LOGS_TOKEN | aucune | Valeur attendue dans l'en-tête X-Logs-Token ; tant qu'elle n'est pas définie, /logs répond 404 |
Gardez le jeton secret
Qui détient LOGS_TOKEN voit quels endpoints chaque client appelle, à quelle fréquence et depuis quel système. Choisissez une valeur longue et aléatoire, et ne l'envoyez qu'en HTTPS.
Mis à jour le 23 octobre 2026