API、CLI和MCP
我们提供三种方式访问您的账户,与您的套餐限制相同。
您的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 3.1格式。它描述了每个调用。您可以使用openapi-generator、oapi-codegen生成客户端。
版本1只会增加字段,不会移除或更改字段类型,第二个版本会使用第二个路径。因此生成的客户端始终可用,重新生成客户端即可获取新增内容。
如果需要客户端
一个文件,Python 3.9或更高版本,无需依赖。下载后将您的token放入环境中。它可以执行API的所有操作,因为每个命令都是对上述路由的一次调用。
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响应。