Обзор API
Каждое устройство NMMiner запускает HTTP-сервер на порту 80, который предоставляет полноценное REST-подобное API. То же самое API используется:
- Встроенным браузерным интерфейсом NM Monitor.
- Агрегатором Swarm.
- Кем угодно — вами, вашей панелью мониторинга, плагином Grafana, скриптом Python — кто хочет читать статус или отправлять настройки.
✅ На этой странице документирован публичный контракт: пути, методы, тела запросов, тела ответов, коды состояния. ❌ Она не документирует реализацию. Рассматривайте устройство как чёрный ящик, доступный по HTTP.
Базовый URL
http://<miner-ip>/
или по имени хоста (большинство домашних роутеров его разрешают):
http://<miner-hostname>/
IP / имя хоста можно найти на странице Miner экрана устройства или в разделе System NM Monitor.
CORS
Каждая конечная точка отвечает с заголовком:
Access-Control-Allow-Origin: *
поэтому вы можете вызывать API с любой браузерной страницы без проксирования.
Аутентификация
На сегодняшний день аутентификация отсутствует. API предназначен для использования внутри вашей доверенной локальной сети. Не выставляйте его в публичный интернет без собственного шлюза.
Тип содержимого
- Тела запросов используют
application/json. - Тела ответов — либо
application/json, либоtext/plain. - Все конечные точки принимают и отвечают на CORS pre-flight запрос
OPTIONS.
Категории
| Категория | Конечные точки |
|---|---|
| Discovery | GET /probe, GET /alive |
| System | GET /api/system/info, POST /api/system/restart |
| Сетевые настройки | GET/POST /api/setting/network |
| Настройки майнинга | GET/POST /api/setting/mining |
| Настройки времени | GET/POST /api/setting/time |
| Настройки предпочтений | GET/POST /api/setting/preference |
| Настройки рынка | GET/POST /api/setting/market, GET /api/market/pairs |
| Настройки погоды | GET/POST /api/setting/weather, POST /api/weather/refresh |
| Swarm Find | POST /api/swarm/find |
| Загрузка заставки | GET /api/update/screensaver/preflight, POST /api/update/screensaver |
| Примеры | cURL / Python / JavaScript |
Версионирование
Контракт стабилен в пределах минорных версий прошивки (например, v2.0.x). Критические изменения отмечаются в журнале релизов GitHub.
Коды состояния
| Код | Значение |
|---|---|
| 200 | OK — тело ответа соответствует документированной схеме. |
| 204 | OK — используется для CORS preflight. |
| 400 | Неверный запрос — обычно некорректный JSON или значения вне диапазона. |
| 404 | Такой конечной точки не существует. |
| 413 | Слишком большой объём данных (только загрузка заставки). |
| 429 | Ограничение частоты — в настоящее время используется /api/weather/refresh. |
| 500 | Ошибка устройства (например, сбой записи файловой системы при загрузке). |
Обнаружение
Посетите http://<miner-ip>/api-doc для получения живого HTML-справочника, обслуживаемого самим майнером. Если фактическое API отличается от этой вики, живой /api-doc устройства всегда имеет приоритет.