DEVELOPER DOCUMENTATION · v1.0

GlobalPulse API

一套 RESTful API,让你以编程方式访问 GlobalPulse 的全部数据资产——实时新闻、市场行情、AI 叙事与信号。专为量化分析师、第三方应用开发者与高级 PRO 用户设计。

REST · JSON PRO 用户专属 10,000 次/月 · 60 次/分钟 HTTPS · TLS 1.3
01 · OVERVIEW

什么是 GlobalPulse API

GlobalPulse API 是我们将客户端展示的所有数据通过标准 HTTP 接口对外提供的服务。这意味着你可以:

  • 把我们的【涨跌家数】数据接入你自己的量化策略
  • 把我们的【AI 盘后扫描】嵌入到企业内部 Slack / 钉钉机器人
  • 用 Python 抓取每日新闻流,做自己的舆情分析
  • 构建基于 GlobalPulse 数据的衍生产品

L1核心特征

统一鉴权

所有接口共用一个 API Key,通过 X-API-Key Header 传递。

共享配额

12 个接口共享 10000 次/月配额,灵活分配。

JSON 响应

所有返回均为 JSON,统一 { ok, data } 结构。

02 · QUICK START

3 分钟快速开始

L1第一步:获取 API Key

在 GlobalPulse 客户端 → 【设置】→ 【API 密钥】,点击【创建 Key】即可生成。Key 形如 gpapi_xxxxxxxx_xxxxxxxxxxxx,请妥善保存。

⚠ 重要:API Key 只在创建时显示一次,关闭弹窗后无法再获取。请立即复制到安全的地方(如 1Password、Bitwarden 或 .env 文件)。

L1第二步:发起第一个请求

测试你的 Key 是否工作。以下命令获取当前 A 股大盘涨跌家数:

curl https://api.global-pulse.net/api/v1/market/limit-stats \
  -H "X-API-Key: gpapi_xxxxxxxx_xxxxxxxxxxxx" \
  -H "User-Agent: my-app/1.0"
import requests

API_KEY = "gpapi_xxxxxxxx_xxxxxxxxxxxx"

r = requests.get(
    "https://api.global-pulse.net/api/v1/market/limit-stats",
    headers={
        "X-API-Key": API_KEY,
        "User-Agent": "my-app/1.0",
    },
    timeout=10,
)
print(r.json())
const API_KEY = "gpapi_xxxxxxxx_xxxxxxxxxxxx";

const res = await fetch(
  "https://api.global-pulse.net/api/v1/market/limit-stats",
  {
    headers: {
      "X-API-Key": API_KEY,
      "User-Agent": "my-app/1.0",
    },
  }
);
const data = await res.json();
console.log(data);

L1第三步:解析响应

所有接口返回统一结构:

{
  "ok": true,
  "data": {
    "up_count": 2899,        // 上涨家数
    "down_count": 2199,      // 下跌家数
    "limit_up_count": 97,    // 涨停数
    "limit_down_count": 2    // 跌停数
  },
  "ts": 1778653662616
}

ok: true 表示成功。失败时 ok: false 并带 code + error。详见 错误码

03 · AUTHENTICATION

鉴权机制

L1必需 Header

每次请求必须包含以下两个 Header:

Header类型说明
X-API-KeyString你的 API Key(必需)
User-AgentString客户端标识,如 myapp/1.0(必需)

L2Key 安全规范

  • 不要将 Key 写在前端代码或公开仓库中
  • 不要通过 URL 参数传递 Key(防止 server 日志记录)
  • 务必使用环境变量或秘钥管理服务存储
  • 如果 Key 不慎泄露,立即在客户端【API 密钥】中【禁用】然后【新建】

L3Key 生命周期

API Key 与你的 PRO 订阅深度绑定:

  • 每个 PRO 用户在任一时刻最多有 1 个 active key
  • PRO 订阅过期时,Key 自动禁用disabled_reason: pro_expired
  • 禁用后所有请求返回 403 KEY_DISABLED
  • 续费 PRO 后需手动重新创建新 Key
