Usage Cost
5 coins/call
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/finance-external-futures-pricecURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/finance-external-futures-price' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "symbol": "期货品种代码,详见代码表"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/finance-external-futures-price"
payload = {
"symbol": "期货品种代码,详见代码表"
}
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-external-futures-price"
payload := []byte("{\n \"symbol\": \"期货品种代码,详见代码表\"\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\": \"期货品种代码,详见代码表\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/finance-external-futures-price"))
.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-external-futures-price';
$payload = "{\n \"symbol\": \"期货品种代码,详见代码表\"\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": "883993816152322760914592",
"data": {
"change": "5.0300",
"ask_vol": "3",
"bid_vol": "10",
"hold": "249261.000",
"volume": "5347",
"high": "312.800",
"update_time": 1721629440,
"low": "307.600",
"price": "312.530",
"name": "美黄豆粉",
"ask": "312.600",
"changeRate": "1.6358",
"preclose": "307.500",
"bid": "312.500",
"open": "307.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 | 期货品种代码,详见代码表 | Unspecified |
Request Example
{
"symbol": "期货品种代码,详见代码表"
}- 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 | 返回码,详见返回码说明 | 200 |
| taskNo | string | No | 本次请求号 | 883993816152322760914592 |
| data | object | No | Unspecified | Unspecified |
| data.change | string | No | 涨跌额 | 5.0300 |
| data.ask_vol | string | No | 卖量 | 3 |
| data.bid_vol | string | No | 买量 | 10 |
| data.hold | string | No | 持仓量 | 249261.000 |
| data.volume | string | No | 成交量 | 5347 |
| data.high | string | No | 最高价 | 312.800 |
| data.update_time | number | No | 数据时间戳 | 1721629440 |
| data.low | string | No | 最低价 | 307.600 |
| data.price | string | No | 实时价格 | 312.530 |
| data.name | string | No | 品种名称 | 美黄豆粉 |
| data.ask | string |
API overview
Capabilities, use cases, limitations, and frequently asked questions.
API Introduction
This API provides real-time quote data for major international futures products. By passing a specific futures product code (symbol), you can obtain core market data fields including the latest price, bid/ask order book, trading volume, open interest, and change percentage. The data is suitable for business scenarios requiring monitoring of international commodities and financial derivatives prices.
Use Cases
- Financial News Platforms: Display real-time dynamics and market trends of the international futures market.
- Quantitative Trading Assistance: Provide basic price and volume data input for strategy models.
- Enterprise Risk Management: Monitor international price fluctuations of raw materials (e.g., crude oil, metals, agricultural products).
- Personal Investment Tools: Develop market monitoring software or price alert notification services.
Request and Response Description
- Request Method: POST
- Key Parameter:
symbol(Required), the futures product code, must be passed with a valid value referencing the official code table.