用途
IC Dashboard APIs 是一组公共 REST API,为 dashboard.internetcomputer.org 提供数据支撑。它们以只读方式暴露 Internet Computer 网络的各类数据,包括 canister 元数据、ICRC 账本、SNS 数据、ICP 账本以及网络指标。智能体和脚本可以通过 HTTPS 从链下调用这些 API,无需部署 canister,也无需消耗 cycles。
主要能力
该技能覆盖五个独立 API:
- IC API:提供 canister、子网、NNS 神经元与提案数据。推荐使用 v4 版本(/api/v4/canisters、/api/v4/subnets)以获得游标分页支持。
- ICRC API:提供 ICRC 账本数据,包括 TestICP 及其他 ICRC 代币(如 ckBTC、SNS 代币)。注意:ICRC API 不提供主网 ICP 数据。推荐使用 v2 版本(/api/v2/ledgers 等)。
- SNS API:提供 SNS 列表、提案和神经元数据。推荐使用 v2 版本(/api/v2/snses 等)。
- Ledger API:提供主网 ICP 代币数据,包括账户、交易和供应量。部分端点使用无版本路径(如 /accounts、/supply/total/latest),游标分页列表使用 /v2/。
- Metrics API:提供治理、cycles、比特币等网络指标。使用 /api/v1/ 版本。
每个 API 均提供 OpenAPI 规范和 Swagger UI 文档,便于获取精确的路径、查询参数、请求体结构和响应格式。
使用方式
使用任意 HTTP 客户端(curl、fetch、axios 或语言原生 HTTP 库)通过 HTTPS 调用。推荐使用 v2 及以上版本,它们支持基于游标的分页(after、before、limit),响应中返回 next_cursor/previous_cursor,用于请求下一页或上一页。
各 API 的基址与文档:
- IC API:https://ic-api.internetcomputer.org ,OpenAPI 规范 https://ic-api.internetcomputer.org/api/v3/openapi.json ,Swagger https://ic-api.internetcomputer.org/api/v3/swagger
- ICRC API:https://icrc-api.internetcomputer.org ,OpenAPI 规范 https://icrc-api.internetcomputer.org/openapi.json ,文档 https://icrc-api.internetcomputer.org/docs
- SNS API:https://sns-api.internetcomputer.org ,OpenAPI 规范 https://sns-api.internetcomputer.org/openapi.json ,文档 https://sns-api.internetcomputer.org/docs
- Ledger API:https://ledger-api.internetcomputer.org ,OpenAPI 规范 https://ledger-api.internetcomputer.org/openapi.json ,Swagger https://ledger-api.internetcomputer.org/swagger-ui/
- Metrics API:https://metrics-api.internetcomputer.org ,OpenAPI 规范 https://metrics-api.internetcomputer.org/api/v1/openapi.json ,文档 https://metrics-api.internetcomputer.org/api/v1/docs
调用示例:
# IC API — 列出 canister(v4 游标分页)
curl -s "https://ic-api.internetcomputer.org/api/v4/canisters?limit=5"
# IC API — 按 ID 获取单个 canister(v3)
curl -s "https://ic-api.internetcomputer.org/api/v3/canisters/ryjl3-tyaaa-aaaaa-aaaba-cai"
# ICRC API — 列出账本(v2)
curl -s "https://icrc-api.internetcomputer.org/api/v2/ledgers?limit=10"
# SNS API — 列出 SNS(v2)
curl -s "https://sns-api.internetcomputer.org/api/v2/snses?limit=10"
# Ledger API — 总供应量
curl -s "https://ledger-api.internetcomputer.org/supply/total/latest"
# Metrics API — 平均 cycle 燃烧率
curl -s "https://metrics-api.internetcomputer.org/api/v1/average-cycle-burn-rate"
获取 OpenAPI 规范用于代码生成或验证:
curl -s "https://ic-api.internetcomputer.org/api/v3/openapi.json" -o ic-api-v3.json
curl -s "https://icrc-api.internetcomputer.org/openapi.json" -o icrc-api.json
curl -s "https://sns-api.internetcomputer.org/openapi.json" -o sns-api.json
curl -s "https://ledger-api.internetcomputer.org/openapi.json" -o ledger-api.json
curl -s "https://metrics-api.internetcomputer.org/api/v1/openapi.json" -o metrics-api-v1.json
适用场景
- 从链下脚本或智能体获取 Internet Computer 网络数据,无需部署 canister。
- 查询 canister 元数据、子网信息、NNS 提案。
- 查询 ICRC 账本(ckBTC、SNS 代币、TestICP)的账户与交易。
- 查询主网 ICP 代币的账户、交易和供应量。
- 查询 SNS 列表、提案和神经元。
- 获取治理、cycles、比特币等网络指标。
- 使用 OpenAPI 规范进行代码生成或接口验证。
限制与注意事项
- 版本与基址:IC API 使用 /api/v3/(canister 和子网使用 v4);ICRC API 有 /api/v1/ 和 /api/v2/;Ledger API 部分端点无版本前缀,游标分页列表使用 /v2/;Metrics API 使用 /api/v1/。使用错误前缀会返回 404 或错误结构。
- Canister ID 格式:路径和查询中的 canister ID 必须符合 principal 格式:27 个字符,五组五个字符加最后一组三个字符(例如 ryjl3-tyaaa-aaaaa-aaaba-cai)。子网 ID 使用更长的格式(例如 63 字符)。格式或长度错误会导致 422 或 400。
- ICRC API 不提供主网 ICP:ICRC API 仅暴露 TestICP 及其他 ICRC 账本,不提供主网 ICP。主网 ICP 数据请使用 Ledger API。
- ICRC API 路径需 ledger_canister_id:ICRC 端点要求在路径中提供 ledger_canister_id(例如 /api/v2/ledgers/{ledger_canister_id}/transactions)。
- 分页:优先使用支持游标分页的 v2 及以上端点(after、before、limit)。旧版 v1/偏移分页端点已过时,使用错误的分页模型会返回空页或错误页。
- 时间戳:大多数时间范围查询参数(start、end)期望 Unix 秒(整数)。发送毫秒或 ISO 字符串会导致验证错误(422)。
- 账户标识符格式:Ledger API 和 ICRC/ICP 端点使用账户标识符(十六进制哈希),而非原始 principal。需按 API 文档使用相同编码(例如 account_identifier 要求 64 字符十六进制)。
- 认证:这些公共仪表盘 API 对文档中的只读端点不要求 API 密钥或认证。如果收到 401/403,请确认未访问其他环境或需要认证的写入端点。
- 无需部署:这些是外部 HTTP API,无需 canister 部署。