04 · LIMITS

配额与限流

MONTHLY QUOTA
10,000 次 / 月

12 个接口共享一个配额池。每月 1 号 00:00 CST 自动重置。

RATE LIMIT
60 次 / 分钟

基于 Redis Token Bucket,按 60 秒滑动窗口计算。

L1叠加包

本月配额用完后,可购买 +10,000 次叠加包(¥99),立即生效,当月有效,不结转下月。联系客服或在客户端【API 密钥】中点【+】图标购买。

L2响应头

每次响应都包含以下 Header,便于你监控用量:

Header示例说明
X-RateLimit-Limit60每分钟上限
X-RateLimit-Remaining52当前窗口剩余
X-Quota-Limit10000本月配额
X-Quota-Used1242本月已用

L3限流策略与重试

触发限流时返回 429 RATE_LIMITED,响应体:

{
  "ok": false,
  "code": "RATE_LIMITED",
  "error": "Rate limit exceeded: 60/min",
  "retry_after": 18    // 秒后可重试
}

建议使用指数退避(exponential backoff)策略:首次失败等 1 秒重试,第二次 2 秒,第三次 4 秒,最多 5 次。

05 · ENDPOINTS

10 个接口

所有接口的根路径为 https://api.global-pulse.net/api/v1。下方按业务领域分组。

L1最新新闻流

GET/v1/news/latest

获取 GlobalPulse 数据引擎抓取的最新财经新闻(中文为主,覆盖国内外财经媒体)。

Query 参数

参数类型默认说明
limitInt50返回条数,1-100

响应

{
  "ok": true,
  "data": [
    {
      "id": "n_8c9d2f...",
      "title": "央行:将继续实施稳健的货币政策...",
      "summary": "今日央行召开三季度金融统计数据发布会...",
      "url": "https://...",
      "source": "新华社",
      "sentiment": 0.62,        // 情绪分 -1 ~ 1
      "category": "macro",      // 宏观 / 行业 / 个股 / 公告
      "tags": ["央行", "货币政策"],
      "published_at": "2026-05-13T10:23:00+08:00"
    }
  ],
  "ts": 1778653662616
}

示例(cURL)

curl 'https://api.global-pulse.net/api/v1/news/latest?limit=20' \
  -H "X-API-Key: $API_KEY" \
  -H "User-Agent: my-app/1.0"

L2主题流

GET/v1/news/topic/:topic

按预定义主题筛选新闻。GlobalPulse 提供 8 个细分主题(覆盖 A 股全行业)+ 4 个兼容别名。

8 个标准主题

topic 值主题名覆盖内容代表股
aiAI / 人工智能大模型 / 算力 / GPU / AI 应用中际旭创、寒武纪、海光、科大讯飞
chip半导体 / 芯片晶圆 / 光刻 / 封测 / SiC / 国产替代中芯国际、北方华创、韦尔股份
ev新能源车锂电 / 智驾 / 充换电比亚迪、宁德时代、赣锋锂业
energy新能源光伏 / 风电 / 储能 / 氢能 / 核电隆基绿能、阳光电源、金风科技
biotech生物医药创新药 / CXO / 减肥药 / 医疗器械恒瑞医药、药明康德、迈瑞医疗
realestate房地产楼市 / 物业 / 建材 / 装修万科、保利、海螺水泥
consumer大消费白酒 / 食品 / 家电 / 零售 / 化妆品贵州茅台、美的、伊利
finance金融 / 宏观银行 / 券商 / 利率 / 政策 / 国际工商银行、招商银行、中信证券

4 个兼容别名(向后兼容老客户)

别名映射到
all不筛选(等同 /news/latest)
conceptai + chip
industrybiotech + realestate + consumer
macrofinance

匹配机制

  • 每个主题预置 30-150 个关键词(中英文 / 公司名 / 技术术语)
  • 标题命中权重 ×3,正文命中权重 ×1
  • 按相关度排序,同分按时间倒序
  • 响应内含 matched_keywords 字段,客户可查看为何命中
  • 60 秒结果缓存(高频调用 ≤ 1ms 响应)

