GET可用FRESH
API 目录
全部公开端点及其分类、声明状态与实时状态、缓存 TTL、最近一次探测结果,另附速率限制和错误码表。
GET
/api/meta/catalog请求
该端点不接受任何参数。
请求示例
curl -s "https://www.coinboss.com/api/meta/catalog"响应字段
字段表根据真实响应生成,因此所列内容与端点实际返回的完全一致。路径中 a[] 表示数组元素,{*} 表示以动态名称(如币种或交易所)为键的对象。
| 字段 | 类型 | 单位 | 说明 |
|---|---|---|---|
| success | boolean | — | 请求成功时为 true。失败时响应体为 `{ success: false, code, error, request_id }`。 |
| schema | string | — | 本响应的结构 ID(`coinboss.meta.catalog/1`)。 |
| now | number | ms | 响应生成时的服务器时间。 |
| api_version | string | — | 公开 API 的版本(`v1`)。 |
| catalog_version | string | — | 端点目录的版本,为发布日期,例如 `2026.11.11`。 |
| base_path | string | — | 所有端点共用的路径前缀(`/api`)。 |
| summary | object | — | 汇总数据块。 |
| summary.total | number | — | 总数。 |
| summary.available | number | — | 数据是否可用。 |
| summary.partial | number | — | 仅有部分预期数据时为 true。 |
| summary.degraded | number | count | 实时状态为 `degraded` 的端点数量。 |
| summary.down | number | count | 实时状态为 `down` 的端点数量。 |
| summary.unavailable | number | — | 没有可用数据的条目,附原因。绝不会上报为 0。 |
| summary.unknown | number | count | 实时状态为 `unknown`(没有近期探测结果)的端点数量。 |
| probe | object | — | 实时状态背后的端点探针的状态:上次运行时间、距今时长、运行间隔以及是否新鲜。 |
| probe.last_run_at | number | ms | 时间戳。 |
| probe.age_s | number | s | 该行距上次更新的秒数。 |
| probe.interval_s | number | s | 两次探针运行之间的计划间隔(300)。 |
| probe.fresh | boolean | — | 最近一次探针运行距今不足 20 分钟时为 true;为 false 时端点状态一律报告为 `unknown`。 |
| probe.error | null | — | 错误信息(仅在失败时出现)。 |
| categories | array | — | 至少包含一个端点的端点分类,附各状态的端点数量。 |
| categories[] | object | — | 一个分类:`id`、`title`、`desc` 以及其在每种状态下的端点数量。 |
| categories[].id | string | — | 标识符。 |
| categories[].title | string | — | 分类的显示标题。 |
| categories[].desc | string | — | 分类的一句话描述;尚未撰写时为 null。 |
| categories[].total | number | — | 总数。 |
| categories[].available | number | — | 数据是否可用。 |
| categories[].partial | number | — | 仅有部分预期数据时为 true。 |
| categories[].degraded | number | count | 该分类中实时状态为 `degraded` 的端点数量。 |
| categories[].down | number | count | 该分类中实时状态为 `down` 的端点数量。 |
| categories[].unavailable | number | — | 没有可用数据的条目,附原因。绝不会上报为 0。 |
| categories[].unknown | number | count | 该分类中实时状态为 `unknown` 的端点数量。 |
| endpoints | array | — | 文档记载的每个端点及其实时状态。 |
| endpoints[] | object | — | 一个端点:标识、路径、声明状态与实时状态、缓存有效期、参数名称以及最近一次探测结果。 |
| endpoints[].id | string | — | 标识符。 |
| endpoints[].cat | string | — | 该端点所属分类的 ID。 |
| endpoints[].kind | string | — | 种类。 |
| endpoints[].method | string | — | 公式 / 计算方法说明。 |
| endpoints[].path | string | — | 端点的请求路径;`:name` 形式的路径段为路径参数。 |
| endpoints[].title | string | — | 端点的简短显示标题。 |
| endpoints[].summary | string | — | 汇总数据块。 |
| endpoints[].declared | string | — | 目录中声明的状态,与探测无关:`available`、`partial` 或 `unavailable`。 |
| endpoints[].status | string | — | 状态。 |
| endpoints[].status_reason | string|null | — | `status` 不是 `available` 的原因,纯文本;是时为 null。 |
| endpoints[].stability | string | — | `stable`、`beta`(字段集合可能变更,且不受 90 天提前通知的约束)或 `legacy`(保持可用,已有替代端点)。 |
| endpoints[].since | string|null | — | 周期起始时间。 |
| endpoints[].ttl_s | number|null | s | 端点响应的服务端缓存有效期;不缓存或不适用时为 null。 |
| endpoints[].params | array | — | 该端点接受的全部参数的名称。 在生成此表所用的样本中为空 |
| endpoints[].params[] | string | — | 一个参数名称。 |
| endpoints[].required | array | — | 必须传入的参数的名称。 在生成此表所用的样本中为空 |
| endpoints[].probe | object | — | 该端点最近一次探测结果:检查时间、HTTP 状态码、`ok`、`schema_ok`、延迟、大小、数据时效、上次成功时间和连续失败次数;从未探测时为 null。 |
| endpoints[].probe.checked_at | number | ms | 时间戳。 |
| endpoints[].probe.http | number | — | 最近一次探测请求的 HTTP 状态码。 |
| endpoints[].probe.ok | boolean | — | 最近一次探测请求返回 HTTP 200 且响应体为有效 JSON 时为 `true`。 |
| endpoints[].probe.schema_ok | boolean | — | 被探测的响应与文档记载的字段表一致时为 `true`;没有字段表时为 `null`。 |
| endpoints[].probe.latency_ms | number | ms | 最近一次探测请求的响应时间。 |
| endpoints[].probe.bytes | number | bytes | 被探测响应体的大小。 |
| endpoints[].probe.quality | null | — | 被探测响应上报的 `meta.quality`(FRESH / PARTIAL / STALE …);端点不上报该项时为 `null`。 |
| endpoints[].probe.data_age_s | number|null | s | 距该事件的秒数。 |
| endpoints[].probe.last_ok_at | number | ms | 时间戳。 |
| endpoints[].probe.fail_streak | number | count | 连续失败的探测次数;最近一次探测成功时为 0。 |
| endpoints[].required[] | string | — | 一个必填参数的名称。 |
| rate_limit | object | — | 公开 API 的速率限制规则。 |
| rate_limit.window_s | number | s | 计数窗口的长度(60)。 |
| rate_limit.anonymous_per_min | number | count | 未发送 API 密钥时,每个客户端 IP 每分钟允许的请求数。 |
| rate_limit.scope | string | — | 说明请求计数方式的文本:匿名时按客户端 IP 计数,发送 `CB-API-KEY` 请求头时按密钥计数。 |
| rate_limit.key_tiers_per_min | object | — | 各 API 密钥档位每分钟允许的请求数,以档位名称为键。 |
| rate_limit.key_tiers_per_min.hobbyist | number | count | `hobbyist` 档位密钥的每分钟请求数。 |
| rate_limit.key_tiers_per_min.startup | number | count | `startup` 档位密钥的每分钟请求数。 |
| rate_limit.key_tiers_per_min.standard | number | count | `standard` 档位密钥的每分钟请求数。 |
| rate_limit.key_tiers_per_min.professional | number | count | `professional` 档位密钥的每分钟请求数。 |
| rate_limit.exempt | array | — | 不计入限额的路径模式。 |
| rate_limit.exempt[] | string | — | 一个豁免的路径模式,例如 `/api/coin-icon/*`。 |
| rate_limit.headers | array | — | 用于报告速率限制状态的响应头名称。 |
| rate_limit.headers[] | string | — | 一个响应头名称,例如 `X-RateLimit-Remaining`。 |
| rate_limit.on_exceed | object | — | 超出限制时返回的内容:`http` 状态码和错误 `code`。 |
| rate_limit.on_exceed.http | number | — | 超出限制时返回的 HTTP 状态码(429)。 |
| rate_limit.on_exceed.code | string | — | 代码。 |
| errors | array | — | API 可能返回的错误码,每个都附带 HTTP 状态码、含义和重试建议。 |
| errors[] | object | — | 一个错误码。 |
| errors[].code | string | — | 代码。 |
| errors[].http | number|string | — | 随该错误码返回的 HTTP 状态码;适用多个状态码时为 `501 / 503` 这样的字符串。 |
| errors[].meaning | string | — | 该错误的含义。 |
| errors[].retry | string | — | 关于是否重试以及如何重试的建议。 |
| errors[].legacy | boolean | — | 仅在旧版端点所用的错误码上存在且为 true,这些端点以 HTTP 200 附带 `success: false` 作答。 可能缺失 |
| status_legend | object | — | 各端点状态的纯文本定义。 |
| status_legend.available | string | — | 数据是否可用。 |
| status_legend.partial | string | — | 仅有部分预期数据时为 true。 |
| status_legend.degraded | string | — | 状态 `degraded` 的定义。 |
| status_legend.down | string | — | 状态 `down` 的定义。 |
| status_legend.unavailable | string | — | 没有可用数据的条目,附原因。绝不会上报为 0。 |
| status_legend.unknown | string | — | 状态 `unknown` 的定义。 |
| meta | object | — | 本响应的封装:结构 ID、数据生成系统、时间戳、缓存有效期和新鲜度。 |
| meta.schema | string | — | 本响应的结构 ID;与顶层 `schema` 的值相同。 |
| meta.source | array | — | 数值的来源。 |
| meta.source[] | object | — | 数值的来源。 |
| meta.source[].system | string | — | 生成该数据的系统;开发者中心端点始终为 `coinboss`。 |
| meta.source[].component | string | — | 数据背后的组件:端点探针和数据质量巡检。 |
| meta.observed_at | null | — | 时间戳。 |
| meta.received_at | number | ms | 时间戳。 |
| meta.fetched_at | number | ms | CoinBoss 从数据源获取该数据的时间。 |
| meta.window | string | — | 时间窗口。 |
| meta.cache_ttl_s | number | s | 本响应的服务端缓存有效期。 |
| meta.quality | string | — | 端点探针在最近 20 分钟内上报过时为 `FRESH`,否则为 `STALE`。 |
| meta.is_stale | boolean | — | 该行超出新鲜窗口时为 true;过期的行不计入合计。 |
| meta.fallback | string | — | 纯文本说明:该端点的输入数据过期或缺失时会返回什么。 |
生成于 2026-11-11 23:01 UTC,基于 1 个真实响应。
响应示例
/api/meta/catalog · 真实响应,采集于 2026-11-13 03:53:45 UTC。 为便于展示,较长的数组和映射已被截短:errors 原有 9 项; endpoints 原有 299 项; categories 原有 21 项。
- "success"true
- "schema""coinboss.meta.catalog/1"
- "now"1794542025566
- "api_version""v1"
- "catalog_version""2026.11.12"
- "base_path""/api"
- "summary"
- "total"299
- "available"256
- "partial"17
- "degraded"17
- "down"8
- "unavailable"1
- "unknown"0
- "probe"
- "last_run_at"1794541726312
- "age_s"299
- "interval_s"300
- "fresh"true
- "error"null
- "categories"
- "endpoints"
- "rate_limit"
- "window_s"60
- "anonymous_per_min"1200
- "scope""per client IP for anonymous requests; per key when a CB-API-KEY header is sent"
- "key_tiers_per_min"
- "exempt"
- "headers"
- "on_exceed"
- "errors"
- "status_legend"
- "available""last probe returned HTTP 200 and the response matched the documented schema"
- "partial""works, but exchange / field coverage is incomplete (see status_reason)"
- "degraded""responding, but schema drift or stale data was detected by the last probe"
- "down""last probe failed"
- "unavailable""documented for completeness; no lawful public source yet, the endpoint returns nulls or is not served"
- "unknown""no probe result within the last 20 minutes"
- "meta"
- "schema""coinboss.meta.catalog/1"
- "source"
- "observed_at"null
- "received_at"1794541726312
- "fetched_at"1794542025566
- "window""latest"
- "cache_ttl_s"30
- "quality""FRESH"
- "is_stale"false
- "fallback""when the probe has not reported within 20 minutes every endpoint status becomes \"unknown\""
详细信息
- 身份验证
- 无。公开端点。
- 速率限制
- 每个 IP 每分钟 1200 次请求
- 服务端缓存
- 30s
- 边缘微缓存
- 10s
- 更新频率
- 请求时根据目录文件和最新探测结果重新构建(探针每 5 分钟运行一次)。
- 数据来源
- CoinBoss 端点目录 + sd_api_probe(API 探针真实调用的结果)。
- 时间戳
- 除非字段说明另有注明,均为 Unix 纪元毫秒(UTC)
- 响应格式
- json
- 稳定性
- 稳定
- 上线时间
- 2026-11-11
实时状态
可用检查于 2026-11-13 03:53:45 UTCHTTP 2006 ms结构一致最新数据点距今 5m
近 30 天可用性
408 次检查中 100% 通过
错误
所有端点的失败响应格式一致。完整列表见错误页面。 错误与速率限制 →
| 错误码 | HTTP | 含义 | 处理方式 |
|---|---|---|---|
| INVALID_PARAM | 400 | 缺少必填参数,或某个取值不被接受。已知是哪个参数时,`param` 会给出其名称。 | 请勿原样重试;请修正请求。 |
| UNAUTHORIZED | 401 | 已发送 `CB-API-KEY` 请求头,但该密钥未知或已被吊销。公开数据无需密钥,请去掉该请求头或使用有效密钥。 | 请勿原样重试。 |
| FORBIDDEN | 403 | 该路由不属于公开 API(内部或仅限账户使用)。 | 请勿重试。 |
| NOT_FOUND | 404 | 未知路由,或所请求的币种 / 交易所 / 基金不存在。 | 请勿重试;请对照目录检查路径和标识符。 |
| RATE_LIMITED | 429 | 请求数超过每分钟限额。`Retry-After` 给出需要等待的秒数。 | 等待 `Retry-After` 指定的时间后,再以退避方式重试。 |
| INTERNAL | 500 | 意外的服务器错误。错误信息有意保持通用;报告问题时请附上 `request_id`。 | 几秒后重试一次;若问题持续,请附上请求 ID 报告。 |
| UPSTREAM_FAILED | 503 | 该端点背后的数据源未及时响应。不会返回过期数据或替代数值来顶替。 | 以退避方式重试;并查看状态页。 |
| UNAVAILABLE | 501 / 503 | 数据集暂时未就绪(缓存预热中),或该端点尚无合法的公开数据源。 | 请稍后重试;目录会标出因设计原因而不可用的端点。 |
| REQUEST_FAILED | 200 | 部分较旧的端点会以 HTTP 200 返回 `success: false`。请务必检查 `success`,而不只是 HTTP 状态码。 | 取决于具体信息;按请求失败处理。 |
试一试
GET
/api/meta/catalog可用参数
无参数。
请求 URL
https://www.coinboss.com/api/meta/catalog选择一个端点,然后点击“发送请求”。响应、响应头和耗时将显示在这里。
同分类的其他端点
- 数据质量矩阵(采集器视角) /api/sd/quality
- API 目录 /api/meta/catalog
- 更新日志与版本管理策略 /api/meta/changelog
- 端点文档 /api/meta/endpoint
- OpenAPI 文档 /api/meta/openapi
- 数据质量矩阵 /api/meta/quality
- 服务状态 /api/meta/status
- 检查平台是否收录某个币种代码 /api/coin-exists
- 币种代码到本地托管图标路径的映射 /api/coin-icons
- 币种页聚合摘要 /api/content/coin
- 全站栏目摘要 /api/content/summary
- 法币汇率表 /api/currency/fx
- 交易所 ID 到本地托管图标路径的映射 /api/exchange-icons
- 存活检查 /api/health
- 研究页统计数据 /api/research/stats