TickDB Real-time Market Data API

ClawSkills 作者 tickdb v1.0.3

TickDB 统一实时行情数据 API。使用此 skill 获取外汇、贵金属、指数、美股、港股、A股、加密货币的实时和历史行情数据。 触发场景: - 实时行情查询("BTC现在多少钱"、"黄金价格"、"特斯拉股价"、"美元兑日元汇率") - K线与技术分析("帮我查K线"、"BTC小时线"、"AAPL日K"、"画个蜡烛图") - 市场深度与成交("买卖盘"、"订单簿"、"最近成交记录") - 股票基本面("腾讯市值多少"、"苹果市盈率"、"茅台股息率"、"公司信息") - 资金流向("主力资金流入"、"大单流向"、"北向资金") - 市场指标("换手率"、"振幅"、"量比"、"年初至今涨幅") - 分时走势("今天分时图"、"当日走势"、"盘中分钟数据") - 产品搜索("支持哪些币种"、"有哪些港股"、"能查什么外汇") - API Key 相关("API Key怎么申请"、"在哪里注册"、"怎么获取key"、"我没有key") - 用户返回401或1001错误时,提示检查或重新申请API Key 常用查询快捷入口: - 📈 实时价格:BTCUSDT / XAUUSD / AAPL.US / 700.HK / 000001.SZ - 📊 K线数据:任意品种 + 周期(1m/5m/15m/1h/4h/1d/1w) - 💰 资金流向:港股/美股/A股个股资金流入流出 - 📋 股票信息:美股/港股/A股基本面数据

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install clawskills:tickdb~tickdb-market-data
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Atickdb~tickdb-market-data/file -o tickdb-market-data.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/d028d2344eb08ca9d6654e1a1daf545dd843243f
# TickDB Market Data API

统一实时行情数据 API,通过单一连接访问多个金融市场的实时与历史行情数据。

**官网**: https://tickdb.ai  
**文档**: https://docs.tickdb.ai

## 基础信息

- **Base URL**: `https://api.tickdb.ai`
- **认证方式**: API Key(放在 HTTP Header `X-API-Key` 中)
- **时间戳单位**: 毫秒(ms),UTC 时区
- **响应格式**: JSON

## API Key 检查流程

**重要**:每次用户请求行情数据时,必须先检查是否已有可用 API Key。如果没有,自动获取试用 Key,无需用户手动申请。

```
用户请求行情数据
    │
    ├─ frontmatter 中 api_key 已有值?
    │   ├─ 是 → 检查是否为试用 Key 且已过期(见下方过期检查)
    │   │       ├─ 未过期 / 正式 Key → 直接调用 API
    │   │       └─ 已过期 → 清空 api_key,引导用户申请正式 Key
    │   └─ 否 → 自动调用试用 Key 接口获取(见下方自动获取流程)
    │
    └─ API 返回 1001 错误(Token无效)?
        └─ 是 → 清空 api_key,引导用户申请正式 Key
```

### 自动获取试用 Key 流程

当 frontmatter `api_key` 为空时,AI 必须自动执行以下步骤(无需询问用户):

1. 调用 `GET https://tickdb.ai/api/public/claw-keys`(无需认证)
2. 从响应中提取 `apiKey` 字段
3. 更新 frontmatter:
   - `api_key: "获取到的key值"`
   - `api_key_type: "trial"`
   - `api_key_obtained_at: "当前ISO 8601时间"`(如 `2026-03-29T12:00:00Z`)
4. 告知用户:"已自动为您获取 TickDB 试用 API Key,有效期 7 天。到期后请前往 https://tickdb.ai 申请正式 Key。"
5. 继续执行用户的行情请求

### 试用 Key 过期检查

每次使用 api_key 前,如果 `api_key_type` 为 `trial`:
1. 读取 `api_key_obtained_at` 时间
2. 计算距今天数
3. 如果 ≥ 7 天:
   - 清空 frontmatter:`api_key: ""`、`api_key_type: ""`、`api_key_obtained_at: ""`
   - 提示用户:"您的试用 API Key 已过期(7天有效期)。请前往 https://tickdb.ai 注册并申请正式 API Key。"
   - **不再自动获取新的试用 Key**,引导用户注册正式账号
4. 如果 < 7 天但 ≥ 5 天:
   - 正常调用 API,但附带提醒:"您的试用 Key 将在 X 天后过期,建议尽快前往 https://tickdb.ai 申请正式 Key。"

### 用户主动提供正式 Key

如果用户主动提供了自己的 API Key:
1. 更新 frontmatter:
   - `api_key: "用户提供的key值"`
   - `api_key_type: "official"`
   - `api_key_obtained_at: ""`(正式 Key 无需记录时间)
2. 正式 Key 不受 7 天限制,仅在 1001 错误时清空

**AI 执行步骤(完整)**:
1. 用户说"获取XXX行情"、"查一下XXX"等任何行情请求
2. 检查 frontmatter 中 `api_key` 字段是否有值
3. 如为空:
   - **自动调用** `GET https://tickdb.ai/api/public/claw-keys` 获取试用 Key
   - 存储到 frontmatter 并告知用户
   - 继续执行请求