查询参数

参数类型默认说明
limitinteger100返回条数(最大 500)

示例

curl 'https://api.global-pulse.net/api/v1/news/topic/ai?limit=20' \
  -H "X-API-Key: $API_KEY" \
  -H "User-Agent: my-app/1.0"

响应示例

{
  "ok": true,
  "data": {
    "topic": "ai",
    "topic_resolved": "ai",
    "topic_info": {
      "name": "AI / 人工智能",
      "description": "人工智能、大模型、算力相关新闻",
      "keywords_count": 65
    },
    "count": 18,
    "items": [
      {
        "title": "DeepSeek V3.1 发布,推理性能提升 40%",
        "url": "https://...",
        "source": "财联社",
        "time": "2026-05-17T09:30:00Z",
        "summary": "...",
        "matched_keywords": ["DeepSeek", "大模型", "推理"]
      },
      ...
    ],
    "cached": false
  }
}

列出所有可用主题

GET/v1/news/topics

无参数。返回完整的 8 主题元数据 + 4 别名映射,方便客户端动态生成 UI 选择器。

curl 'https://api.global-pulse.net/api/v1/news/topics' \
  -H "X-API-Key: $API_KEY"

L3全量新闻档案 NEW

GET/v1/news/archive

访问 GlobalPulse 完整新闻档案(5000+ 条 / 72 小时滚动窗口)。适合投研分析、回测建模、语料训练、行业研究等场景。

查询参数

参数类型默认说明
limitinteger1000返回条数(最大 5000)
regionstring(全部)地区筛选,如 cn / us
sinceinteger0起始时间戳(毫秒)。只返回此时间之后的新闻

示例

curl 'https://api.global-pulse.net/api/v1/news/archive?limit=500' \
  -H "X-API-Key: $API_KEY" \
  -H "User-Agent: my-app/1.0"

响应示例

{
  "ok": true,
  "data": {
    "count": 500,
    "total_in_archive": 5024,
    "oldest": "2026-05-14T03:00:00.000Z",
    "newest": "2026-05-17T03:30:00.000Z",
    "items": [
      {
        "id": "xxx_123",
        "title": "...",
        "source": "财联社",
        "region": "cn",
        "pubTime": 1778988870752,
        "url": "https://...",
        "tags": ["AI","大模型"],
        "sentiment": "positive",
        "heatBase": 80
      },
      ...
    ]
  }
}

使用场景

  • 投研报告:拉取 72h 窗口所有金融新闻,做行业事件梳理
  • 策略回测:用历史新闻做事件驱动策略的研究
  • 语料训练:做行业语料库建设、关键词图谱
  • 批量分析:配合 since 增量拉取,只取最新增量
💰 计费规则(差异化)
由于本接口可返回大量数据(最多 5000 条),按【实际返回数据量】计费,公式:
cost = max(1, ceil(返回条数 / 100))
返回条数消耗配额说明
≤ 1001跟普通接口一样
5005中等批量
100010大批量
500050全量
每次响应的 X-Quota-Cost header 和 body 中的 _cost 字段都会告诉你本次实际消耗。
💡 增量拉取技巧:首次调用记录返回的 newest 时间戳,下次调用传 since=<上次newest+1>,即可只拿到新增新闻,节省配额。

L1大盘指数

GET/v1/market/indices

实时获取 A 股、港股、美股、日经、富时等全球主要指数。

响应

{
  "ok": true,
  "data": [
    {
      "code": "000001.SS",
      "name": "上证指数",
      "price": 3245.67,
      "change": 12.34,
      "change_pct": 0.38,
      "volume": 245678900000,    // 成交额(元)
      "update_at": "2026-05-13T15:00:00+08:00"
    }
  ],
  "ts": 1778653662616
}

L2市场情绪

GET/v1/market/sentiment

基于新闻情绪、连板梯队、北向流入等多维度计算的综合情绪分(-100 ~ 100)。

