指南

如何使用 NoxHash API 以编程方式监控您的矿机

开发者视角的 NoxHash 矿机 API 监控教程:鉴权、轮询模式、离线告警、Webhook,以及可直接改用的 Python 示例脚本。

Updated May 01, 2026
如何使用 NoxHash API 以编程方式监控您的矿机

通过编程方式监控您的 NoxHash 矿机,意味着使用 API key 将实时 hashrate、状态和收益拉取到您自己的工具中——一个 Python 脚本、一张 Google Sheet、一个 Grafana 仪表板,或一条 SMS 告警管道。本指南介绍构建可靠监控系统的通用模式,包括 polling、webhook,以及对 rate limit 的礼貌使用。

API key 认证 Polling 或 webhook SMS、Sheets、Grafana
展示 NoxHash API 监控管道将数据输送到脚本、电子表格、仪表板和 SMS 告警的插图

为什么要用 API 而不是仪表板监控您的矿机

NoxHash 网页仪表板是为人类设计的:您登录,瞥一眼 hashrate 和 BTC 余额,然后登出。这对一两台矿机是有效的。一旦您运营多个租约——或者您希望在凌晨 3 点出问题时收到告警——您就需要一台机器为您守候。

API 监控程序位于仪表板之外,按计划拉取相同的数据。它可以把收益记录到电子表格,把指标推送到 Grafana,或在矿机掉线的那一刻给您发短信。逻辑由您掌控,所以您可以精确决定何时收到通知、什么算是"问题"。

离线检测

如果租用矿机的状态从 running 翻转为 stopped,可在几分钟内收到 SMS 或邮件——而不是第二天早上偶然登录时才发现。

自动化报表

将每日收益追加一行到 Google Sheet 或本地数据库。建立独立于仪表板保留期的完整历史,随时可用于报税或记账。

自定义仪表板

将指标输送到 Grafana、Prometheus 或自建的 React 页面。把 NoxHash hashrate 与 BTC 价格数据结合,得到真正的盈利视图。

步骤 1 — 在 NoxHash 账户中创建 API Key

每次 API 调用都需要一个已认证的身份。NoxHash 从您的账户设置中签发个人 API key,您可以设置过期日期,让泄露的 key 自动失效。

1

打开 Profile → API Keys

登录后点击头像,进入个人资料的 API Keys 区域。如果还没开,请先启用 2FA——您肯定不想让 key 管理页面只靠一个密码保护。

2

生成带过期日期的新 key

给 key 起一个描述性的名字("home-grafana"、"sheets-logger"),并设置过期时间——90 天是合理的默认值。短寿命 key 可以在 key 意外进入 Git 提交或聊天记录时限制损失。

3

复制并安全保存 key

完整的 key 只会显示一次。粘贴到密码管理器或环境变量存储中——永远不要硬编码到源文件里。在服务器上,将其保存在被 Git 忽略的 .env 文件中。

4

查阅当前 API 文档

endpoint 路径、header 和 rate limit 规则都可能演进。编码之前,请在 NoxHash 官方文档中确认确切的 base URL、认证 header 以及列出矿机的路由。下面的示例使用合理但通用的名称——把它们当作形状参考,而不是契约。

步骤 2 — 一个最简 Python 监控脚本(伪代码)

这是一个小巧、易读的 Python 脚本,它会认证、获取矿机列表,并标记离线超过 30 分钟的矿机。它刻意保持简单——除 requests 外没有任何依赖——所以您今天就可以把它丢进 cron job,明天再加固。

monitor.py · Python 3.10+ python
import os, time, requests
from datetime import datetime, timedelta, timezone

API_BASE = "https://api.noxhash.com/v1"   # confirm in current docs
API_KEY  = os.environ["NOXHASH_API_KEY"]  # never hard-code
OFFLINE_THRESHOLD = timedelta(minutes=30)

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Accept": "application/json",
}

