Usage Cost
5 coins/call
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/finance-a-shares-klinecURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/finance-a-shares-kline' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "symbol": "品种代码,如:sh688193",\n "type": "k线类型, 1:1分钟,5:五分钟;15:15分钟;30:30分钟,60:60分钟,120:120分钟,240:日K,1200:周K,7200:月K,86400...",\n "limit": "返回条数,默认10",\n "ma": "\t返回ma均线,可选值为:5,10,15,20,25,30,可不传"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/finance-a-shares-kline"
payload = {
"symbol": "品种代码,如:sh688193",
"type": "k线类型, 1:1分钟,5:五分钟;15:15分钟;30:30分钟,60:60分钟,120:120分钟,240:日K,1200:周K,7200:月K,86400...",
"limit": "返回条数,默认10",
"ma": "\t返回ma均线,可选值为:5,10,15,20,25,30,可不传"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go Example
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/finance-a-shares-kline"
payload := []byte("{\n \"symbol\": \"品种代码,如:sh688193\",\n \"type\": \"k线类型, 1:1分钟,5:五分钟;15:15分钟;30:30分钟,60:60分钟,120:120分钟,240:日K,1200:周K,7200:月K,86400...\",\n \"limit\": \"返回条数,默认10\",\n \"ma\": \"\\t返回ma均线,可选值为:5,10,15,20,25,30,可不传\"\n}")
req, err := http.NewRequest("POST", 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 Example
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 \"symbol\": \"品种代码,如:sh688193\",\n \"type\": \"k线类型, 1:1分钟,5:五分钟;15:15分钟;30:30分钟,60:60分钟,120:120分钟,240:日K,1200:周K,7200:月K,86400...\",\n \"limit\": \"返回条数,默认10\",\n \"ma\": \"\\t返回ma均线,可选值为:5,10,15,20,25,30,可不传\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/finance-a-shares-kline"))
.method("POST", 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 Example
<?php
$endpoint = 'https://openapi.toolkk.com/v1/finance-a-shares-kline';
$payload = "{\n \"symbol\": \"品种代码,如:sh688193\",\n \"type\": \"k线类型, 1:1分钟,5:五分钟;15:15分钟;30:30分钟,60:60分钟,120:120分钟,240:日K,1200:周K,7200:月K,86400...\",\n \"limit\": \"返回条数,默认10\",\n \"ma\": \"\\t返回ma均线,可选值为:5,10,15,20,25,30,可不传\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
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;Response Example
{
"msg": "成功",
"code": 200,
"taskNo": "202960247220113090298671",
"data": {
"list": [
{
"amount": "171325.1414",
"ma_volume5": 6110,
"ma_price5": 27.38,
"volume": "6185",
"high": "27.880",
"low": "27.600",
"day": "2024-04-22 10:05:00",
"close": "27.790",
"open": "27.600"
}
]
}
}Examples illustrate the response structure. Actual results depend on the API response.
- Authentication
- Send X-API-Key in request headers
- Rate limit
- 60 req/min
- Timeout
- 5000 ms
Send your API Key in the X-API-Key header from your backend.
Check both HTTP status and business fields before treating a call as successful.
Use retries and backoff together with rate limits in high-frequency scenarios.
Request Fields
Send requests from your server with the key in the X-API-Key header.
Request Fields
Fields are read from the API schema. Missing descriptions and examples are marked as unspecified.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| symbol | string | Yes | 品种代码,如:sh688193 | Unspecified |
| type | string | Yes | k线类型, 1:1分钟,5:五分钟;15:15分钟;30:30分钟,60:60分钟,120:120分钟,240:日K,1200:周K,7200:月K,86400:年K | Unspecified |
| limit | string | No | 返回条数,默认10 | Unspecified |
| ma | string | No | 返回ma均线,可选值为:5,10,15,20,25,30,可不传 | Unspecified |
Request Example
{
"symbol": "品种代码,如:sh688193",
"type": "k线类型, 1:1分钟,5:五分钟;15:15分钟;30:30分钟,60:60分钟,120:120分钟,240:日K,1200:周K,7200:月K,86400...",
"limit": "返回条数,默认10",
"ma": "\t返回ma均线,可选值为:5,10,15,20,25,30,可不传"
}- Authentication
- Send X-API-Key in request headers
- Rate limit
- 60 req/min
- Timeout
- 5000 ms
Response Fields
Examples illustrate the response structure. Actual results depend on the API response.
Response Fields
Fields are read from the API schema. Missing descriptions and examples are marked as unspecified.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| msg | string | No | 接口返回码对应的描述信息 | 成功 |
| code | number | No | 接口返回码【注意:不等于HTTP响应状态码】 | 200 |
| taskNo | string | No | 任务订单号【可反馈服务商复核对应订单】 | 202960247220113090298671 |
| data | object | No | Unspecified | Unspecified |
| data.list | array | No | Unspecified | [{"amount":"171325.1414","ma_volume5":6110,"ma_price5":27.38,"volume":"6185","high":"27.880","low":"27.600","day":"2024-04-22 10:05:00","close":"27.790","open":"27.600"}] |
| data.list[] | object | Unspecified | Unspecified | Unspecified |
Response Example
{
"msg": "成功",
"code": 200,
"taskNo": "202960247220113090298671",
"data": {
"list": [
{
"amount": "171325.1414",
"ma_volume5": 6110,
"ma_price5": 27.38,
"volume": "6185",
"high": "27.880",
"low": "27.600",
"day": "2024-04-22 10:05:00",
"close": "27.790",
"open": "27.600"
}
]
}
}API overview
Capabilities, use cases, limitations, and frequently asked questions.
API Introduction
This API provides historical K-line data query services for China's A-share market. It supports various time periods from 1-minute to yearly K-lines and can return moving average (MA) data for specified periods as needed. The data includes core fields such as open price, close price, high price, low price, trading volume, and trading value, suitable for financial terminals, quantitative strategy backtesting, and market visualization scenarios.
Applicable Scenarios
- Market Software Development: Provide real-time and historical K-line chart data for PC or mobile applications.
- Quantitative Trading Strategies: Obtain standardized OHLCV data for technical indicator calculation and strategy backtesting.
- Financial Data Analysis: Combine with moving average data for trend analysis and market sentiment monitoring.
- Investor Education and Information Platforms: Display historical stock trends to assist investor decision-making.
Request and Response Description
Request Method: POST Core Parameters:
symbol(Required): Stock symbol, e.g., .