响应

{
  "ok": true,
  "data": {
    "score": 38,              // -100 ~ 100
    "label": "偏乐观",         // 极悲观/偏悲观/中性/偏乐观/极乐观
    "components": {
      "news_sentiment": 0.42,
      "limit_ratio": 0.32,
      "north_flow": 0.51
    },
    "update_at": "2026-05-13T15:00:00+08:00"
  }
}

L3概念图谱 3D NEW

GET/v1/market/concept-graph

全市场概念簇 + 个股梯队的结构化图谱,驱动「概念星图 3D」可视化。两种视图:

  • 全景视图(默认,不带 code):返回概念簇 + 每簇龙头梯队 + 市场温度判定。消耗 10 次配额
  • 单股视图(带 ?code=6位代码):返回该股所属概念 + 在各概念内的梯队位次。消耗 1 次配额

查询参数

参数类型说明
codestring可选。6 位股票代码 → 切换单股视图。
topint可选,默认 20。返回概念簇数量,上限 50。
membersint可选,默认 10。每簇成员数,上限 30。

响应(全景)

{
  "ok": true,
  "data": {
    "regime": "题材活跃·多点开花",
    "base_date": "2026-06-12",
    "clusters": [
      {
        "concept": "AI算力",
        "limit_up": 6,
        "members": [
          { "rank": 1, "code": "300750", "name": "宁德时代",
            "chg_pct": 10.0, "zt": true, "dt": false,
            "amount": 12800000000, "role": "龙1" }
        ]
      }
    ]
  }
}

示例

curl 'https://api.global-pulse.net/api/v1/market/concept-graph?top=20&members=10' \
  -H 'X-API-Key: gp_live_xxx'

# 单股视图
curl 'https://api.global-pulse.net/api/v1/market/concept-graph?code=600519' \
  -H 'X-API-Key: gp_live_xxx'
⚠️ 专项防护(在通用配额之上叠加)
· 独立限频 1 次 / 30 秒:超频返回 429 GRAPH_RATE_LIMITED。此限频独立于 60 次/分钟的通用桶。
· 加权配额:全景视图扣 10 次、单股视图扣 1 次(2xx 成功才扣)。
· 15 秒服务端缓存:相同视图 15 秒内重复请求命中缓存,不重复计算。
· 零放大:数据仅取自内部内存图谱,任何调用量都不会触达上游行情源。

L1涨跌停统计

GET/v1/market/limit-stats

实时 A 股市场广度数据:涨跌家数、涨停数、跌停数、连板梯队。

响应

{
  "ok": true,
  "data": {
    "up_count": 2899,
    "down_count": 2199,
    "flat_count": 145,
    "limit_up_count": 97,
    "limit_down_count": 2,
    "consecutive_2": 45,      // 2 连板
    "consecutive_3": 18,      // 3 连板
    "consecutive_4_plus": 12, // 4+ 连板
    "update_at": "2026-05-13T15:00:00+08:00"
  }
}

L3概念图谱 3D NEW

GET/v1/market/concept-graph

全市场概念簇 + 个股梯队的结构化图谱,驱动「概念星图 3D」可视化。两种视图:

  • 全景视图(默认,不带 code):返回概念簇 + 每簇龙头梯队 + 市场温度判定。消耗 10 次配额
  • 单股视图(带 ?code=6位代码):返回该股所属概念 + 在各概念内的梯队位次。消耗 1 次配额

查询参数

参数类型说明
codestring可选。6 位股票代码 → 切换单股视图。
topint可选,默认 20。返回概念簇数量,上限 50。
membersint可选,默认 10。每簇成员数,上限 30。

响应(全景)

{
  "ok": true,
  "data": {
    "regime": "题材活跃·多点开花",
    "base_date": "2026-06-12",
    "clusters": [
      {
        "concept": "AI算力",
        "limit_up": 6,
        "members": [
          { "rank": 1, "code": "300750", "name": "宁德时代",
            "chg_pct": 10.0, "zt": true, "dt": false,
            "amount": 12800000000, "role": "龙1" }
        ]
      }
    ]
  }
}