def fetch_miners():
    r = requests.get(f"{API_BASE}/miners", headers=headers, timeout=10)
    r.raise_for_status()
    return r.json().get("data", [])

def check_offline(miners):
    now = datetime.now(timezone.utc)
    alerts = []
    for m in miners:
        if m["status"] != "running":
            last_seen = datetime.fromisoformat(m["last_seen_at"])
            if now - last_seen > OFFLINE_THRESHOLD:
                alerts.append(m)
    return alerts

def send_sms(miner):
    # plug in Twilio / Vonage / a webhook to your phone
    print(f"ALERT: {miner['name']} offline since {miner['last_seen_at']}")

if __name__ == "__main__":
    while True:
        try:
            for miner in check_offline(fetch_miners()):
                send_sms(miner)
        except requests.HTTPError as e:
            print(f"API error: {e}")
        time.sleep(300)  # poll every 5 minutes — be kind to the API

更喜欢 JavaScript?同样的形态在 Node.js 脚本中用 fetch 即可实现,通过 cron runner 或 serverless scheduler 调度。逻辑完全相同:认证、列出矿机、按 status 和 timestamp 筛选、通知。

monitor.mjs · Node.js 20+ javascript
const API_BASE = "https://api.noxhash.com/v1";
const API_KEY  = process.env.NOXHASH_API_KEY;
const OFFLINE_MS = 30 * 60 * 1000;

async function fetchMiners() {
  const res = await fetch(`${API_BASE}/miners`, {
    headers: { Authorization: `Bearer ${API_KEY}` },
  });
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
  const { data } = await res.json();
  return data;
}

function offlineAlerts(miners) {
  const now = Date.now();
  return miners.filter(m =>
    m.status !== "running" &&
    now - new Date(m.last_seen_at).getTime() > OFFLINE_MS
  );
}

setInterval(async () => {
  try {
    const alerts = offlineAlerts(await fetchMiners());
    alerts.forEach(m => console.log(`ALERT: ${m.name} offline`));
  } catch (e) { console.error(e.message); }
}, 5 * 60 * 1000);
API key · 免费试用矿机 · 真实数据

几分钟内让脚本对接一台真实矿机

上面的 Python 和 Node 示例只差一样东西就能活起来:一个运行中矿机的 NoxHash 账户。免费注册,激活 2 天 Basic Miner 试用,生成 API key,然后用真实的 hashrate 数据运行脚本。

对比 polling 和 webhook 两种 API 监控模式的示意图

最值得先落地的三个用例

您不需要第一天就把所有东西都建好。从下面任选一个,这个周末就把它发布——每一个都小到可以在一个晚上完成,并且在周一早上就能真正派上用场。

SMS 离线告警

把上面的 Python 脚本放到任何 5 美元的 VPS 上跑 cron。把 send_sms 函数接到 Twilio 或手机 webhook 上。您会在咖啡变凉之前就知道哪台矿机停了。

每日 Google Sheet 日志

用 Google Apps Script for Sheets 抓取 NoxHash 每日收益,每天早晨为每台矿机追加一行。非常适合税务记录和快速图表。

Grafana 仪表板

通过一个小 exporter 把 hashrate 和 BTC 收益推到 Prometheus,然后与 BTC 价格一起绘图。一眼就能看出这周您的矿机是否跑赢了市场。

Polling 还是 Webhook——哪种模式合适?

Polling 意味着您的脚本按计时器向 API 问"有什么新东西吗?"。Webhook 反过来:NoxHash 将事件推送到您托管的 URL。两者各有位置。如果 API 当前对您关心的事件支持 webhook,那么它们更便宜也更快;如果不支持,礼貌的 polling 循环仍然工作得很好。

因素 Webhook Polling
状态变化延迟 秒级 最长一个 polling 间隔
API 请求量 仅在事件发生时 每次 tick,无论有无事件
所需基础设施 公网 HTTPS endpoint 任何能跑 cron 的机器
处理丢失事件 依赖重试 + 签名校验 自愈——下一次 tick 赶上
最适合 低延迟告警、多台矿机 简单脚本、周期性报表