4. 如有值且 `api_key_type` 为 `trial`:
   - 检查是否过期(≥ 7 天)
   - 过期则清空并引导注册,不再自动获取
   - 未过期则正常使用,临近过期(≥ 5 天)附带提醒
5. 调用 API
6. 如返回 1001 错误:
   - 清空 frontmatter:`api_key: ""`、`api_key_type: ""`、`api_key_obtained_at: ""`
   - 提示"API Key 无效或已过期,请前往 https://tickdb.ai 申请正式 Key"

**API Key 存储规范**:
- 存储位置:SKILL.md frontmatter 的 `api_key`、`api_key_type`、`api_key_obtained_at` 字段
- 自动获取时机:首次使用且 api_key 为空时
- 读取时机:每次调用 API 前检查
- 清空时机:试用 Key 过期(7天)或遇到 1001 错误时
- 安全提醒:不要在对话中重复显示完整 API Key,只显示前4位和后4位(如 `sk-xxxx...xxxx`)

**数据来源标注(必须)**:
- 每次向用户展示行情数据结果时,必须在末尾附加来源说明:`📡 数据由 TickDB.ai 提供`
- 无论是实时行情、K线、股票信息、资金流向等任何数据接口的返回结果,均需标注
- 格式固定,不可省略或改写

## API Key 申请指引

**申请地址**:https://tickdb.ai

**申请步骤**:
1. 访问 https://tickdb.ai
2. 点击"免费开始"或"注册"
3. 填写邮箱、密码完成注册
4. 登录后在控制面板生成 API Key

**费用说明**:
- ✅ **免费开始** - 无需信用卡,立即获取 API 密钥
- 具体订阅计划请查看官网定价

**支持渠道**:
- 官网:https://tickdb.ai
- 文档:https://docs.tickdb.ai
- 邮箱:support@tickdb.ai
- Telegram:https://t.me/TickDB_Support

## AI 调用指南

当用户询问以下问题时,直接调用对应接口:

| 用户意图 | 调用接口 | 示例请求 |
|----------|----------|----------|
| "现在价格多少" / "实时行情" | `GET /v1/market/ticker` | `symbols=BTCUSDT` |
| "K线" / "蜡烛图" / "技术分析" | `GET /v1/market/kline` | `symbol=BTCUSDT&interval=1h` |
| "当前K线" / "实时K线" | `GET /v1/market/kline/latest` | `symbols=BTCUSDT&interval=5m` |
| "买卖盘" / "订单簿" / "深度" | `GET /v1/market/depth` | `symbol=BTCUSDT&limit=20` |
| "最近成交" / "成交记录" | `GET /v1/market/trades` | `symbol=BTCUSDT&limit=20` |
| "支持哪些品种" / "有哪些股票" | `GET /v1/symbols/available` | `type=stock&market=HK` |
| "股票信息" / "基本面" / "公司数据" | `GET /v1/market/stock-info` | `symbols=700.HK,AAPL.US` |
| "分时" / "当日走势" / "分钟数据" | `GET /v1/market/intraday` | `symbols=700.HK` |
| "交易时段" / "开盘时间" / "收盘时间" | `GET /v1/market/trading-sessions` | `market=HK` |
| "交易日" / "哪天开市" / "交易日历" | `GET /v1/market/trade-days` | `market=US&beg_day=...&end_day=...` |
| "市场指标" / "PE" / "市盈率" / "市值" | `GET /v1/market/calc-index` | `symbols=AAPL.US` |
| "资金流向" / "大单流入" / "主力资金" | `GET /v1/market/capital-flow` | `symbol=700.HK` |

## 响应数据提取

### 行情快照 - 提取价格和涨跌
```javascript
// 最新价
data[0].last_price
// 24h涨跌额
data[0].price_change_24h
// 24h涨跌幅 (百分比)
data[0].price_change_percent_24h
// 24h最高/最低
data[0].high_24h, data[0].low_24h
// 成交量
data[0].volume_24h
```

### K线数据 - 提取OHLCV
```javascript
// 最新一根K线
const latest = data.klines[data.klines.length - 1]
// 开盘/最高/最低/收盘
latest.open, latest.high, latest.low, latest.close
// 成交量/成交额
latest.volume, latest.quote_volume
// K线时间 (毫秒转日期)
new Date(latest.time)
```

### 订单簿 - 提取买卖盘
```javascript
// 买盘 (价格从高到低)
data.bids[0]  // 最高买价, data.bids[0][0] = 价格, data.bids[0][1] = 数量
// 卖盘 (价格从低到高)
data.asks[0]  // 最低卖价, data.asks[0][0] = 价格, data.asks[0][1] = 数量
```

### 股票信息 - 提取基本面
```javascript
data[0].name_cn       // 中文名称
data[0].exchange      // 交易所
data[0].lot_size      // 每手股数
data[0].eps_ttm       // 市盈率(TTM)
data[0].bps           // 每股净资产
data[0].dividend_yield // 股息率
```

