选择适合应用的
免费股票代码 API
比较交易所身份、代码变更、退市记录、稳定映射和限额,再构建可靠的股票代码查询。

核心摘要
同一个股票代码可能出现在多个交易所,因此还应保存包含交易所信息的标识。
请求价格前先处理别名、不同股类、停牌或退市状态,以及交易所后缀。
请求成功不代表数据实时,还要读取市场、交易时段、币种和时间戳。
缓存代码元数据、合并重复报价请求,并用轻量适配层隔离供应商。
股票代码 API 应返回哪些字段
应把代码查询与报价查询分成两个步骤:证券记录需要身份字段,报价则需要市场上下文。
| 数据 | 应包含字段 | 用途 | 常见误区 |
|---|---|---|---|
| 证券身份 | 标准代码、交易所、MIC、名称、类型 | 稳定的自选股记录 | 把裸代码当作唯一键 |
| 上市状态 | 有效状态、首日交易、退市日期、别名 | 验证与迁移 | 无提示丢弃已更名代码 |
| 最新报价 | 价格、时间戳、币种、交易所、交易时段 | 自选股与价格快照 | 把延迟数据当作实时数据 |
| 搜索结果 | 匹配文本、分数、地区、供应商 ID | 代码自动补全 | 直接选择第一个模糊结果 |
Ticker、CIK、ISIN、FIGI 与 MIC 不是一回事
股票代码是交易所为某个上市证券分配的简短展示标签。公司更名后代码可能变化,退市后的代码也可能被重新使用;同一个短代码在不同交易所还可能代表完全不同的证券。因此,可靠系统不会把页面上看到的 ticker 直接当作数据库唯一键,而会同时保存多个有明确适用范围的标识符。
| 标识符 | 标识对象 | 适合用途 | 重要限制 |
|---|---|---|---|
| Ticker | 某个上市证券的交易代码 | 展示、搜索和用户输入 | 并非全球唯一,也不是永久标识,缺少交易所上下文时信息不足 |
| MIC | 交易市场或其运营分区 | 构建包含交易所信息的键,并将请求路由到正确市场 | 标识的是交易场所,而不是证券本身 |
| CIK | SEC 申报主体 | 关联美国申报文件和发行人记录 | 一个申报主体可能发行多种证券,也不是全球上市标识 |
| ISIN | 某一具体证券发行 | 跨市场识别同一证券 | 可获得性和再分发权限取决于数据源 |
| FIGI | 单个金融工具或综合层级的金融工具记录 | 在不同数据系统间映射证券 | 需要区分具体上市证券、综合层级和股类层级 |
| Provider ID | 供应商内部记录 | 在同一供应商内部稳定调用 | 通常无法作为跨供应商通用标识 |
实用做法:为每个证券建立自己的不可变内部 ID,再关联带生效时间的 ticker 别名、交易场所标识、发行人标识和供应商映射。这样更换供应商时,不必重写用户持仓与历史记录。
可用于股票代码查询的免费数据源与免费套餐
没有一个来源能够完整覆盖所有市场。官方证券目录最接近上市记录,但往往提供文件而不是现成搜索接口;标识符映射服务负责连接不同编码体系;商业市场数据服务则通常提供更方便的搜索、筛选和历史状态字段。选型时应先明确每个来源承担什么角色。
| 数据源 | 最适合用途 | 主要返回内容 | 需要理解的边界 |
|---|---|---|---|
| SEC company ticker files | 将美国发行人与 EDGAR 记录关联 | 公司名称、CIK、ticker,以及带交易所关联的文件 | SEC 说明文件定期更新,但不保证准确性或覆盖范围;申报主体也不等同于其发行的每只证券 |
| Nasdaq Trader symbol directory | 美国上市证券代码目录 | 证券代码、上市属性以及对应字段定义 | 它是参考目录,不是全球公司搜索或股票报价服务 |
| OpenFIGI API | 把第三方标识符映射为 FIGI | FIGI、ticker、名称、交易所代码、证券类型、综合 FIGI 和股类 FIGI | 只用 ticker 映射可能返回多个证券,需要增加交易所、市场类别、币种或证券类型条件 |
| Massive All Tickers | 可搜索的证券参考资料,以及指定历史日期的证券状态 | ticker、名称、市场、主要交易所、币种、CIK、FIGI、活跃状态,以及可用时的退市日期 | 需要 API 密钥和对应套餐权限,供应商内部标识与覆盖范围也不具备通用性 |
股票代码与证券目录数据的“免费”意味着什么
把宣传额度换算成自己的负载:股票数 × 刷新次数 × 用户数。每日额度看似充足,也可能被严格的每分钟限制卡住。
免费数据可能延迟、仅提供日终价格,或不完整覆盖盘前盘后。界面应明确显示时间戳和延迟,避免暗示实时成交质量。
逐项确认交易所、证券类型、退市代码、分钟数据深度和最早历史日期。“全球覆盖”通常并不代表各市场完全一致。
免费访问不等于可以公开展示、再分发、商业转售或训练模型。既要阅读 API 条款,也要检查底层交易所规则。
设计不会选错公司的股票代码查询
股票代码查询本质上是“搜索并消除歧义”,不是简单的字符串匹配。用户可能输入 ticker、公司法定名称、产品品牌、旧代码、交易所后缀、CIK,甚至只输入一部分文字。接口负责返回候选项,应用还要结合市场、证券类型、上市状态和用户上下文进行排序与确认。
1. 规范输入,但不要破坏代码含义
可以去除首尾空格并统一大小写处理,但应保留用于区分股类或交易所限定代码的标点。在尚未确认目标市场规则前,不要擅自删除句点、连字符、斜杠或市场后缀。
2. 获取完整候选集
同时搜索证券代码和公司名称;如果涉及历史数据,还要包含已失效记录。每个结果至少应返回交易所、国家、币种、证券类型和供应商提供的稳定 ID,自动补全结果不能只显示一个孤立的 ticker。
3. 根据产品场景排序
只服务美国股票的应用可以优先展示纽交所或纳斯达克的活跃普通股,但全球投资组合不应采用同样规则。应明确设置精确代码、公司全名、本地主要上市地、证券类型和语言地区的权重,而不是盲信供应商不透明的匹配分数。
4. 有歧义时必须让用户确认
如果仍有两个合理候选,应同时展示公司名称、交易所、国家、币种和证券类型,让用户选择。默认采用第一个结果,可能把一笔真实持仓错误地挂到另一只证券上。
5. 保存已经解析的身份
用户确认后,应保存内部证券 ID、来源标识和生效日期。后续请求行情或基本面数据时直接使用这份映射,不要每次都重新进行模糊搜索。
正确处理代码变更、并购、退市和不同股类
证券代码目录会持续变化,因此“代码对应哪只证券”必须带有有效时间范围。如果只覆盖当前代码而不保留历史,自选列表、历史交易记录、旧图表链接、提醒规则以及财报关联都可能失效。
代码变更
将旧代码和新代码作为带生效日期的别名保存。只有底层证券确实没有变化时,才能继续使用同一个内部证券 ID。
并购或收购
不能因为某个 ticker 被保留,就默认并购前后的证券仍是同一资产。应记录前身、继承证券、换股条件、事件日期,以及是否发行了新证券。
退市
保留失效记录和退市日期。历史投资组合和回测都需要今天的活跃证券列表中已经不存在的标的。
不同股类
每个股类使用独立 ticker 和证券标识,同时关联到共同发行人。不同股类的投票权和市场价格可能并不相同。
跨市场上市与 ADR
本地股票、海外上市证券和 ADR 可能对应相近经济敞口,但仍是币种、交易场所、换算比例和交易时间不同的独立证券。
代码重新使用
退市代码以后可能分配给完全无关的公司。保存生效日期,可以防止今天的查询结果错误覆盖历史证券身份。
如何可靠集成免费股票代码 API
用 MIC 与标准代码的组合构建稳定的内部键;易读的 ticker 只用于展示,不作为数据库中的唯一身份。
证券名称和交易所映射的变化频率低于报价,应使用更长的缓存时间,并为活跃价格单独设置时效策略。
若代码搜索返回多个交易所或证券类型,应让用户选择,不要默认采用第一个结果。
遵循 Retry-After,使用带抖动的指数退避;在新鲜度允许时,返回带清晰标记的缓存值。
用 QVeris 查找代码搜索与标识符能力
QVeris 帮助开发者和 Agent 查找并检查可调用的金融数据能力。可先查看 QVeris 中的 Massive 服务商详情,核对股票代码目录覆盖,再在调用前检查工具的输入、输出和使用要求。
- 检查工具是否返回交易所、国家、币种、证券类型、上市状态和永久标识,而不是只返回一个 ticker 字符串。
- 提供足够上下文来排除歧义,并把最终选择的来源记录与结果一起保存。
- 让供应商映射与用户看到的投资组合模型分离,避免更换供应商改变证券身份。
常见问题
不唯一。同一短代码可能代表不同交易所的不同证券,因此需要同时保存交易所或 MIC 身份。
有时可以,但交易所授权与延迟不同。应核对每条报价的时间戳和供应商展示许可。
使用稳定的内部证券 ID,并保存带生效日期的代码别名,让自选股在更名或合并后仍可用。
缓存元数据、合并重复请求,在支持时批量查询,并在 429 后正确退避。
