
下列接口需有效 licence 调用;左侧切换分类,右侧「目录」可快速跳转接口;接口内通过选项卡查看字段说明、返回示例与 Playground。 麦蕊智数所有接口均支持 HTTP GET 直接调用,也可通过官方多语言 SDK(Python / JS / Java / Go / C#)调用,鉴权与限流规则完全一致,可按习惯任选。
本页无匹配接口,可尝试上方「全站搜索结果」或更换关键词。
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| dm | string | 指数代码,如:000001.SH |
| mc | string | 指数名称,如:上证指数 |
| jys | string | 交易所,"sh"表示上证,"sz"表示深证 |
[]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/list/您的licence'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_list()
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/list/您的licence'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_list();
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/list/您的licence".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
Object data = api.indexList();
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/list/您的licence', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
data, _ := api.IndexList()
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/list/您的licence".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var data = await api.IndexListAsync();
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| p | number | 最新价 |
| o | number | 开盘价 |
| h | number | 最高价 |
| l | number | 最低价 |
| yc | number | 前收盘价 |
| cje | number | 成交总额 |
| v | number | 成交总量 |
| pv | number | 原始成交总量 |
| ud | float | 涨跌额 |
| pc | float | 涨跌幅 |
| zf | float | 振幅 |
| t | string | 更新时间 |
[]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/real/time/指数代码(如:000001.SH)/证书您的licence'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_real_time("000001")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/real/time/指数代码(如:000001.SH)/证书您的licence'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_real_time("000001");
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/real/time/指数代码(如:000001.SH)/证书您的licence".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
Object data = api.indexRealTime("000001");
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/real/time/指数代码(如:000001.SH)/证书您的licence', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
data, _ := api.IndexRealTime("000001")
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/real/time/指数代码(如:000001.SH)/证书您的licence".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var data = await api.IndexRealTimeAsync("000001");
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间 |
| o | float | 开盘价 |
| h | float | 最高价 |
| l | float | 最低价 |
| c | float | 收盘价 |
| v | float | 成交量 |
| a | float | 成交额 |
| pc | float | 前收盘价 |
"{
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/latest/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_latest("000001.SZ", "d")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/latest/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_latest("000001.SZ", "d");
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/latest/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
Object data = api.indexLatest("000001.SZ", "d");
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/latest/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
data, _ := api.IndexLatest("000001.SZ", "d")
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/latest/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var data = await api.IndexLatestAsync("000001.SZ", "d");
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间 |
| o | float | 开盘价 |
| h | float | 最高价 |
| l | float | 最低价 |
| c | float | 收盘价 |
| v | float | 成交量 |
| a | float | 成交额 |
| pc | float | 前收盘价 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/history/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_history("000001.SZ", "d", st="20250101", et="20250430")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/history/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_history("000001.SZ", "d", { st: "20250101", et: "20250430" });
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/history/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20250101";
q.et = "20250430";
Object data = api.indexHistory("000001.SZ", "d", q);
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/history/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
st := "20250101"
et := "20250430"
data, _ := api.IndexHistory("000001.SZ", "d", mairui.TimeRangeQuery{St: &st, Et: &et})
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/history/指数代码.市场(如000001.SH)/分时级别(如d)/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var q = new TimeRangeQuery { St = "20250101", Et = "20250430" };
var data = await api.IndexHistoryAsync("000001.SZ", "d", q);
Console.WriteLine(data);
| 参数名称 | 说明 |
|---|---|
| 指数代码 | 如 000001.SH |
| 分时级别 | 固定为 1(1 分钟),需Quant Pro 增强包 |
| licence | 已开通Quant Pro 增强包的付费证书 |
| lt | 最新条数,可选,最大 5 |
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间(北京时间) |
| o | float | 开盘价 |
| h | float | 最高价 |
| l | float | 最低价 |
| c | float | 收盘价 |
| v | float | 成交量 |
| a | float | 成交额(若有) |
| pc | float | 涨跌幅(若有) |
| sf | float | 涨跌额(若有) |
[{"t":"2026-07-25 14:59:00","o":11.2,"h":11.25,"l":11.18,"c":11.22,"v":123456,"a":1380000}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/pro/latest/指数代码.市场(如000001.SH)/1/您的licence?lt=最新条数(如5)'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/pro/latest/指数代码.市场(如000001.SH)/1/您的licence?lt=最新条数(如5)'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/pro/latest/指数代码.市场(如000001.SH)/1/您的licence?lt=最新条数(如5)".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/pro/latest/指数代码.市场(如000001.SH)/1/您的licence?lt=最新条数(如5)', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/pro/latest/指数代码.市场(如000001.SH)/1/您的licence?lt=最新条数(如5)".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
| 参数名称 | 说明 |
|---|---|
| 指数代码 | 如 000001.SH |
| 分时级别 | 固定为 1(1 分钟),需Quant Pro 增强包 |
| licence | 已开通Quant Pro 增强包的付费证书 |
| st | 开始时间,可选 |
| et | 结束时间,可选 |
| lt | 返回最近 N 条,可选 |
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间(北京时间) |
| o | float | 开盘价 |
| h | float | 最高价 |
| l | float | 最低价 |
| c | float | 收盘价 |
| v | float | 成交量 |
| a | float | 成交额(若有) |
| pc | float | 涨跌幅(若有) |
| sf | float | 涨跌额(若有) |
[{"t":"2026-07-25 14:59:00","o":11.2,"h":11.25,"l":11.18,"c":11.22,"v":123456,"a":1380000}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/pro/history/指数代码.市场(如000001.SH)/1/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/pro/history/指数代码.市场(如000001.SH)/1/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/pro/history/指数代码.市场(如000001.SH)/1/您的licence?st=开始时间&et=结束时间<=最新条数".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/pro/history/指数代码.市场(如000001.SH)/1/您的licence?st=开始时间&et=结束时间<=最新条数', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/pro/history/指数代码.市场(如000001.SH)/1/您的licence?st=开始时间&et=结束时间<=最新条数".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
当前接口在官方多语言 SDK(v1.2.0)中暂无专用方法封装,请使用本页「HTTP 请求」方式调用;鉴权与限流规则与 SDK 完全一致。
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
| diff | number | DIFF值 |
| dea | number | DEA值 |
| macd | number | MACD值 |
| ema12 | number | EMA(12)值 |
| ema26 | number | EMA(26)值 |
[
{
"t": "2025-06-03 00:00:00",
"diff": 0.0,
"dea": 0.0,
"macd": 0.0,
"ema12": 11.81,
"ema26": 11.81
},
{
"t": "2025-06-04 00:00:00",
"diff": 0.002,
"dea": 0.0,
"macd": 0.004,
"ema12": 11.8146,
"ema26": 11.8122
},
{
"t": "2025-06-05 00:00:00",
"diff": -0.009,
"dea": -0.001,
"macd": -0.016,
"ema12": 11.7924,
"ema26": 11.8017
},
{
"t": "2025-06-06 00:00:00",
"diff": -0.016,
"dea": -0.004,
"macd": -0.023,
"ema12": 11.7782,
"ema26": 11.7942
},
{
"t": "2025-06-09 00:00:00",
"diff": -0.02,
"dea": -0.008,
"macd": -0.025,
"ema12": 11.7677,
"ema26": 11.7879
},
{
"t": "2025-06-10 00:00:00",
"diff": -0.015,
"dea": -0.009,
"macd": -0.013,
"ema12": 11.7742,
"ema26": 11.7896
},
{
"t": "2025-06-11 00:00:00",
"diff": -0.008,
"dea": -0.009,
"macd": 0.001,
"ema12": 11.7858,
"ema26": 11.794
},
{
"t": "2025-06-12 00:00:00",
"diff": -0.016,
"dea": -0.01,
"macd": -0.011,
"ema12": 11.7696,
"ema26": 11.7856
},
{
"t": "2025-06-13 00:00:00",
"diff": -0.03,
"dea": -0.014,
"macd": -0.031,
"ema12": 11.7404,
"ema26": 11.7704
},
{
"t": "2025-06-16 00:00:00",
"diff": -0.024,
"dea": -0.016,
"macd": -0.015,
"ema12": 11.748,
"ema26": 11.7718
},
{
"t": "2025-06-17 00:00:00",
"diff": -0.021,
"dea": -0.017,
"macd": -0.008,
"ema12": 11.7499,
"ema26": 11.7709
},
{
"t": "2025-06-18 00:00:00",
"diff": -0.018,
"dea": -0.017,
"macd": -0.001,
"ema12": 11.753,
"ema26": 11.7709
},
{
"t": "2025-06-19 00:00:00",
"diff": -0.021,
"dea": -0.018,
"macd": -0.006,
"ema12": 11.7448,
"ema26": 11.7656
},
{
"t": "2025-06-20 00:00:00",
"diff": -0.012,
"dea": -0.017,
"macd": 0.01,
"ema12": 11.7595,
"ema26": 11.7711
},
{
"t": "2025-06-23 00:00:00",
"diff": 0.003,
"dea": -0.013,
"macd": 0.031,
"ema12": 11.7857,
"ema26": 11.7829
},
{
"t": "2025-06-24 00:00:00",
"diff": 0.014,
"dea": -0.007,
"macd": 0.043,
"ema12": 11.8079,
"ema26": 11.7938
},
{
"t": "2025-06-25 00:00:00",
"diff": 0.033,
"dea": 0.001,
"macd": 0.065,
"ema12": 11.8467,
"ema26": 11.8135
},
{
"t": "2025-06-26 00:00:00",
"diff": 0.076,
"dea": 0.016,
"macd": 0.12,
"ema12": 11.9333,
"ema26": 11.8577
},
{
"t": "2025-06-27 00:00:00",
"diff": 0.091,
"dea": 0.031,
"macd": 0.121,
"ema12": 11.9744,
"ema26": 11.8831
}
]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/history/macd/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_macd("000001.SH", "d")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/history/macd/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_macd("000001.SH", "d");
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/history/macd/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
Object data = api.indexMacd("000001.SH", "d");
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/history/macd/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
data, _ := api.IndexMacd("000001.SH", "d")
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/history/macd/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var data = await api.IndexMacdAsync("000001.SH", "d");
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
| ma3 | number | MA3,没有则为null |
| ma5 | number | MA5,没有则为null |
| ma10 | number | MA10,没有则为null |
| ma15 | number | MA15,没有则为null |
| ma20 | number | MA20,没有则为null |
| ma30 | number | MA30,没有则为null |
| ma60 | number | MA60,没有则为null |
| ma120 | number | MA120,没有则为null |
| ma200 | number | MA200,没有则为null |
| ma250 | number | MA250,没有则为null |
[
{
"t": "2025-07-21 15:00",
"ma3": 12.6,
"ma5": 12.598,
"ma10": 12.597,
"ma15": 12.5927,
"ma20": 12.591,
"ma30": 12.5903,
"ma60": 12.6127,
"ma120": 12.6279,
"ma200": 12.6154,
"ma250": 12.6638
},
{
"t": "2025-07-22 09:35",
"ma3": 12.6,
"ma5": 12.596,
"ma10": 12.595,
"ma15": 12.5933,
"ma20": 12.5915,
"ma30": 12.5897,
"ma60": 12.6115,
"ma120": 12.628,
"ma200": 12.6146,
"ma250": 12.6622
}
]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/history/ma/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_ma("000001.SH", "d")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/history/ma/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_ma("000001.SH", "d");
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/history/ma/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
Object data = api.indexMa("000001.SH", "d");
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/history/ma/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
data, _ := api.IndexMa("000001.SH", "d")
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/history/ma/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var data = await api.IndexMaAsync("000001.SH", "d");
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
| u | number | 上轨 |
| d | number | 下轨 |
| m | number | 中轨 |
[
{
"t": "2025-07-18 14:00",
"u": 13.11,
"d": 12.38,
"m": 12.75
},
{
"t": "2025-07-18 15:00",
"u": 13.09,
"d": 12.38,
"m": 12.74
}
]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/history/boll/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_boll("000001.SH", "d")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/history/boll/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_boll("000001.SH", "d");
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/history/boll/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
Object data = api.indexBoll("000001.SH", "d");
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/history/boll/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
data, _ := api.IndexBoll("000001.SH", "d")
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/history/boll/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var data = await api.IndexBollAsync("000001.SH", "d");
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
| k | number | K值 |
| d | number | D值 |
| j | number | J值 |
[
{
"t": "2025-07-18 14:00",
"k": 57.73,
"d": 43.01,
"j": 87.16
},
{
"t": "2025-07-18 15:00",
"k": 63.88,
"d": 49.97,
"j": 91.71
}
]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/hsindex/history/kdj/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", LICENCE)
resp = requests.get(url, timeout=15)
print(resp.status_code)
print(resp.json())
from mairui import Client
with Client(licence="您的licence") as api:
data = api.index_kdj("000001.SH", "n")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/hsindex/history/kdj/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数'.replace("YOUR-LICENCE", licence);
const resp = await fetch(url);
console.log(resp.status);
console.log(await resp.json());
import { Client } from "@mairuiapi/mairui";
const api = new Client({ licence: "您的licence" });
const data = await api.index_kdj("000001.SH", "n");
console.log(data);
api.close();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class MairuiDemo {
public static void main(String[] args) throws Exception {
String licence = "YOUR-LICENCE";
String url = "https://api.mairuiapi.com/hsindex/history/kdj/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".replace("YOUR-LICENCE", licence);
HttpRequest req = HttpRequest.newBuilder(URI.create(url)).GET().build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode());
System.out.println(resp.body());
}
}
import com.mairui.MairuiClient;
MairuiClient api = new MairuiClient("您的licence");
Object data = api.indexKdj("000001.SH", "n");
System.out.println(data);
api.close();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
licence := "YOUR-LICENCE"
url := strings.ReplaceAll('https://api.mairuiapi.com/hsindex/history/kdj/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数', "YOUR-LICENCE", licence)
resp, err := http.Get(url)
if err != nil { panic(err) }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(body))
}
package main
import (
"fmt"
"github.com/MaiRuiApi/mairui-go"
)
func main() {
api, _ := mairui.NewClient(mairui.ClientOptions{Licence: "您的licence"})
defer api.Close()
data, _ := api.IndexKdj("000001.SH", "n")
fmt.Println(data)
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var licence = "YOUR-LICENCE";
var url = "https://api.mairuiapi.com/hsindex/history/kdj/指数代码(如000001.SH)/分时级别(如d)/您的licence?st=开始时间&et=结束时间<=最新条数".Replace("YOUR-LICENCE", licence);
using var http = new HttpClient();
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
using MairuiSdk;
var api = new MairuiClient("您的licence");
var data = await api.IndexKdjAsync("000001.SH", "n");
Console.WriteLine(data);