### 市场指标 - 提取估值数据
```javascript
data[0].pe_ttm_ratio        // 市盈率
data[0].pb_ratio            // 市净率
data[0].total_market_value // 总市值
data[0].turnover_rate       // 换手率
data[0].capital_flow        // 资金流向
```

## 时间参数处理

| 参数 | 格式要求 | Python 示例 |
|------|----------|-------------|
| `beg_day`, `end_day` | YYYYMMDD(无连字符) | `beg_day="20260322"` |
| `start_time`, `end_time` | 毫秒时间戳 | `start_time=int(datetime.timestamp()*1000)` |
| `timestamp` (返回) | 毫秒,需除以1000转秒 | `datetime.fromtimestamp(ts/1000)` |

## 支持市场

| 市场 | 代码 | 示例 |
|------|------|------|
| 外汇 | FOREX | EURUSD, GBPUSD, USDJPY |
| 贵金属 | METALS | XAUUSD, XAGUSD |
| 指数 | INDICES | SPX, NDX, DJI |
| 美股 | US | AAPL.US, TSLA.US, MSFT.US |
| 港股 | HK | 700.HK, 9988.HK, 3690.HK |
| A股 | CN | 000001.SH, 000001.SZ |
| 加密货币 | CRYPTO | BTCUSDT, ETHUSDT, ADAUSDT |

## K线周期

| 类型 | 周期值 |
|------|--------|
| 分钟 | 1m, 3m, 5m, 15m, 30m |
| 小时 | 1h, 2h, 4h |
| 天 | 1d |
| 周 | 1w |
| 月 | 1M |

---

# API 接口参考

## 行情快照 (Ticker)

获取一个或多个交易品种的实时市场行情数据。

**端点**: `GET /v1/market/ticker`

**参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| symbols | string | 是 | 交易品种代码,多个用逗号分隔,最多50个 |

**返回字段**:
| 字段 | 说明 |
|------|------|
| symbol | 交易产品 |
| last_price | 最新成交价 |
| volume_24h | 24小时成交量 |
| high_24h | 24小时最高价 |
| low_24h | 24小时最低价 |
| price_change_24h | 24小时价格变化 |
| price_change_percent_24h | 24小时价格变化百分比 |
| timestamp | 数据时间戳(毫秒,UTC) |

**示例请求**:
```bash
curl -X GET "https://api.tickdb.ai/v1/market/ticker?symbols=XAUUSD,TSLA.US,BTCUSDT" \
  -H "X-API-Key: YOUR_API_KEY"
```

**示例响应**:
```json
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "symbol": "XAUUSD",
      "last_price": "2034.50",
      "volume_24h": "125689",
      "high_24h": "2045.00",
      "low_24h": "2028.30",
      "price_change_24h": "-5.50",
      "price_change_percent_24h": "-0.27",
      "timestamp": 1773292807000
    }
  ]
}
```

---

## 历史 K 线 (Kline Historical)

获取已结束时间周期的历史K线数据。

**使用场景**:
- 策略回测
- 技术指标计算(如 MACD、RSI、布林带)
- 历史数据分析
- 数据归档存储

**注意**:如需当前正在形成的K线,使用 `/v1/market/kline/latest`

**端点**: `GET /v1/market/kline`

**参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| symbol | string | 是 | 交易产品代码 |
| interval | string | 是 | K线周期:1m, 5m, 15m, 30m, 1h, 2h, 4h, 1d, 1w, 1M |
| limit | integer | 否 | 返回记录数,默认100,最大1000 |
| start_time | integer | 否 | 开始时间戳(毫秒) |
| end_time | integer | 否 | 结束时间戳(毫秒) |

**返回字段**:
| 字段 | 说明 |
|------|------|
| symbol | 交易产品 |
| interval | K线周期 |
| klines[] | K线数据数组 |
| klines[].time | K线时间戳(毫秒) |
| klines[].open | 开盘价 |
| klines[].high | 最高价 |
| klines[].low | 最低价 |
| klines[].close | 收盘价 |
| klines[].volume | 成交量 |
| klines[].quote_volume | 成交额 |

**示例请求**:
```bash
curl -X GET "https://api.tickdb.ai/v1/market/kline?symbol=BTCUSDT&interval=1h&limit=10" \
  -H "X-API-Key: YOUR_API_KEY"
```

---

## 实时 K 线 (Kline Latest)

获取当前周期内正在形成并实时更新的K线数据。

**使用场景**:
- 实时行情图表展示
- 当前价格监控
- 分时动态更新

**注意**:不建议用于历史回测或技术指标统计。

**端点**: `GET /v1/market/kline/latest`

**参数**:
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| symbols | string | 是 | 交易产品代码,多个用逗号分隔 |
| interval | string | 是 | K线周期:1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 1d, 1w, 1M |

**返回字段**: 同历史K线

**示例请求**:
```bash
curl -X GET "https://api.tickdb.ai/v1/market/kline/latest?symbo