示例

curl 'https://api.global-pulse.net/api/v1/market/concept-graph?top=20&members=10' \
  -H 'X-API-Key: gp_live_xxx'

# 单股视图
curl 'https://api.global-pulse.net/api/v1/market/concept-graph?code=600519' \
  -H 'X-API-Key: gp_live_xxx'
⚠️ 专项防护(在通用配额之上叠加)
· 独立限频 1 次 / 30 秒:超频返回 429 GRAPH_RATE_LIMITED。此限频独立于 60 次/分钟的通用桶。
· 加权配额:全景视图扣 10 次、单股视图扣 1 次(2xx 成功才扣)。
· 15 秒服务端缓存:相同视图 15 秒内重复请求命中缓存,不重复计算。
· 零放大:数据仅取自内部内存图谱,任何调用量都不会触达上游行情源。

L2北向资金

GET/v1/market/north-flow

沪股通 + 深股通实时净流入。

响应

{
  "ok": true,
  "data": {
    "total_net": 4567.89,      // 净流入(百万元)
    "shanghai_net": 2340.12,   // 沪股通
    "shenzhen_net": 2227.77,   // 深股通
    "update_at": "2026-05-13T15:00:00+08:00"
  }
}

L3概念图谱 3D NEW

GET/v1/market/concept-graph

全市场概念簇 + 个股梯队的结构化图谱,驱动「概念星图 3D」可视化。两种视图:

  • 全景视图(默认,不带 code):返回概念簇 + 每簇龙头梯队 + 市场温度判定。消耗 10 次配额
  • 单股视图(带 ?code=6位代码):返回该股所属概念 + 在各概念内的梯队位次。消耗 1 次配额

查询参数

参数类型说明
codestring可选。6 位股票代码 → 切换单股视图。
topint可选,默认 20。返回概念簇数量,上限 50。
membersint可选,默认 10。每簇成员数,上限 30。

响应(全景)

{
  "ok": true,
  "data": {
    "regime": "题材活跃·多点开花",
    "base_date": "2026-06-12",
    "clusters": [
      {
        "concept": "AI算力",
        "limit_up": 6,
        "members": [
          { "rank": 1, "code": "300750", "name": "宁德时代",
            "chg_pct": 10.0, "zt": true, "dt": false,
            "amount": 12800000000, "role": "龙1" }
        ]
      }
    ]
  }
}

示例

curl 'https://api.global-pulse.net/api/v1/market/concept-graph?top=20&members=10' \
  -H 'X-API-Key: gp_live_xxx'

# 单股视图
curl 'https://api.global-pulse.net/api/v1/market/concept-graph?code=600519' \
  -H 'X-API-Key: gp_live_xxx'
⚠️ 专项防护(在通用配额之上叠加)
· 独立限频 1 次 / 30 秒:超频返回 429 GRAPH_RATE_LIMITED。此限频独立于 60 次/分钟的通用桶。
· 加权配额:全景视图扣 10 次、单股视图扣 1 次(2xx 成功才扣)。
· 15 秒服务端缓存:相同视图 15 秒内重复请求命中缓存,不重复计算。
· 零放大:数据仅取自内部内存图谱,任何调用量都不会触达上游行情源。

L1AI 叙事

GET/v1/ai/narrative

每日 4 次(开盘前/午盘/下午/收盘后)由 AI 生成的市场叙事,包含利好、利空、关注点。

响应

{
  "ok": true,
  "data": {
    "title": "市场情绪边际改善,结构性机会延续",
    "summary": "今日市场...",  // 200 字摘要
    "bullish": "...",          // 利好(80-120 字)
    "bearish": "...",          // 利空(80-120 字)
    "focus": ["AI 芯片", "新能源"],
    "session": "afternoon",    // pre / morning / afternoon / closed
    "generated_at": "2026-05-13T14:30:00+08:00"
  }
}

L2信号复盘

GET/v1/ai/signals

