API
用一个 API key 直接读取我们的行情、指标和结构分析。key 是只读的,用量算在你的套餐里。 API 目前只对企业版开放。
我的 API key
key 是只读的,不带管理权限,用量算在你的套餐里。创建后只显示一次,服务器只保存它的哈希,丢了只能重建。
怎么用
每个请求都带上这个请求头(只支持 GET):
Authorization: Bearer ts_sk_…
例如读取 BTC 的多周期 DeMark 状态:
curl -H "Authorization: Bearer $TS_KEY" \ "https://tradingsignal.pro/api/methods?symbol=BTC/USDT&method=td9&across=1"
让 AI 帮你接入
把下面这段整段复制给 ChatGPT、Claude、DeepSeek 或你的编程助手,它就知道怎么调用这些接口。里面不含你的 key,也请不要把 key 发给 AI。
你要帮我接入 TradingSignal 的只读数据 API。请严格按下面的说明写代码;没有列出的接口、参数和字段都不存在,不要猜。 【基础】 - 地址前缀:https://tradingsignal.pro - 只有 GET,返回 JSON(UTF-8)。 - 鉴权:每个请求都带请求头 Authorization: Bearer <API key>。key 以 ts_sk_ 开头。 - key 从环境变量 TS_API_KEY 读取。不要写进代码、日志、报错信息或任何前端页面,只在服务端调用;也不要让我把 key 发到对话里。 - 品种写法:加密货币用 BASE/QUOTE(例如 BTC/USDT),美股用代码(AAPL),港股带后缀(0700.HK)。放进 URL 时要做 URL 编码。 - 时间字段是 Unix 秒(UTC)。需要日期时用标准库换算,不要心算。 【接口,共 14 个】 GET /api/methods — 结构方法分析:DeMark TD 序列、缠论、VCP、威科夫 - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d - method(必填):td9 / chan / vcp / wyckoff - across:仅 td9:传 1 返回各周期的 DeMark 状态(多周期共振表用的就是它) 返回:across=1 时:across[],每个周期一项,rounds[] 为一轮一轮的状态(regime、setup、countdown、establishedTs、exhaustedTs、strong、failed)。否则:result 为该方法在该周期的完整结果。 示例:https://tradingsignal.pro/api/methods?symbol=BTC/USDT&method=td9&across=1 GET /api/td9-read — DeMark 多周期 AI 解读(四行:结论 / 多周期 / 复盘 / 提醒) - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe:读者正在看的周期,影响“提醒”里引用的价位 - lang:zh(默认)或 en 返回:structured(v=1;asOf / barDate = 事实所属的那根 bar,structures[] 每项还带自己周期的 asOf;focus[] 是结论,structures[] 每周期的方向与 stage(forming / established / exhausted / exhaustion-failed,countdown 是独立的进度数字,不是一个 stage),live13 只有还站着 13 的周期才有,review[].verdict 由程序按价格算出);text 是四行可读摘要;createdAt / ageSeconds / cached 只描述 text 的生成时间,不是整份响应的数据时间——解读最多可缓存 15 分钟,而 structured 每次按最新 bar 重算,两者本就可能不同时;source(model = 模型生成;rules = 模型暂时不可用,由程序按规则生成)。 示例:https://tradingsignal.pro/api/td9-read?symbol=BTC/USDT&timeframe=1h&lang=zh GET /api/klines — K 线 - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d - limit:根数,默认 500 返回:candles[]:t(秒)、o、h、l、c、v。 示例:https://tradingsignal.pro/api/klines?symbol=BTC/USDT&timeframe=1h GET /api/indicators — 技术指标与多空共振分解 - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d - lang:zh 或 en 返回:各指标的数值、信号(bullish / bearish / neutral)和理由,以及汇总的共振计数。 示例:https://tradingsignal.pro/api/indicators?symbol=AAPL&timeframe=1d GET /api/levels — 多周期关键支撑 / 阻力位 - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK 返回:按周期分组的支撑阻力位及其来源。 示例:https://tradingsignal.pro/api/levels?symbol=BTC/USDT GET /api/v2/levels — 多周期关键支撑 / 阻力位(v2:各周期单独成败) - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframes:逗号分隔的周期子集,例如 1h,4h,1d;不传则为该品种的全部周期。未知或重复的周期直接 400 - t:可选,历史锚点(unix 秒);不传为实时 返回:某个周期取不到时只标出这一个(status + errorCode),其余照常返回;succeeded / failed / complete 说明是否完整;全部周期都失败才返回 503。spot.price 只取 1h,取不到时为 null 并给出原因:实时(不传 t)时是 1h 序列最后一根 K 线(可能尚未收盘)的最新收盘价,basis=forming_1h_last_value;传 t 时是锚点前最后一根已收盘 K 线的收盘价,basis=close_at_anchor。两者都没有可核实的报价时间,不能当作经核实的“当前现价”。fetchedAt 是我们抓取数据的时间,不是行情时间;拿不到可核实的行情时间时 sourceAsOf 为 null、timeState 为 unknown。不含原始 K 线。v1(/api/levels)保持不变。 示例:https://tradingsignal.pro/api/v2/levels?symbol=BTC/USDT&timeframes=1h,4h,1d GET /api/v2/chart/history — 指标线的全部历史,按页取(预计算存储;第一期仅加密货币) - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe(必填):5m / 15m / 1h / 4h / 1d / 1w - lines(必填):逗号分隔的图层 id,与 /api/chart/spec 的 overlay id 同一套命名,例如 ma_ribbon,macd,obv,td9-signal。快照类图层(支撑阻力、形态、TD 计数与风险区)不在存储里,会以 line_not_stored 拒绝并列出可选 id - before:可选,unix 秒:返回这一时刻之前最多 500 根。不传则返回最新一页(含正在走的那根,formingTs 标出) 返回:bars(列式 t/o/h/l/c/v)与 overlays(每个 id 的 series 与 extras,每根一个值);td9-signal 以 markers 返回。每个周期从一个固定起点开始保存与计算:1d、1w 从该品种在交易所的第一根 K 线起;4h 从 2026-02-01 起;1h 从 2026-07-01 起;15m、5m 从 2026-08-01 起(computeWindow.start 给出实际起点)。所有累计类指标(OBV、ADL)与 TD 计数都从这个起点算起,所以翻页拼接处连续,但绝对值与 /api/indicators(按其默认窗口计算)不同。computeWindow 给出起点、本页终点和到本页终点为止的总根数;hasMoreBefore 与 nextUrl 用于继续往前翻。单页超过 256 KB 返回 413 lines_too_large。尚未构建的品种:不带 before 请求最新页时,交易所确认该品种存在后才登记构建并返回 202 building;确认不了返回 502 symbol_unverified,不登记;登记写入失败返回 503 store_unavailable。带 before 请求一个从未登记的品种返回 409 start_from_latest(请先请求最新页),不会登记。历史不足 1000 根的品种全部现算,同样可以沿 nextUrl 翻到第一根。每次请求计 1 次计算额度。 示例:https://tradingsignal.pro/api/v2/chart/history?symbol=BTC/USDT&timeframe=1h&lines=ma_ribbon,macd GET /api/trend — 趋势强弱 - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d 返回:趋势方向、强度评分及其构成。 示例:https://tradingsignal.pro/api/trend?symbol=BTC/USDT&timeframe=4h GET /api/resonance — 历史共振点(多个指标同时给出同向信号的位置) - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d - thresh:共振阈值 返回:points[]:时间、方向、多空计数。 示例:https://tradingsignal.pro/api/resonance?symbol=BTC/USDT&timeframe=1d GET /api/fib-rhythm — 斐波那契节奏 - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d 返回:摆动点、回撤 / 扩展位与时间节奏。 示例:https://tradingsignal.pro/api/fib-rhythm?symbol=BTC/USDT&timeframe=1d GET /api/symbols — 品种列表与搜索(搜索用 /api/symbols/search?q=) - market:crypto / stock / forex / commodity - q:仅 /search:关键字 返回:品种代码、名称、所属市场。 示例:https://tradingsignal.pro/api/symbols/search?q=tesla GET /api/leaders — 各市场领涨 / 强势品种 - market:市场 - limit:条数 返回:按相对强弱排序的品种。 示例:https://tradingsignal.pro/api/leaders?market=crypto GET /api/screener — 选股 / 选币筛选器 - market:市场 - preset:预设条件 - sort:排序 - limit:条数 返回:符合条件的品种及命中的条件。更多筛选参数见页面上的筛选器。 示例:https://tradingsignal.pro/api/screener?market=crypto&limit=20 GET /api/expert-notes — 专家点评(只读) - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK - method(必填):目前只有 td9 返回:notes[]:正文、作者、时间。 示例:https://tradingsignal.pro/api/expert-notes?symbol=BTC/USDT&method=td9 【错误处理】 出错时返回 JSON:error(中文,可以直接显示给用户)、message(英文)、code。 - 401 api_key_invalid:key 不存在或写错了 - 401 api_key_revoked:key 已被吊销 - 401 api_key_expired:key 已过期 - 403 api_key_plan:key 是对的,但它所属的账号不是企业版(API 只对企业版开放) - 403 api_key_required:请求既没有带 API key,也不是从我们的网页发出的 - 429 api_key_rate_limited:这个 key 超过了每分钟额度(读取类、计算类各 500 次);响应里有 retryAfterSec,响应头有 Retry-After - 其他 403(没有 code,带 requiredTier):这个品种或功能需要更高的套餐。 - 401 和 403 不要重试,把 error 原样显示给用户。 - 429:读取响应头 Retry-After(秒)或 JSON 里的 retryAfterSec,等够了再试。每个 key 每分钟读取类、计算类各最多 500 次,请串行或小并发调用,并对同一请求做短时间缓存。 - 5xx 或网络错误:指数退避,最多重试 3 次。 【写代码时的约定】 - 先用上面的示例各请求一次,按真实返回的 JSON 定义类型;字段以实际返回为准,不要编造。 - 把“取数”封装成一个带超时(建议 30 秒)和上述错误处理的函数,其余代码只调用它。 - 这些数据是指标读数和结构状态,不是交易指令。DeMark 的 9 表示趋势确立、13 表示趋势衰竭,描述的是趋势所处的阶段,不要写成胜率或买卖建议。 【最小示例】 curl -H "Authorization: Bearer $TS_API_KEY" "https://tradingsignal.pro/api/methods?symbol=BTC/USDT&method=td9&across=1" 请先用我指定的语言写出这个取数函数和一个调用示例,再问我要做什么功能。
数据接口(14 个,只读)
地址前缀 https://tradingsignal.pro,返回 JSON。能看哪些品种、每天多少次,取决于你的套餐。
GET /api/methods结构方法分析:DeMark TD 序列、缠论、VCP、威科夫symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe· 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1dmethod必填 · td9 / chan / vcp / wyckoffacross· 仅 td9:传 1 返回各周期的 DeMark 状态(多周期共振表用的就是它)
返回:across=1 时:across[],每个周期一项,rounds[] 为一轮一轮的状态(regime、setup、countdown、establishedTs、exhaustedTs、strong、failed)。否则:result 为该方法在该周期的完整结果。
/api/methods?symbol=BTC/USDT&method=td9&across=1
GET /api/td9-readDeMark 多周期 AI 解读(四行:结论 / 多周期 / 复盘 / 提醒)symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe· 读者正在看的周期,影响“提醒”里引用的价位lang· zh(默认)或 en
返回:structured(v=1;asOf / barDate = 事实所属的那根 bar,structures[] 每项还带自己周期的 asOf;focus[] 是结论,structures[] 每周期的方向与 stage(forming / established / exhausted / exhaustion-failed,countdown 是独立的进度数字,不是一个 stage),live13 只有还站着 13 的周期才有,review[].verdict 由程序按价格算出);text 是四行可读摘要;createdAt / ageSeconds / cached 只描述 text 的生成时间,不是整份响应的数据时间——解读最多可缓存 15 分钟,而 structured 每次按最新 bar 重算,两者本就可能不同时;source(model = 模型生成;rules = 模型暂时不可用,由程序按规则生成)。
/api/td9-read?symbol=BTC/USDT&timeframe=1h&lang=zh
GET /api/klinesK 线symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe· 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1dlimit· 根数,默认 500
返回:candles[]:t(秒)、o、h、l、c、v。
/api/klines?symbol=BTC/USDT&timeframe=1h
GET /api/indicators技术指标与多空共振分解symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe· 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1dlang· zh 或 en
返回:各指标的数值、信号(bullish / bearish / neutral)和理由,以及汇总的共振计数。
/api/indicators?symbol=AAPL&timeframe=1d
GET /api/levels多周期关键支撑 / 阻力位symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
返回:按周期分组的支撑阻力位及其来源。
/api/levels?symbol=BTC/USDT
GET /api/v2/levels多周期关键支撑 / 阻力位(v2:各周期单独成败)symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframes· 逗号分隔的周期子集,例如 1h,4h,1d;不传则为该品种的全部周期。未知或重复的周期直接 400t· 可选,历史锚点(unix 秒);不传为实时
返回:某个周期取不到时只标出这一个(status + errorCode),其余照常返回;succeeded / failed / complete 说明是否完整;全部周期都失败才返回 503。spot.price 只取 1h,取不到时为 null 并给出原因:实时(不传 t)时是 1h 序列最后一根 K 线(可能尚未收盘)的最新收盘价,basis=forming_1h_last_value;传 t 时是锚点前最后一根已收盘 K 线的收盘价,basis=close_at_anchor。两者都没有可核实的报价时间,不能当作经核实的“当前现价”。fetchedAt 是我们抓取数据的时间,不是行情时间;拿不到可核实的行情时间时 sourceAsOf 为 null、timeState 为 unknown。不含原始 K 线。v1(/api/levels)保持不变。
/api/v2/levels?symbol=BTC/USDT&timeframes=1h,4h,1d
GET /api/v2/chart/history指标线的全部历史,按页取(预计算存储;第一期仅加密货币)symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe必填 · 5m / 15m / 1h / 4h / 1d / 1wlines必填 · 逗号分隔的图层 id,与 /api/chart/spec 的 overlay id 同一套命名,例如 ma_ribbon,macd,obv,td9-signal。快照类图层(支撑阻力、形态、TD 计数与风险区)不在存储里,会以 line_not_stored 拒绝并列出可选 idbefore· 可选,unix 秒:返回这一时刻之前最多 500 根。不传则返回最新一页(含正在走的那根,formingTs 标出)
返回:bars(列式 t/o/h/l/c/v)与 overlays(每个 id 的 series 与 extras,每根一个值);td9-signal 以 markers 返回。每个周期从一个固定起点开始保存与计算:1d、1w 从该品种在交易所的第一根 K 线起;4h 从 2026-02-01 起;1h 从 2026-07-01 起;15m、5m 从 2026-08-01 起(computeWindow.start 给出实际起点)。所有累计类指标(OBV、ADL)与 TD 计数都从这个起点算起,所以翻页拼接处连续,但绝对值与 /api/indicators(按其默认窗口计算)不同。computeWindow 给出起点、本页终点和到本页终点为止的总根数;hasMoreBefore 与 nextUrl 用于继续往前翻。单页超过 256 KB 返回 413 lines_too_large。尚未构建的品种:不带 before 请求最新页时,交易所确认该品种存在后才登记构建并返回 202 building;确认不了返回 502 symbol_unverified,不登记;登记写入失败返回 503 store_unavailable。带 before 请求一个从未登记的品种返回 409 start_from_latest(请先请求最新页),不会登记。历史不足 1000 根的品种全部现算,同样可以沿 nextUrl 翻到第一根。每次请求计 1 次计算额度。
/api/v2/chart/history?symbol=BTC/USDT&timeframe=1h&lines=ma_ribbon,macd
GET /api/trend趋势强弱symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe· 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
返回:趋势方向、强度评分及其构成。
/api/trend?symbol=BTC/USDT&timeframe=4h
GET /api/resonance历史共振点(多个指标同时给出同向信号的位置)symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe· 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1dthresh· 共振阈值
返回:points[]:时间、方向、多空计数。
/api/resonance?symbol=BTC/USDT&timeframe=1d
GET /api/fib-rhythm斐波那契节奏symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKtimeframe· 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
返回:摆动点、回撤 / 扩展位与时间节奏。
/api/fib-rhythm?symbol=BTC/USDT&timeframe=1d
GET /api/symbols品种列表与搜索(搜索用 /api/symbols/search?q=)market· crypto / stock / forex / commodityq· 仅 /search:关键字
返回:品种代码、名称、所属市场。
/api/symbols/search?q=tesla
GET /api/leaders各市场领涨 / 强势品种market· 市场limit· 条数
返回:按相对强弱排序的品种。
/api/leaders?market=crypto
GET /api/screener选股 / 选币筛选器market· 市场preset· 预设条件sort· 排序limit· 条数
返回:符合条件的品种及命中的条件。更多筛选参数见页面上的筛选器。
/api/screener?market=crypto&limit=20
GET /api/expert-notes专家点评(只读)symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HKmethod必填 · 目前只有 td9
返回:notes[]:正文、作者、时间。
/api/expert-notes?symbol=BTC/USDT&method=td9
错误和限流
出错时返回 JSON:error(中文,可以直接显示给用户)、message(英文)和 code。
| 401 | api_key_invalid | key 不存在或写错了 |
| 401 | api_key_revoked | key 已被吊销 |
| 401 | api_key_expired | key 已过期 |
| 403 | api_key_plan | key 是对的,但它所属的账号不是企业版(API 只对企业版开放) |
| 403 | api_key_required | 请求既没有带 API key,也不是从我们的网页发出的 |
| 429 | api_key_rate_limited | 这个 key 超过了每分钟额度(读取类、计算类各 500 次);响应里有 retryAfterSec,响应头有 Retry-After |
| 403 | (无 code,见 error / requiredTier) | 这个品种或功能需要更高的套餐 |
- 每个 key 每分钟 120 次;另外按来源地址限流(读取 120 次 / 分钟,计算类 40 次 / 分钟)。
- key 只对上面列出的 GET 接口生效。其他接口和所有写操作都不认 key,按未登录处理。
- 这些接口只认两种来源:带 API key 的请求,和我们自己的网页。其他请求(脚本、命令行、别的网站)一律返回 403
api_key_required。