ZH

面向智能体和大模型的 API

这不是另一套 API:它就是你在本站运行测速时浏览器调用的那一套接口,这里把它写清楚,好让脚本、智能体或大模型工具也能调用。不需要密钥,不需要注册,不支持 CORS。

这里没有另外一套「公开 API」:它们就是本站浏览器运行测速时调用的那四个接口,不需要 API 密钥、不需要账号——而且,见下文——不支持 CORS 响应头。

接口

GET/api/speed/ping不限量

一次最简单的往返探测。

响应里的 t 字段仅供参考。Worker 在 I/O 操作之间会冻结 Date.now(),所以它不是测量延迟的可靠时钟——请你自己计时这次请求。

GET/api/speed/meta不限量

反映 Cloudflare 看到的调用方信息:IP、ISP、ASN、城市、国家,以及应答的边缘节点(colo)。

这些信息都不会被存储,只会原样返回给调用方,不会给别的任何人。

GET/api/speed/down每小时每个 IP 600 个令牌

bytes(查询参数,默认 1 MB,上限 100 MB)返回一段随机数据流,用于测量下载速度。

响应带有 no-store, no-transform——不会被压缩或缓存,否则都会让测出来的速度虚高。

POST/api/speed/up每小时每个 IP 600 个令牌

接受最多 100 MB 的请求体,返回收到了多少字节、用了多长时间,用于测量上传速度。

声明的 Content-Length 超过 100 MB 会在读取请求体之前就被拒绝,返回 413。

用算术说清楚使用限制

/api/speed/down/api/speed/up 共用同一个令牌桶,每个 IP 600 个令牌,每 6 秒补充一个。这大约相当于每小时可以完整测速 10 次——一次完整测速用到的请求数远低于 60 次。/api/speed/ping/api/speed/meta 不限量:它们的响应内容很小,限量反而会在它们本该测量的路径上多一次 KV 读取。

这两个接口能返回或接受的单次请求上限都是 100 MB。

不支持 CORS——这是故意的

这些接口不会返回 Access-Control-Allow-Origin 响应头,也都不经过本站账号和账单路由所用的同源校验。这个组合是刻意的:服务器端的调用方——curl、智能体、大模型工具——今天就能正常使用,而浏览器发起的跨源 JavaScript 调用早已被浏览器自身拦截。如果加上 * 的 CORS,任何网站都能借着自己访客的浏览器消耗本站的带宽;把现状写清楚不花一分钱,也不会改变任何行为。

一个示例 —— curl

下载 5 MB 并计时——手动做吞吐量检查的标准方式。

curl -o /dev/null -w "%{time_total}s for %{size_download} bytes\n" \
  "https://mysygnal.net/api/speed/down?bytes=5000000"

一个示例 —— 智能体或大模型工具

同样的测量方式,由调用方自己计时,而不是信任响应里的字段——见上面关于 /api/speed/ping 的说明。

const t0 = performance.now();
const res = await fetch("https://mysygnal.net/api/speed/down?bytes=5000000");
await res.arrayBuffer();
const seconds = (performance.now() - t0) / 1000;
const mbps = (5_000_000 * 8) / seconds / 1_000_000;

本站还为调用方提供的其他内容

llms.txt 把本站的工具、指南和每一个路由器页面整理进一份纯文本文件,供模型而不是浏览器阅读。

本页面为机器翻译,可能包含错误。 阅读英文原文