Zum Hauptinhalt springen

API-Übersicht

Jedes NMMiner-Gerät betreibt einen HTTP-Server auf Port 80, der eine vollständige REST-ähnliche API bereitstellt. Dieselbe API wird verwendet von:

  • Der integrierten NM Monitor Browser-Oberfläche.
  • Dem Swarm Aggregator.
  • Jedem — Ihnen, Ihrem Dashboard, einem Grafana-Plugin, einem Python-Skript — der Status lesen oder Einstellungen senden möchte.

✅ Diese Seite dokumentiert den öffentlichen Vertrag: Pfade, Methoden, Request-Bodies, Response-Bodies, Statuscodes. ❌ Sie dokumentiert nicht die Implementierung. Behandeln Sie das Gerät als Blackbox, die über HTTP erreichbar ist.

Basis-URL​

http://<miner-ip>/

oder per Hostname (die meisten Heimrouter lösen ihn auf):

http://<miner-hostname>/

Die IP / den Hostnamen finden Sie auf der Miner-Seite des Gerätebildschirms oder im System-Bereich von NM Monitor.

CORS​

Jeder Endpunkt antwortet mit:

Access-Control-Allow-Origin: *

Somit können Sie die API von jeder Browserseite ohne Proxy aufrufen.

Authentifizierung​

Es gibt derzeit keine Authentifizierung. Die API ist für die Nutzung innerhalb Ihres vertrauenswürdigen LANs vorgesehen. Stellen Sie sie nicht ohne eigenes Gateway dem öffentlichen Internet aus.

Inhaltstyp​

  • Request-Bodies verwenden application/json.
  • Response-Bodies sind entweder application/json oder text/plain.
  • Alle Endpunkte akzeptieren und beantworten eine CORS-Preflight-OPTIONS-Anfrage.

Kategorien​

KategorieEndpunkte
DiscoveryGET /probe, GET /alive
SystemGET /api/system/info, POST /api/system/restart
NetzwerkeinstellungenGET/POST /api/setting/network
Mining-EinstellungenGET/POST /api/setting/mining
ZeiteinstellungenGET/POST /api/setting/time
PräferenzeinstellungenGET/POST /api/setting/preference
MarkteinstellungenGET/POST /api/setting/market, GET /api/market/pairs
WettereinstellungenGET/POST /api/setting/weather, POST /api/weather/refresh
Swarm FindPOST /api/swarm/find
Bildschirmschoner-UploadGET /api/update/screensaver/preflight, POST /api/update/screensaver
BeispielecURL / Python / JavaScript

Versionierung​

Der Vertrag ist stabil über Minor-Firmware-Versionen (z.B. v2.0.x). Breaking Changes werden im GitHub Release Log angekündigt.

Statuscodes​

CodeBedeutung
200OK — Response-Body entspricht dem dokumentierten Schema.
204OK — wird für CORS-Preflight verwendet.
400Bad Request — normalerweise ungültiges JSON oder Werte außerhalb des Bereichs.
404Kein solcher Endpunkt.
413Payload zu groß (nur Bildschirmschoner-Upload).
429Rate-limited — derzeit von /api/weather/refresh verwendet.
500Gerätefehler (z.B. Dateisystem-Schreibfehler beim Upload).

Auffindbarkeit​

Besuchen Sie http://<miner-ip>/api-doc für eine Live-HTML-Referenz, die vom Miner selbst bereitgestellt wird. Wenn die tatsächliche API von diesem Wiki abweicht, hat die Live-/api-doc des Geräts immer Vorrang.