调用价格
5 匠币/次
快速接入
保持统一返回结构,直接通过服务端发起请求即可接入。
https://openapi.toolkk.com/v1/aliyunmarket-cmapi029045-query-symbolscURL 示例
curl --request GET \
--url 'https://openapi.toolkk.com/v1/aliyunmarket-cmapi029045-query-symbols' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "pidx": "页码,每页最多50",\n "rout": "分类rout和keywords两参数中至少输入其中一个,参考(CNST,USST,HKST,GBFSB,GBCFD,GBFT,CNFT,GBDC,GBIDX,C...",\n "keywords": "模糊关键字,拼音首字母/代码等(rout和keywords两参数中必须至少输入其中一个)",\n "futmain": "是否筛选主力合约(1是0否),针对期货分类有效"\n}'Python 示例
import os
import requests
url = "https://openapi.toolkk.com/v1/aliyunmarket-cmapi029045-query-symbols"
payload = {
"pidx": "页码,每页最多50",
"rout": "分类rout和keywords两参数中至少输入其中一个,参考(CNST,USST,HKST,GBFSB,GBCFD,GBFT,CNFT,GBDC,GBIDX,C...",
"keywords": "模糊关键字,拼音首字母/代码等(rout和keywords两参数中必须至少输入其中一个)",
"futmain": "是否筛选主力合约(1是0否),针对期货分类有效"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.get(url, headers=headers, params=payload, timeout=30)
response.raise_for_status()
print(response.json())Go 示例
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/aliyunmarket-cmapi029045-query-symbols"
payload := []byte("{\n \"pidx\": \"页码,每页最多50\",\n \"rout\": \"分类rout和keywords两参数中至少输入其中一个,参考(CNST,USST,HKST,GBFSB,GBCFD,GBFT,CNFT,GBDC,GBIDX,C...\",\n \"keywords\": \"模糊关键字,拼音首字母/代码等(rout和keywords两参数中必须至少输入其中一个)\",\n \"futmain\": \"是否筛选主力合约(1是0否),针对期货分类有效\"\n}")
req, err := http.NewRequest("GET", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java 示例
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"pidx\": \"页码,每页最多50\",\n \"rout\": \"分类rout和keywords两参数中至少输入其中一个,参考(CNST,USST,HKST,GBFSB,GBCFD,GBFT,CNFT,GBDC,GBIDX,C...\",\n \"keywords\": \"模糊关键字,拼音首字母/代码等(rout和keywords两参数中必须至少输入其中一个)\",\n \"futmain\": \"是否筛选主力合约(1是0否),针对期货分类有效\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/aliyunmarket-cmapi029045-query-symbols"))
.method("GET", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP 示例
<?php
$endpoint = 'https://openapi.toolkk.com/v1/aliyunmarket-cmapi029045-query-symbols';
$payload = "{\n \"pidx\": \"页码,每页最多50\",\n \"rout\": \"分类rout和keywords两参数中至少输入其中一个,参考(CNST,USST,HKST,GBFSB,GBCFD,GBFT,CNFT,GBDC,GBIDX,C...\",\n \"keywords\": \"模糊关键字,拼音首字母/代码等(rout和keywords两参数中必须至少输入其中一个)\",\n \"futmain\": \"是否筛选主力合约(1是0否),针对期货分类有效\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;响应示例
{}示例用于理解返回结构,实际结果以接口返回为准。
- 鉴权方式
- 请求头传入 X-API-Key
- 默认限流
- 60 次/分钟
- 超时时间
- 5000 ms
服务端调用时,将 API Key 放在 X-API-Key 请求头中。
建议按 response code 与业务字段双重判断调用结果。
高频调用场景请结合速率限制与重试策略使用。
请求字段
从服务端发起请求,并在 X-API-Key 请求头中传入密钥。
请求字段
字段来自接口结构定义。未提供的说明和示例会标为未标注。
| 字段路径 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| pidx | int | 是 | 页码,每页最多50 | 未标注 |
| rout | string | 否 | 分类rout和keywords两参数中至少输入其中一个,参考(CNST,USST,HKST,GBFSB,GBCFD,GBFT,CNFT,GBDC,GBIDX,CNCFD,CNFOP,CMDTY,TB,JPST,INST,TWST,CNZZ,CNFD...) 美股,港股,外汇,商品股指CFD,国际期货,期货,数字货币,全球股指,黄金市场,期货期权,商品贵金属,政府债券,日股,印股,台股,基金... | 未标注 |
| keywords | string | 否 | 模糊关键字,拼音首字母/代码等(rout和keywords两参数中必须至少输入其中一个) | 未标注 |
| futmain | int | 否 | 是否筛选主力合约(1是0否),针对期货分类有效 | 未标注 |
请求示例
{
"pidx": "页码,每页最多50",
"rout": "分类rout和keywords两参数中至少输入其中一个,参考(CNST,USST,HKST,GBFSB,GBCFD,GBFT,CNFT,GBDC,GBIDX,C...",
"keywords": "模糊关键字,拼音首字母/代码等(rout和keywords两参数中必须至少输入其中一个)",
"futmain": "是否筛选主力合约(1是0否),针对期货分类有效"
}- 鉴权方式
- 请求头传入 X-API-Key
- 默认限流
- 60 次/分钟
- 超时时间
- 5000 ms
响应字段
示例用于理解返回结构,实际结果以接口返回为准。
暂无字段定义,请参考 JSON 示例与接口说明。
响应示例
{}接口简介
接口能力、应用场景、使用限制与常见问题。
接口能力
按品种分类或关键词查找金融品种代码,返回匹配记录的完整代码、简码、中文名称、市场与类型,国际期货合约还可提供最后交易日。它适合在请求行情前确认本服务使用的标识,减少同名品种或相同数字代码在不同市场间的混淆。本查询提供代码资料,不同时返回实时价格,也不执行买卖或判断投资价值。
应用场景
行情页面可用关键词帮助用户定位目标股票、外汇或期货,再保存完整代码与市场关系;接入流程可把业务已有名称与返回记录人工核对,避免猜测代码前缀;期货资料页面可在对应分类下筛选主力合约并展示实际返回的最后交易日。跨供应商迁移时,名称相同不能证明代码命名相同,应分别保存来源与标识。
使用与结果解读
指定页码,并至少提供品种分类或关键词之一。关键词支持文档所列的拼音首字母、代码等模糊检索;主力筛选仅对期货分类有效。接收后检查调用状态,再核对名称、完整代码、简码、市场和类型,选中目标记录后用于相关行情查询。最后交易日只在国际期货合约中有对应定义,不要把股票记录里的该字段当作上市日期或所有品种的到期日。
范围与限制
当前没有确认模糊匹配算法、固定返回条数、完整目录规模与实时更新频率,分页结果不能直接作为全市场已完整收录的证明。应按实际返回记录展示,不在前端保证每页一定取得固定数量。没有匹配项可能与分类、关键词和覆盖有关,不代表品种不存在。完整代码与简码不宜互相替换,也不能默认主力合约标识长期对应同一个月份合约。
常见问题
完整代码与简码可以互换吗?
不要默认互换。应同时核对所属市场和目标行情接口要求,优先保留原返回标识。
必须同时填写分类与关键词吗?
本端点要求至少提供其中之一,同时还需指定页码;两者都缺失不能作为目录全量请求。
主力筛选对股票也有效吗?
当前文档只确认它对期货分类有效,不把它当作股票热度或活跃度筛选。
最后交易日就是上市日期吗?
不是。它是国际期货合约的最后交易日资料,不应统一用于解释其他品种日期。