Usage Cost
10 coins/call
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/fund-sale-listcURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/fund-sale-list' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "pageNo": "页码,默认1",\n "pageSize": "每页记录数,默认10,最大50"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/fund-sale-list"
payload = {
"pageNo": "页码,默认1",
"pageSize": "每页记录数,默认10,最大50"
}
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/fund-sale-list"
payload := []byte("{\n \"pageNo\": \"页码,默认1\",\n \"pageSize\": \"每页记录数,默认10,最大50\"\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 \"pageNo\": \"页码,默认1\",\n \"pageSize\": \"每页记录数,默认10,最大50\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/fund-sale-list"))
.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/fund-sale-list';
$payload = "{\n \"pageNo\": \"页码,默认1\",\n \"pageSize\": \"每页记录数,默认10,最大50\"\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
{
"code": 200,
"msg": "成功",
"taskNo": "914968093149234333232591",
"data": {
"list": [
{
"totalValue": 0.4439,
"fundCode": "010989",
"netValue": 0.4439,
"dayOfGrowth": 1.93,
"redeemStatus": "开放赎回",
"saleStatus": "开放申购",
"fundName": "南方中证房地产ETF发起联接E"
}
]
}
}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 |
|---|---|---|---|---|
| pageNo | string | No | 页码,默认1 | Unspecified |
| pageSize | string | No | 每页记录数,默认10,最大50 | Unspecified |
Request Example
{
"pageNo": "页码,默认1",
"pageSize": "每页记录数,默认10,最大50"
}- 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 |
|---|---|---|---|---|
| code | number | No | 返回码,详见返回码说明 | 200 |
| msg | string | No | 返回码对应描述 | 成功 |
| taskNo | string | No | 本次请求号 | 914968093149234333232591 |
| data | object | No | Unspecified | Unspecified |
| data.list | array | No | Unspecified | [{"totalValue":0.4439,"fundCode":"010989","netValue":0.4439,"dayOfGrowth":1.93,"redeemStatus":"开放赎回","saleStatus":"开放申购","fundName":"南方中证房地产ETF发起联接E"}] |
| data.list[] | object | Unspecified | Unspecified | Unspecified |
Response Example
{
"code": 200,
"msg": "成功",
"taskNo": "914968093149234333232591",
"data": {
"list": [
{
"totalValue": 0.4439,
"fundCode": "010989",
"netValue": 0.4439,
"dayOfGrowth": 1.93,
"redeemStatus": "开放赎回",
"saleStatus": "开放申购",
"fundName": "南方中证房地产ETF发起联接E"
}
]
}
}API overview
Capabilities, use cases, limitations, and frequently asked questions.
API Introduction
This API is used to retrieve a list of publicly offered funds currently available for sale in the market. Through a POST request, developers can fetch basic fund information by page number and page size, including fund code, name, unit net value, cumulative net value, daily growth rate, and current subscription and redemption statuses.
Applicable Scenarios
- Financial Information Applications: Display daily updated fund market lists.
- Investment Advisory Platforms: Filter open-for-subscription and normal-status fund products for users to choose from.
- Data Analysis: Build a fundamental fund database to monitor the scale and status changes of products available in the market.
Request and Response Description
- Request Method: POST
- Key Parameters:
pageNo: Page number, default is 1.pageSize: Number of records per page, default 10, maximum 50.