怎么用印度行情数据API接口获取公司介绍
做印度股票的行情网站或 App,个股页面除了报价和 K 线,还少不了一块「公司介绍」:这家公司是做什么的、属于哪个板块和行业、CEO 是谁、官网在哪。这篇教学方案用我们的印度行情数据API接口,以 NSE(印度国家证券交易所)的信实工业(RELIANCE)为例,三步把公司介绍取回来并显示出来,文末有可以直接运行的完整代码。

公司介绍里有什么
一次请求固定返回 12 个字段,常用的是这些:
name:公司名称description:公司简介,一段完整的文字sector、industry:板块、行业ceo:首席执行官head_office:总部所在地founded:成立年份website:官网
准备工作
- 一把密钥。能用哪些市场和接口是开通账号时确定的,申请时说明要用印度的财务信息接口。
- 接入地址。HTTP 的接入地址写在开发文档的通用规则里,下文用「HTTP 接入地址」代替。
- 三个参数的取值:国家
country=india,市场代码market=NSE或BSE,语言language=en。其它国家的取值见国家与市场参数。
第一步:确认产品代码
公司介绍按「国家 + 市场 + 产品代码」来取。产品代码要用产品列表接口返回的原值,先取一次 NSE 的列表:
GET /api/all_symbol?market=NSE
返回的是一个数组,每个产品一项。其中信实工业这一项是:
{
"status": 0,
"interval": null,
"market": "NSE",
"code": "RELIANCE",
"message": "SUCCESS",
"data": {
"code": "RELIANCE",
"contract": null,
"name": "RELIANCE INDUSTRIES LTD",
"Market": "NSE",
"Varieties": "EQ"
}
}
code 就是后面要用的产品代码。列表很大(NSE 有三千多个产品),建议取一次存下来,不用每次都请求。
第二步:请求公司介绍
用到的接口是公司介绍(多语言)。请求头带 Authorization: 你的密钥,四个参数都必填:
GET /api/symbol_international_details?country=india&market=NSE&symbol=RELIANCE&language=en
返回(description 很长,这里只列出开头):
{
"status": 0,
"message": "SUCCESS",
"data": {
"country": "india",
"website": "http://www.ril.com",
"founded": "1957",
"description": "Reliance Industries Limited engages in hydrocarbon exploration and production, petroleum refining and marketing, petrochemicals, advanced materials and composites, renewable, financial services, retail, and digital services worldwide. …",
"language": "en",
"industry": "Oil & Gas",
"type": "stock",
"ceo": "Mukesh Dhirubhai Ambani",
"indexes": "[]",
"head_office": "Mumbai",
"name": "Reliance Industries Ltd",
"sector": "Energy"
},
"total": 0,
"page": 0,
"market": "NSE",
"symbol": "RELIANCE",
"code": "RELIANCE",
"interval": null
}
数据在 data 里,status 为 0 表示成功。把 data 里的字段填到页面上,一块公司介绍就有了。
第三步:处理取不到的情况
接口的 HTTP 状态码一律是 200,成功还是失败要看返回里的 status:
status为 500、message是No Symbol:找不到这个产品,或者这个产品没有所传语言的介绍。印度的公司介绍请用language=en,换成别的语言会返回No Symbol。message是language is required!:没有传language。market、symbol缺了也是同样的提示方式。- 没有带
country:请求会直接失败,财务信息类的接口都必须带国家。 - 某个字段是空字符串:这家公司没有这一项内容,显示之前先判断一下。
完整示例代码
下面的代码用 Node.js 18 及以上版本可以直接运行(自带 fetch),把开头两项换成自己的即可。
// 运行:node profile.js(Node.js 18 及以上)
const KEY = '你的密钥';
const HTTP_BASE = 'HTTP 接入地址'; // 见开发文档「概览 · 通用规则」,以 /api/ 结尾
// 取一家印度公司的介绍。market 写 NSE 或 BSE,symbol 用产品列表里的代码
async function companyProfile(market, symbol) {
const query = new URLSearchParams({ country: 'india', market, symbol, language: 'en' });
const res = await fetch(`${HTTP_BASE}symbol_international_details?${query}`, { headers: { Authorization: KEY } });
const text = await res.text();
const body = JSON.parse(text);
if (body.status !== 0) throw new Error(`取不到 ${market}:${symbol} 的公司介绍:${body.message || text}`);
return body.data;
}
companyProfile('NSE', 'RELIANCE').then((p) => {
console.log(p.name);
console.log('板块 / 行业:', p.sector || '—', '/', p.industry || '—');
console.log('CEO:', p.ceo || '—');
console.log('总部:', p.head_office || '—', ' 成立:', p.founded || '—');
console.log('官网:', p.website || '—');
console.log(p.description);
}).catch((e) => console.error(e.message));
运行后输出的前几行:
Reliance Industries Ltd
板块 / 行业: Energy / Oil & Gas
CEO: Mukesh Dhirubhai Ambani
总部: Mumbai 成立: 1957
官网: http://www.ril.com
还想要 Logo、ISIN 和市值
公司介绍接口不带 Logo 和市值,这两类数据在另外两个接口里,参数写法一样:
- 基础信息:
/api/basic?country=india&market=NSE&symbol=RELIANCE,返回 ISIN(INE002A01018)、交易币种(INR)和 Logo。Logo 是一段 SVG 原文,可以直接插入页面。 - 个股财务字段:要哪些字段就在
fields里写哪些,例如取名称、ISIN、币种、市值和市盈率:
GET /api/symbol_details?country=india&market=NSE&symbol=RELIANCE&fields=name,isin,currency,market_cap_basic,price_earnings_ttm
{
"status": 0,
"message": "SUCCESS",
"data": {
"price_earnings_ttm": 21.8706594157,
"country": "india",
"name": "Reliance Industries Limited",
"currency": "INR",
"isin": "INE002A01018",
"market_cap_basic": 16496165117188
},
"total": 0,
"page": 0,
"market": "NSE",
"symbol": "RELIANCE",
"code": "RELIANCE",
"interval": null
}
常见问题
NSE 和 BSE 用哪个? 两个都可以,market 分别写 NSE、BSE,产品代码以各自的产品列表为准。信实工业在两个市场的代码都是 RELIANCE,取到的是同一份介绍。
能取中文或印地语的介绍吗? 印度的公司介绍只有英文,language 请写 en。
产品代码里有 & 怎么办? 写进地址时要转成 %26,否则会查不到产品。示例代码用 URLSearchParams 拼参数,已经自动处理。
返回的字段顺序和示例不一样? 字段的先后顺序不固定,按字段名读取即可。
其它国家和市场
换一个国家只要改参数:country 和 market 换成对应的取值,language 以 en 覆盖最全。全部取值见国家与市场参数。想做 K 线图,可以接着看使用美国行情数据API接口怎么合成动态K线。