跳到内容

API、CLI和MCP

我们提供三种方式访问您的账户,与您的套餐限制相同。

API

通过REST,从管道、脚本或您自己的工具访问。您可以自行生成和撤销的token。

API

CLI

一个简单的Python文件,无需安装。它使用API。可以在终端中使用:列出宕机的内容,添加或更新monitors。

命令行客户端

MCP

通过MCP-server,您可以让Claude或任何支持该协议的代理读取您的账户并进行更改,就像您在对话中一样。

用于助手

您的API令牌

在您的账户中API tokens下创建一个。它只显示一次,我们仅保留其指纹,它属于您而非组织:它的权限不超过您的权限,如果您离开或角色发生变化,它将停止工作。

在每次调用中将其作为Authorization: Bearer n404_...发送。第一个值得调用的是/api/v1/me,它会返回令牌所属的组织、角色以及两种权限范围中的哪一种:拥有两个账户的人会有两个令牌,无法通过其他方式区分环境变量中的令牌。

版本1的内容

调用 功能
GET /api/v1/me 此令牌的内容及其所属组织
GET /api/v1/monitors 所有监控,按时间从旧到新排序
POST /api/v1/monitors 创建一个,遵循表单规则
GET /api/v1/monitors/{id} 一个监控
PATCH /api/v1/monitors/{id} 更改其名称、地址、间隔或配置,或暂停监控
DELETE /api/v1/monitors/{id} 删除监控及其历史记录
GET /api/v1/monitors/{id}/status 当前状态及其在时间窗口内的正常运行时间
GET /api/v1/groups 每个组及其包含的监视器数量
POST /api/v1/groups 创建一个;已存在的名称会返回对应的组
GET /api/v1/groups/{id} 一个组
PATCH /api/v1/groups/{id} 重命名或修改描述
DELETE /api/v1/groups/{id} 删除组,其监视器会保留但不再分组
GET /api/v1/incidents 故障,按最新排序,可按状态、监视器或时间段筛选
GET /api/v1/incidents/{id} 一个事件及其检测和确认的探针
GET /api/v1/maintenance 维护窗口及其覆盖范围
GET /api/v1/maintenance/{id} 一个窗口及其覆盖的监视器和组
POST /api/v1/maintenance 按组织的时区安排一个窗口,以便部署前开启窗口
DELETE /api/v1/maintenance/{id} 删除窗口,其已覆盖的内容仍然保留
GET /api/v1/status-pages 每个状态页及其是否已启用
GET /api/v1/status-pages/{id} 一个状态页及其发布的内容
POST /api/v1/status-pages/{id}/monitors 将监视器放到状态页上,并使用受众应看到的名称
DELETE /api/v1/status-pages/{id}/monitors/{id} 从此状态页移除,其他状态页仍保留
POST /api/v1/status-pages/{id}/groups 将组放到状态页上,其监视器也会一并加入
DELETE /api/v1/status-pages/{id}/groups/{id} 移除标题,其监视器仍然发布

路径或正文中的每个id都是UUID。写入操作需要读写token以及具有写入权限的角色。

openapi.json

文档采用OpenAPI 3.1格式。它描述了每个调用。您可以使用openapi-generator、oapi-codegen生成客户端。

版本1只会增加字段,不会移除或更改字段类型,第二个版本会使用第二个路径。因此生成的客户端始终可用,重新生成客户端即可获取新增内容。

如果需要客户端

一个文件,Python 3.9或更高版本,无需依赖。下载后将您的token放入环境中。它可以执行API的所有操作,因为每个命令都是对上述路由的一次调用。

nomore404.py

curl -O https://nomore404.com/api/nomore404.py
curl -s https://nomore404.com/api/nomore404.py.sha256 | sha256sum -c
chmod +x nomore404.py
export N404_TOKEN=n404_...

./nomore404.py monitors list
./nomore404.py monitors add --type https --target shop.example.com
./nomore404.py incidents --state open

令牌来自N404_TOKEN或脚本旁边的nomore404.env文件。

用于助手

助手可以通过Model Context Protocol读取并修改此账户。

一个地址,无需安装

将此粘贴到助手要求自定义连接器的地方。它会将你引导至此登录并指定连接所属的组织,设置即完成。

它以你的身份操作:每次调用都会读取你的角色,因此由只能读取权限的人连接的助手也只能读取。它可以读取监视器、故障、正常运行时间、维护窗口和组,并可以添加和修改,包括删除监视器及其历史记录。你可以随时从API令牌中断开连接,助手会列在其中。

故障及长列表

一种错误结构

状态表示类别,正文说明具体故障,包含一个用于分支的代码和一句可读的描述。这句话可能在任何版本中被修改,因此不应解析它。

{
  "error": {
    "code": "monitor_not_found",
    "message": "Nothing here with that id."
  }
}

使用游标而非偏移量

列表返回items和next_cursor。将游标传回以获取下一页,当游标为null时停止。事件可能在你阅读时到达,而偏移量可能会重复显示一行并漏掉下一行。

GET /api/v1/incidents?limit=50
GET /api/v1/incidents?limit=50&cursor=...

限制

一个令牌每分钟最多可调用120次。每个响应都会包含RateLimit-Remaining和RateLimit-Reset,因此守规矩的客户端可以自行调整速度,而不是通过触碰限制来发现它。当账户超过限制时,您会看到带有Retry-After的429响应。

创建一个免费账户