L'API LOW.MS pour les développeurs
Gère tes serveurs de jeu depuis tes propres scripts, bots et outils.
Ouvrir la référence de l'APIPrise en main
Crée une clé API sur la page Clés API de ton panneau de contrôle, choisis ses scopes, puis copie la clé. Vérifie ensuite qu'elle fonctionne :
curl https://api.prod.nexus.low.ms/v1/me \
-H "Authorization: Bearer lowms_..."Liste tes serveurs et agis sur eux. Des actions comme les redémarrages renvoient un job que tu peux interroger jusqu'à ce qu'il se termine.
# List servers
curl https://api.prod.nexus.low.ms/v1/servers \
-H "Authorization: Bearer lowms_..."
# Restart one, then poll the job it returns
curl -X POST https://api.prod.nexus.low.ms/v1/servers/SERVER_ID/power \
-H "Authorization: Bearer lowms_..." \
-H "Content-Type: application/json" \
-d '{"action":"restart"}'
curl https://api.prod.nexus.low.ms/v1/jobs/JOB_ID \
-H "Authorization: Bearer lowms_..."Authentification et scopes
Envoie ta clé comme jeton bearer. Les clés ne portent que les scopes que tu leur accordes : servers:read, servers:power, backups:read, backups:write, console:send. Traite tes clés comme des mots de passe, tu peux en révoquer une à tout moment depuis le panneau.
Limites de débit et erreurs
Chaque clé dispose de 60 requêtes de lecture et 12 requêtes d'écriture par minute. Chaque requête vers /v1 compte aussi dans une limite partagée de 300 requêtes par minute par adresse IP source, si bien que plusieurs clients derrière une même adresse peuvent atteindre cette limite avant d'atteindre la leur. Les réponses incluent des en-têtes X-RateLimit, et une réponse 429 porte un Retry-After.
Les erreurs se présentent toujours ainsi :
{"error":{"code":"...","message":"..."}}Chaque échec porte l'un des codes d'un ensemble fixe, pour que tes scripts puissent s'appuyer sur error.code : invalid_key, missing_scope, console_unavailable, not_found, bad_request, unauthorized, forbidden, conflict, server_busy, transfer_in_progress, node_offline, rate_limited, daemon_unavailable, bad_gateway, method_not_allowed, payload_too_large, unsupported_media_type, unavailable, internal_error. De nouveaux codes peuvent apparaître, et les codes existants ne sont jamais renommés ni supprimés.
Versionnage
L'API v1 ne change que de façon additive : nouveaux endpoints et nouveaux champs optionnels. Tout changement cassant sort en v2, et les dépréciations sont annoncées bien à l'avance.