混合方案往往是正确答案:用 webhook 处理关键告警(矿机离线、租约临近到期),用 polling 做周期性汇总(每日收益日志、周报)。根据 API 公开了哪些事件,以及您能容忍多长时间的延迟(1 到 5 分钟)来选择。

Rate Limit 礼仪与 Key 卫生

您滥用的 API 就是您会失去的 API。NoxHash 和每一个严肃平台一样都会施加 rate limit,并可能临时封禁行为不当的 key。几个小习惯就能让您的集成受欢迎,账户安全。

每 1 到 5 分钟 poll 一次

NoxHash 的 hashrate 以分钟级的节奏更新。每秒 poll 一次换不来更新鲜的数据,只会换来 rate limit 的惩罚。60 到 300 秒是甜蜜点。

收到 429 时退避

如果收到 HTTP 429(Too Many Requests),请尊重 Retry-After header,并把间隔加倍。指数退避胜过把 endpoint 敲成硬封禁。

永远不要提交 key

把 key 放在环境变量或 secret manager 里。推送前扫一下 Git 历史。一旦怀疑泄露立即轮换——这就是短过期时间的意义。

每个集成一个 key

为每个脚本或服务器使用单独的 key。当其中一个被攻破或废弃时,您可以吊销它而不影响其他。按用途命名 key,而不是按所在位置。

常见问题

监控矿机需要编程经验吗?

使用仪表板不需要——它一行代码都不需要就能满足大部分需求。只有当您想做自定义自动化——SMS 告警、电子表格记录或 Grafana 视图时,才需要基本的 Python 或 JavaScript 技能。对非开发者来说,一个 Sheets 里的 Google Apps Script 通常就够了。

我可以多频繁安全地调用 API?

对挖矿监控来说,每 1 到 5 分钟 poll 一次已经足够——NoxHash 的 hashrate 和收益以分钟级节奏更新,更频繁调用也拿不到更新鲜的数据。请始终查阅当前 API 文档获取确切的 rate limit 数值,并尊重任何 Retry-After header。

API key 泄露了会怎么样?

立即从个人资料的 API Keys 页面吊销这把 key,然后生成新的并更新您的脚本。短过期时间(比如 90 天)会自动限制暴露窗口。即便凭证和 key 同时被盗,账户上的 2FA 也能多提供一道防线。

我可以在 serverless function 中使用 API 吗?

可以——AWS Lambda、Cloudflare Workers、Google Cloud Functions 和 Vercel Cron 都非常适合几分钟一次的定时检查。把 API key 存在提供商的 secret manager 里而不是写死在代码中,并给请求包上超时,避免慢 API 调用耗尽您的函数配额。

Webhook 能完全取代 polling 吗?

通常不能。Webhook 能即时处理诸如"矿机离线"这类离散事件,但您仍然需要 polling 或快照 endpoint 来获取每日汇总、历史图表,以及在漏接后做对账。大多数生产级集成两者并用:webhook 用于告警,polling 用于汇总。

我的监控脚本会影响挖矿收益吗?

不会。监控类 endpoint 的 API 是只读的——polling 状态和收益不会影响 hashrate、uptime 或 payout。无论您的脚本检查得多勤,租用的矿机都会继续在 NoxHash 基础设施上运行。

非财务或安全建议

本指南为教育目的描述通用的 API 监控模式。endpoint 路径、rate limit 以及 webhook 支持都可能发生变化——在编写生产代码之前,请始终对照当前 NoxHash API 文档进行核实。挖矿收益取决于 BTC 价格、网络难度和市场状况,所有这些都可能快速变化;过往业绩不代表未来结果。只投入您能承受损失的资金,并就所在国家的加密货币收益相关问题咨询当地税务顾问。