API LOW.MS dla programistów

Buduj na API LOW.MS. Zarządzaj serwerami gier, uruchamiaj kopie zapasowe i wysyłaj komendy do konsoli z własnych skryptów i narzędzi, korzystając z kluczy API o określonym zakresie.

API LOW.MS dla programistów

Zarządzaj swoimi serwerami gier z własnych skryptów, botów i narzędzi.

Otwórz dokumentację API

Pierwsze kroki

Utwórz klucz API na stronie Klucze API w swoim panelu sterowania, wybierz jego zakresy i skopiuj klucz. Następnie sprawdź, czy działa:

curl https://api.prod.nexus.low.ms/v1/me \
  -H "Authorization: Bearer lowms_..."

Wylistuj swoje serwery i wykonuj na nich operacje. Akcje takie jak restart zwracają zadanie, które możesz odpytywać aż do zakończenia.

# 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_..."

Uwierzytelnianie i zakresy

Wysyłaj klucz jako token bearer. Klucze mają tylko te zakresy, które im nadasz: servers:read, servers:power, backups:read, backups:write, console:send. Traktuj klucze jak hasła, każdy możesz w dowolnej chwili unieważnić z poziomu panelu.

Limity zapytań i błędy

Każdy klucz ma 60 zapytań odczytu i 12 zapytań zapisu na minutę. Każde zapytanie do /v1 liczy się też do wspólnego limitu 300 zapytań na minutę dla Twojego adresu IP, więc kilku klientów za jednym adresem może osiągnąć ten limit, zanim którykolwiek z nich wyczerpie swój własny. Odpowiedzi zawierają nagłówki X-RateLimit, a odpowiedź 429 niesie ze sobą Retry-After.

Błędy zawsze wyglądają tak:

{"error":{"code":"...","message":"..."}}

Każdy błąd ma jeden ze stałego zestawu kodów, żeby Twoje skrypty mogły rozgałęziać się na 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. Z czasem mogą dojść nowe kody, ale istniejące nigdy nie są zmieniane ani usuwane.

Wersjonowanie

API v1 zmienia się wyłącznie w sposób addytywny: nowe endpointy i nowe opcjonalne pola. Wszystko, co łamie zgodność, trafia do v2, a wycofania zapowiadamy z dużym wyprzedzeniem.

Join our Discord to chat with our staff and community!
Join Discord