AI 对当日重大事件的信号分类(利好/利空),并标注影响行业。每日 2 次。

L3盘后扫描

GET/v1/ai/post-scan

每个交易日 16:30 自动跑的盘后扫描,包含 5 类股票池(涨停先锋 / 北向集中 / 突破启动 / 资金接力 / 主题龙头)。

响应

{
  "ok": true,
  "data": {
    "date": "2026-05-13",
    "pools": {
      "limit_up_pioneer": [
        { "code": "300999", "name": "金龙鱼", "reason": "..." }
      ],
      "north_focus": [...],
      "breakout_starter": [...],
      "capital_relay": [...],
      "theme_leader": [...]
    },
    "generated_at": "2026-05-13T16:35:12+08:00"
  }
}
06 · ERRORS

错误码

所有错误返回 { ok: false, code, error }。HTTP 状态码与业务错误码一一对应。

HTTPCode含义处理
400UA_REQUIRED缺少 User-Agent Header添加 User-Agent
401KEY_REQUIRED缺少 X-API-Key Header添加 Key
401KEY_INVALIDKey 不存在或已禁用检查 Key 是否正确
403KEY_DISABLEDKey 已禁用查看 disabled_reason,重建 Key
403PRO_EXPIREDPRO 订阅过期续费 PRO 后重建 Key
404NOT_FOUND接口路径错误检查 URL
429RATE_LIMITED60 次/分钟限流等 retry_after 秒后重试
429QUOTA_EXCEEDED月度配额用完购买叠加包或下月再试
500INTERNAL_ERROR服务器内部错误重试 3 次后联系客服
503UPSTREAM_DOWN数据引擎暂时不可用稍后重试

L2错误响应示例

{
  "ok": false,
  "code": "PRO_EXPIRED",
  "error": "PRO subscription has expired. API Key has been disabled.",
  "details": {
    "expired_at": "2026-04-30T00:00:00+08:00",
    "action_required": "Please renew PRO subscription and create a new key."
  }
}
07 · VERSIONING

版本管理

L2兼容性承诺

v1 接口将至少维护至 2027-12-31,所有路径、字段名、返回结构保持向后兼容。我们承诺:

  • 只增不减:新增字段不影响现有代码
  • 数据质量持续优化:算法升级用户无感
  • 非破坏性变更:除非提前 60 天公告,不会下线接口

L3升级路径

未来如果有破坏性变更,将发布 v2:

  • v1 与 v2 并存至少 6 个月
  • 提前 90 天邮件 + 客户端通知
  • 提供完整的 v1 → v2 迁移指南
08 · SDK & TOOLS

SDK 与工具

Python SDK

官方 Python 客户端,pip 安装。

pip install gp-api

Postman Collection

一键导入测试所有接口。

下载 Collection JSON →

L3OpenAPI 3.0 规范

使用我们的 openapi.yamlopenapi-generator 生成你需要的任意语言 SDK(Go / Rust / Java / Swift / Kotlin)。

09 · FAQ

常见问题

API 数据多久更新一次?

新闻:分钟级;行情:实时(盘中 3 秒延迟);AI 叙事:每日 4 次;盘后扫描:每交易日 16:30。

能用 API 数据做收费产品吗?

可以,但需要遵守:(1) 不能转售原始数据 (2) 必须标注 "Powered by GlobalPulse" (3) 不能逆向我们的算法。商业大客户请联系 business@global-pulse.net

API Key 丢了怎么办?

在客户端【API 密钥】中【禁用】当前 Key,再【新建】一个。旧 Key 立即失效。

能锁定 IP 吗?

v1.0 不强制锁定 IP(仅记录最近调用 IP)。如果你的安全场景需要 IP 白名单,请联系商务定制企业版。

支持 Webhook 推送吗?

v1.0 暂不支持,需要轮询。v2 计划支持 Webhook(新闻推送 / 盘后扫描完成等)。

有 SLA 保证吗?

个人 PRO:尽力而为,无 SLA。企业版可签 99.5% SLA。