
下列接口需有效 licence 调用;左侧切换分类,右侧「目录」可快速跳转接口;接口内通过选项卡查看字段说明、返回示例与 Playground。 麦蕊智数所有接口均支持 HTTP GET 直接调用,也可通过官方多语言 SDK(Python / JS / Java / Go / C#)调用,鉴权与限流规则完全一致,可按习惯任选。
本页无匹配接口,可尝试上方「全站搜索结果」或更换关键词。
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| dm | string | 股票代码,如:430017.BJ |
| mc | string | 股票名称,如:星昊医药 |
| jys | string | 交易所 |
[
{
"dm":"688411",
"mc":"N海博",
"jys":"sh"
},
{
"dm":"001395",
"mc":"N亚联",
"jys":"sz"
},
{
"dm":"300766",
"mc":"每日互动",
"jys":"sz"
},
{
"dm":"301248",
"mc":"杰创智能",
"jys":"sz"
},
{
"dm":"301299",
"mc":"卓创资讯",
"jys":"sz"
},
{
"dm":"300229",
"mc":"拓尔思",
"jys":"sz"
},
{
"dm":"300996",
"mc":"普联软件",
"jys":"sz"
},
{
"dm":"300697",
"mc":"电工合金",
"jys":"sz"
}
]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/list/all/您的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.bj_stock_list()
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/list/all/您的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.bj_stock_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/bj/list/all/您的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.bjStockList();
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/bj/list/all/您的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.BjStockList()
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/bj/list/all/您的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.BjStockListAsync();
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| dm | string | 指数代码,如:899050.BJ |
| mc | string | 指数名称,如:北证50 |
| jys | string | 交易所 |
[]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/list/index/您的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.bj_index_list()
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/list/index/您的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.bj_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/bj/list/index/您的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.bjIndexList();
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/bj/list/index/您的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.BjIndexList()
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/bj/list/index/您的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.BjIndexListAsync();
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 | 更新时间 |
| pe | number | 市盈率 |
| tr | number | 换手率 |
| pb_ratio | number | 市净率 |
| tv | number | 成交量 |
{"o":11.69,"fm":0.17,"h":11.71,"hs":0.5,"lb":0.7,"l":11.55,"lt":225881388026.0,"pe":4.26,"pc":-0.17,"p":11.64,"sz":225884887825.0,"cje":1131033823.93,"ud":-0.02,"v":973969,"yc":11.66,"zf":1.37,"zs":0.17,"sjl":0.54,"zdf60":0.0,"zdfnc":-0.51,"t":"2025-02-2115:29:05"}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/stock/real/time/股票代码(如920000)/您的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.bj_stock_real_time("920000")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/stock/real/time/股票代码(如920000)/您的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.bj_stock_real_time("920000");
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/bj/stock/real/time/股票代码(如920000)/您的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.bjStockRealTime("920000");
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/bj/stock/real/time/股票代码(如920000)/您的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.BjStockRealTime("920000")
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/bj/stock/real/time/股票代码(如920000)/您的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.BjStockRealTimeAsync("920000");
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| ps | number | 委卖价 |
| pb | number | 委买价 |
| vs | number | 委卖量 |
| vb | number | 委买量 |
| t | string | 更新时间 |
{"t":"2025-02-2115:00:19","vc":-111,"vb":-0.17,"pb1":11.63,"vb1":424,"pb2":11.62,"vb2":1291,"pb3":11.61,"vb3":12014,"pb4":11.6,"vb4":11339,"pb5":11.59,"vb5":7333,"ps1":11.64,"vs1":7330,"ps2":11.65,"vs2":7698,"ps3":11.66,"vs3":7584,"ps4":11.67,"vs4":5842,"ps5":11.68,"vs5":4058}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/stock/real/five/股票代码(如920000)/您的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.bj_stock_real_five("920000")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/stock/real/five/股票代码(如920000)/您的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.bj_stock_real_five("920000");
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/bj/stock/real/five/股票代码(如920000)/您的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.bjStockRealFive("920000");
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/bj/stock/real/five/股票代码(如920000)/您的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.BjStockRealFive("920000")
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/bj/stock/real/five/股票代码(如920000)/您的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.BjStockRealFiveAsync("920000");
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 | 更新时间 |
| pe | number | 市盈率 |
| tr | number | 换手率 |
| pb_ratio | number | 市净率 |
| tv | number | 成交量 |
[]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/index/real/time/指数代码(如899050)/您的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.bj_index_real_time("899050")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/index/real/time/指数代码(如899050)/您的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.bj_index_real_time("899050");
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/bj/index/real/time/指数代码(如899050)/您的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.bjIndexRealTime("899050");
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/bj/index/real/time/指数代码(如899050)/您的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.BjIndexRealTime("899050")
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/bj/index/real/time/指数代码(如899050)/您的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.BjIndexRealTimeAsync("899050");
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间 |
| o | float | 开盘价 |
| h | float | 最高价 |
| l | float | 最低价 |
| c | float | 收盘价 |
| v | float | 成交量 |
| a | float | 成交额 |
| pc | float | 前收盘价 |
| sf | int | 停牌 1停牌,0 不停牌 |
[
{
"t": "2025-01-02 00:00:00",
"o": 18.3,
"h": 18.5,
"l": 17.38,
"c": 17.9,
"v": 9939,
"a": 17802810,
"pc": 17.94,
"sf": 0
},
{
"t": "2025-01-03 00:00:00",
"o": 17.93,
"h": 18.88,
"l": 17.55,
"c": 18.48,
"v": 20266,
"a": 37145358,
"pc": 17.9,
"sf": 0
},
{
"t": "2025-01-06 00:00:00",
"o": 18.15,
"h": 18.65,
"l": 17.9,
"c": 18.18,
"v": 12684,
"a": 23196465,
"pc": 18.48,
"sf": 0
},]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/history/股票代码.市场(如920000.BJ)/分时级别(如d)/除权方式/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)<=最新条数(如100)'.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.bj_history("920000.BJ", "d", "n", st="20250101", et="20250430", lt=100)
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/history/股票代码.市场(如920000.BJ)/分时级别(如d)/除权方式/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)<=最新条数(如100)'.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.bj_history("920000.BJ", "d", "n", { st: "20250101", et: "20250430", lt: 100 });
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/bj/history/股票代码.市场(如920000.BJ)/分时级别(如d)/除权方式/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)<=最新条数(如100)".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";
q.lt = 100;
Object data = api.bjHistory("920000.BJ", "d", "n", 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/bj/history/股票代码.市场(如920000.BJ)/分时级别(如d)/除权方式/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)<=最新条数(如100)', "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"
lt := 100
data, _ := api.BjHistory("920000.BJ", "d", "n", mairui.TimeRangeQuery{St: &st, Et: &et, Lt: <})
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/bj/history/股票代码.市场(如920000.BJ)/分时级别(如d)/除权方式/您的licence?st=开始时间(如20240601)&et=结束时间(如20250430)<=最新条数(如100)".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", Lt = 100 };
var data = await api.BjHistoryAsync("920000.BJ", "d", "n", q);
Console.WriteLine(data);
| 参数名称 | 说明 |
|---|---|
| 股票代码 | 如 920000.BJ |
| 分时级别 | 固定为 1(1 分钟),需Quant Pro 增强包 |
| 除权方式 | 分钟级请使用 n |
| 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/bj/pro/latest/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/latest/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/latest/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/latest/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/latest/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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 完全一致。
| 参数名称 | 说明 |
|---|---|
| 股票代码 | 如 920000.BJ |
| 分时级别 | 固定为 1(1 分钟),需Quant Pro 增强包 |
| 除权方式 | 分钟级请使用 n |
| 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/bj/pro/history/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/history/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/history/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/history/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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/bj/pro/history/股票代码.市场(如920000.BJ)/1/除权方式(如n)/您的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 完全一致。
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| jzrq | string | 截止日期 |
| plrq | string | 披露日期 |
| nbysk | float | 内部应收款 |
| gdzcql | float | 固定资产清理 |
| yffbzk | float | 应付分保账款 |
| jsbfj | float | 结算备付金 |
| ysbf | float | 应收保费 |
| ysfbzk | float | 应收分保账款 |
| ysfbhtzbj | float | 应收分保合同准备金 |
| ysgl | float | 应收股利 |
| ysckts | float | 应收出口退税 |
| ysbtk | float | 应收补贴款 |
| ysbzj | float | 应收保证金 |
| dfy | float | 待摊费用 |
| dclldzcsy | float | 待处理流动资产损益 |
| ynndqdfldzc | float | 一年内到期的非流动资产 |
| cqysk | float | 长期应收款 |
| qtcqtz | float | 其他长期投资 |
| gdzcyz | float | 固定资产原值 |
| gdzcjz | float | 固定资产净值 |
| gdzcjzzbj | float | 固定资产减值准备 |
| scxswzc | float | 生产性生物资产 |
| gyxswzc | float | 公益性生物资产 |
| yqzc | float | 油气资产 |
| kfzc | float | 开发支出 |
| gqfzltq | float | 股权分置流通权 |
| qtfldzc | float | 其他非流动资产 |
| yfsxfyj | float | 应付手续费及佣金 |
| qtjyk | float | 其他应交款 |
| yfbzj | float | 应付保证金 |
| nbyfk | float | 内部应付款 |
| ytfy | float | 预提费用 |
| bxhtzbj | float | 保险合同准备金 |
| dlmmzqk | float | 代理买卖证券款 |
| dlcxzqk | float | 代理承销证券款 |
| gjpjjs | float | 国际票证结算 |
| gnpjjs | float | 国内票证结算 |
| dysr | float | 递延收益 |
| yfdqzq | float | 应付短期债券 |
| cqdysr | float | 长期递延收益 |
| wqddtzss | float | 未确定的投资损失 |
| nfpxjgl | float | 拟分配现金股利 |
| yjfz | float | 预计负债 |
| xsckjtycf | float | 吸收存款及同业存放 |
| yjldfz | float | 预计流动负债 |
| j_kcg | float | 减:库存股 |
| hbzj | float | 货币资金 |
| cczj | float | 拆出资金 |
| jyxjrzc | float | 交易性金融资产 |
| ysjrzc | float | 衍生金融资产 |
| yspj | float | 应收票据 |
| yszk | float | 应收账款 |
| yfkx | float | 预付款项 |
| yslx | float | 应收利息 |
| qtysk | float | 其他应收款 |
| mrfsjrzck | float | 买入返售金融资产款 |
| gyjzjzbdqjsrdq | float | 以公允价值计量且其变动计入当期损益的金融资产 |
| ch | float | 存货 |
| qtldzc | float | 其他流动资产 |
| ldzchj | float | 流动资产合计 |
| ffdkjjd | float | 发放贷款及垫款 |
| kkgsjrzc | float | 可供出售金融资产 |
| cyzdqtz | float | 持有至到期投资 |
| cqgqtz | float | 长期股权投资 |
| tzxfd | float | 投资性房地产 |
| ljzj | float | 累计折旧 |
| gdzc | float | 固定资产 |
| zjgc | float | 在建工程 |
| gcwz | float | 工程物资 |
| cqfz | float | 长期负债 |
| wxzc | float | 无形资产 |
| sy | float | 商誉 |
| cqdtfy | float | 长期待摊费用 |
| dysdszc | float | 递延所得税资产 |
| fldzchj | float | 非流动资产合计 |
| zczj | float | 资产总计 |
| dqjk | float | 短期借款 |
| xzyhyhk | float | 向中央银行借款 |
| crzj | float | 拆入资金 |
| jyxjrfz | float | 交易性金融负债 |
| ysjrfz | float | 衍生金融负债 |
| yfpj | float | 应付票据 |
| yfzk | float | 应付账款 |
| ysk | float | 预收账款 |
| mchgjrzck | float | 卖出回购金融资产款 |
| yfgzxc | float | 应付职工薪酬 |
| yjsf | float | 应交税费 |
| yflx | float | 应付利息 |
| yfgl | float | 应付股利 |
| qtfzk | float | 其他应付款 |
| ynndqdfldfz | float | 一年内到期的非流动负债 |
| qtldfz | float | 其他流动负债 |
| ldfzhj | float | 流动负债合计 |
| cqjk | float | 长期借款 |
| yfzq | float | 应付债券 |
| cqyfk | float | 长期应付款 |
| zxyfk | float | 专项应付款 |
| dysdsfz | float | 递延所得税负债 |
| qtfldfz | float | 其他非流动负债 |
| fldfzhj | float | 非流动负债合计 |
| fzhj | float | 负债合计 |
| sszb | float | 实收资本(或股本) |
| zbgj | float | 资本公积 |
| zxzb | float | 专项储备 |
| ylgj | float | 盈余公积 |
| ybfxzb | float | 一般风险准备 |
| wfplr | float | 未分配利润 |
| wbbzbzhc | float | 外币报表折算差额 |
| gsmgdqsyhj | float | 归属于母公司股东权益合计 |
| ssgdqy | float | 少数股东权益 |
| syzqyhj | float | 所有者权益合计 |
| fzhgdqyzj | float | 负债和股东权益总计 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/balance/股票代码(如920547.SZ)/您的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.bj_balance("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/balance/股票代码(如920547.SZ)/您的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.bj_balance("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/balance/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjBalance("920547.BJ", 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/bj/financial/balance/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjBalance("920547.BJ", 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/bj/financial/balance/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjBalanceAsync("920547.BJ", q);
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| jzrq | string | 截止日期 |
| plrq | string | 披露日期 |
| yysr | float | 营业收入 |
| yzbf | float | 已赚保费 |
| fdczssr | float | 房地产销售收入 |
| yyzcb | float | 营业总成本 |
| fdczscb | float | 房地产销售成本 |
| yffy | float | 研发费用 |
| tbj | float | 退保金 |
| pczjje | float | 赔付支出净额 |
| tqbxhtzbjje | float | 提取保险合同准备金净额 |
| bdhlzc | float | 保单红利支出 |
| fbfy | float | 分保费用 |
| gyjzbdsy | float | 公允价值变动收益 |
| qhsy | float | 期货损益 |
| tgsy | float | 托管收益 |
| btsr | float | 补贴收入 |
| qtywlr | float | 其他业务利润 |
| bhbfzhbqsljlr | float | 被合并方在合并前实现净利润 |
| lxsr | float | 利息收入 |
| sxfjyjsr | float | 手续费及佣金收入 |
| sxfjyjzc | float | 手续费及佣金支出 |
| qtywcb | float | 其他业务成本 |
| hdsy | float | 汇兑收益 |
| fldzcczsy | float | 非流动资产处置收益 |
| sdsfy | float | 所得税费用 |
| wqrtzss | float | 未确认投资损失 |
| gsmgsyzzdjlr | float | 归属于母公司所有者的净利润 |
| lxzc | float | 利息支出 |
| qtywsr | float | 其他业务收入 |
| yyzsr | float | 营业总收入 |
| yycb | float | 营业成本 |
| yysjjfj | float | 营业税金及附加 |
| xsfy | float | 销售费用 |
| glfy | float | 管理费用 |
| cwfy | float | 财务费用 |
| zcjzss | float | 资产减值损失 |
| tzsy | float | 投资收益 |
| lyqyhhhqydtzsy | float | 联营企业和合营企业的投资收益 |
| yylr | float | 营业利润 |
| ywsr | float | 营业外收入 |
| ywzc | float | 营业外支出 |
| lrze | float | 利润总额 |
| jlr | float | 净利润 |
| jlrhfcjcx | float | 净利润(扣除非经常性损益后) |
| ssgdsy | float | 少数股东损益 |
| jbmgsy | float | 基本每股收益 |
| xsmgsy | float | 稀释每股收益 |
| zhsyz | float | 综合收益总额 |
| gsssgdzhsyz | float | 归属于少数股东的综合收益总额 |
| qtsy | float | 其他收益 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/income/股票代码(如920547.SZ)/您的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.bj_income("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/income/股票代码(如920547.SZ)/您的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.bj_income("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/income/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjIncome("920547.BJ", 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/bj/financial/income/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjIncome("920547.BJ", 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/bj/financial/income/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjIncomeAsync("920547.BJ", q);
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| jzrq | string | 截止日期 |
| plrq | string | 披露日期 |
| sdydbxbfqdxj | float | 收到原保险合同保费取得的现金 |
| sdzbxywxjjje | float | 收到再保险业务现金净额 |
| bhcjjtkkjzje | float | 保户储金及投资款净增加额 |
| czjyxjrzcjzje | float | 处置交易性金融资产净增加额 |
| sqlxsxfjyjdxj | float | 收取利息、手续费及佣金的现金 |
| hgywzjjzje | float | 回购业务资金净增加额 |
| zfybxhtpfkxdj | float | 支付原保险合同赔付款项的现金 |
| zfbdhldxj | float | 支付保单红利的现金 |
| czfzgsjqtsddxj | float | 处置子公司及其他收到的现金 |
| jszyhdqckssddxj | float | 减少质押和定期存款所收到的现金 |
| tzszfdxj | float | 投资所支付的现金 |
| zydkjzje | float | 质押贷款净增加额 |
| qdfzgsjqtywdwzfdxjje | float | 取得子公司及其他营业单位支付的现金净额 |
| zjzyhdqckszfdxj | float | 增加质押和定期存款所支付的现金 |
| qzfzgsxrxj | float | 其中子公司吸收现金 |
| qz:fzgszfgsssgdglr | float | 其中:子公司支付给少数股东的股利、利润 |
| ssgdsy | float | 少数股东损益 |
| wqrdtzss | float | 未确认的投资损失 |
| dysyzj(j:js) | float | 递延收益增加(减:减少) |
| yjfz | float | 预计负债 |
| jxyyfxmdzj | float | 经营性应付项目的增加 |
| ywgwswjskdjs(j:zj) | float | 已完工尚未结算款的减少(减:增加) |
| yjswgwgdjz(j:js) | float | 已结算尚未完工款的增加(减:减少) |
| xssptglwsddxj | float | 销售商品、提供劳务收到的现金 |
| khckhtyckxkjzje | float | 客户存款和同业存放款项净增加额 |
| xzyhyhkjzje | float | 向中央银行借款净增加额(万元) |
| xtjrgjqjcrzjjzje | float | 向其他金融机构拆入资金净增加额 |
| sddsfyfh | float | 收到的税费与返还 |
| tzzfdxj | float | 投资支付的现金 |
| sdqtyjyghdxj | float | 收到的其他与经营活动有关的现金 |
| jyhdxjlrxj | float | 经营活动现金流入小计 |
| gmspjslwzfdxj | float | 购买商品、接受劳务支付的现金 |
| khdkjdknzje | float | 客户贷款及垫款净增加额 |
| cfzyxhytckxkjzje | float | 存放中央银行和同业款项净增加额 |
| zflxsxfjyjdxj | float | 支付利息、手续费及佣金的现金 |
| zfgzyjwzgzfdxj | float | 支付给职工以及为职工支付的现金 |
| zfdgxsf | float | 支付的各项税费 |
| zfqtyjyghdxj | float | 支付其他与经营活动有关的现金 |
| jyhdxjlcxj | float | 经营活动现金流出小计 |
| jyhdcsdxjlje | float | 经营活动产生的现金流量净额 |
| shtzssddxj | float | 收回投资所收到的现金 |
| qdtzsysddxj | float | 取得投资收益所收到的现金 |
| czgdzcwxzhqtqctzssddxj | float | 处置固定资产、无形资产和其他长期投资收到的现金 |
| sdqtytzghdxj | float | 收到的其他与投资活动有关的现金 |
| tzhdxjlrxj | float | 投资活动现金流入小计 |
| gjgdzcwxzhqtqctzzfdxj | float | 购建固定资产、无形资产和其他长期投资支付的现金 |
| tzhdxjlcxj | float | 投资活动现金流出小计 |
| tzhdcsdxjlxj | float | 投资活动产生的现金流量净额 |
| xstzsdj | float | 吸收投资收到的现金 |
| qdjkjddxj | float | 取得借款收到的现金 |
| fxzjsddxj | float | 发行债券收到的现金 |
| sdqtczghdxj | float | 收到其他与筹资活动有关的现金 |
| czhdxjlrxj | float | 筹资活动现金流入小计 |
| chzwzfxj | float | 偿还债务支付现金 |
| fpglrlhcllxzfdxj | float | 分配股利、利润或偿付利息支付的现金 |
| zfqtczdxj | float | 支付其他与筹资的现金 |
| czhdxjlcxj | float | 筹资活动现金流出小计 |
| czhdcsdxjlxj | float | 筹资活动产生的现金流量净额 |
| hlbddxjdxy | float | 汇率变动对现金的影响 |
| xjxjdhwjzje | float | 现金及现金等价物净增加额 |
| qcxjjxjdhwye | float | 期初现金及现金等价物余额 |
| qmxjjxjdhwye | float | 期末现金及现金等价物余额 |
| jlr | float | 净利润 |
| zcjzzb | float | 资产减值准备 |
| gdzczjyqzcshscxwzczj | float | 固定资产折旧、油气资产折耗、生产性物资折旧 |
| wxzctx | float | 无形资产摊销 |
| cqdtfytx | float | 长期待摊费用摊销 |
| dtfydjs | float | 待摊费用的减少 |
| ytfydzj | float | 预提费用的增加 |
| czgdzcwxzhqtqctzss | float | 处置固定资产、无形资产和其他长期资产的损失 |
| gdzcgbss | float | 固定资产报废损失 |
| gyjzbds | float | 公允价值变动损失 |
| cwfy | float | 财务费用 |
| tzss | float | 投资损失 |
| dysdszcjs | float | 递延所得税资产减少 |
| dysdsfzzj | float | 递延所得税负债增加 |
| chdjs | float | 存货的减少 |
| jxyysxmdjs | float | 经营性应收项目的减少 |
| qt | float | 其他 |
| jyhdcsdxjlxj | float | 经营活动产生现金流量净额 |
| zwzwzb | float | 债务转为资本 |
| ynndqdkzhgzq | float | 一年内到期的可转换公司债券 |
| rzrgdzc | float | 融资租入固定资产 |
| xjdqmye | float | 现金的期末余额 |
| xjdqcye | float | 现金的期初余额 |
| xjdhwdqmye | float | 现金等价物的期末余额 |
| xjdhwdqcye | float | 现金等价物的期初余额 |
| xjxjdhwdjzje | float | 现金及现金等价物的净增加额 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/cashflow/股票代码(如920547.SZ)/您的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.bj_cashflow("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/cashflow/股票代码(如920547.SZ)/您的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.bj_cashflow("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/cashflow/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjCashflow("920547.BJ", 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/bj/financial/cashflow/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjCashflow("920547.BJ", 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/bj/financial/cashflow/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjCashflowAsync("920547.BJ", q);
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| jzrq | string | 截止日期 |
| plrq | string | 披露日期 |
| mgjyhdxjl | float | 每股经营活动现金流量 |
| mgjzc | float | 每股净资产 |
| jbmgsy | float | 基本每股收益 |
| xsmgsy | float | 稀释每股收益 |
| mgwfplr | float | 每股未分配利润 |
| mgzbgjj | float | 每股资本公积金 |
| kfmgsy | float | 扣非每股收益 |
| jzcsyl | float | 净资产收益率 |
| xsmlv | float | 销售毛利率 |
| zyyrsrzz | float | 主营收入同比增长 |
| jlrzz | float | 净利润同比增长 |
| gsmgsyzzdjlrzz | float | 归属于母公司所有者的净利润同比增长 |
| kfjlrzz | float | 扣非净利润同比增长 |
| yyzsrgdhbzz | float | 营业总收入滚动环比增长 |
| sljlrjqhbzz | float | 归属净利润滚动环比增长 |
| kfjlrgdhbzz | float | 扣非净利润滚动环比增长 |
| jqjzcsyl | float | 加权净资产收益率 |
| tbjzcsyl | float | 摊薄净资产收益率 |
| tbzzcsyl | float | 摊薄总资产收益率 |
| mlv | float | 毛利率 |
| jlv | float | 净利率 |
| sjslv | float | 实际税率 |
| yskyysr | float | 预收款营业收入 |
| xsxjlyysr | float | 销售现金流营业收入 |
| zcfzl | float | 资产负债比率 |
| chzzl | float | 存货周转率 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/pershareindex/股票代码(如920547.SZ)/您的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.bj_pershareindex("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/pershareindex/股票代码(如920547.SZ)/您的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.bj_pershareindex("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/pershareindex/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjPershareindex("920547.BJ", 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/bj/financial/pershareindex/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjPershareindex("920547.BJ", 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/bj/financial/pershareindex/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjPershareindexAsync("920547.BJ", q);
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| zgb | float | 总股本 |
| ysltag | float | 已上市流通A股 |
| xsltgf | float | 限售流通股份 |
| bdrq | string | 变动日期 |
| plrq | string | 公告日 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/capital/股票代码(如920547.SZ)/您的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.bj_capital("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/capital/股票代码(如920547.SZ)/您的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.bj_capital("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/capital/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjCapital("920547.BJ", 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/bj/financial/capital/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjCapital("920547.BJ", 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/bj/financial/capital/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjCapitalAsync("920547.BJ", q);
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| plrq | string | 公告日期 |
| jzrq | string | 截止日期 |
| gdmc | string | 股东名称 |
| gdlx | string | 股东类型 |
| cgsl | string | 持股数量 |
| bdyy | string | 变动原因 |
| cgbl | string | 持股比例 |
| gfxz | string | 股份性质 |
| cgpm | string | 持股排名 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/topholder/股票代码(如920547.SZ)/您的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.bj_top_holders("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/topholder/股票代码(如920547.SZ)/您的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.bj_top_holders("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/topholder/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjTopHolders("920547.BJ", 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/bj/financial/topholder/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjTopHolders("920547.BJ", 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/bj/financial/topholder/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjTopHoldersAsync("920547.BJ", q);
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| ggrq | string | 公告日期 |
| jzrq | string | 截止日期 |
| gdmc | string | 股东名称 |
| gdlx | string | 股东类型 |
| cgsl | string | 持股数量 |
| bdyy | string | 变动原因 |
| cgbl | string | 持股比例 |
| gfxz | string | 股份性质 |
| cgpm | string | 持股排名 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/flowholder/股票代码(如920547.SZ)/您的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.bj_flow_holders("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/flowholder/股票代码(如920547.SZ)/您的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.bj_flow_holders("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/flowholder/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjFlowHolders("920547.BJ", 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/bj/financial/flowholder/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjFlowHolders("920547.BJ", 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/bj/financial/flowholder/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjFlowHoldersAsync("920547.BJ", q);
Console.WriteLine(data);
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| plrq | string | 公告日期 |
| jzrq | string | 截止日期 |
| gdzs | string | 股东总数 |
| agdhs | string | A股东户数 |
| bgdhs | string | B股东户数 |
| hgdhs | string | H股东户数 |
| yltgdhs | string | 已流通股东户数 |
| wltgdhs | string | 未流通股东户数 |
"[
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/financial/hm/股票代码(如920547.SZ)/您的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.bj_shareholder_count("920547.BJ", st="20240101", et="20260630")
print(data)
const licence = "YOUR-LICENCE";
const url = 'https://api.mairuiapi.com/bj/financial/hm/股票代码(如920547.SZ)/您的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.bj_shareholder_count("920547.BJ", { st: "20240101", et: "20260630" });
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/bj/financial/hm/股票代码(如920547.SZ)/您的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");
MairuiClient.TimeRangeQuery q = new MairuiClient.TimeRangeQuery();
q.st = "20240101";
q.et = "20260630";
Object data = api.bjShareholderCount("920547.BJ", 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/bj/financial/hm/股票代码(如920547.SZ)/您的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()
st := "20240101"
et := "20260630"
data, _ := api.BjShareholderCount("920547.BJ", 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/bj/financial/hm/股票代码(如920547.SZ)/您的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 q = new TimeRangeQuery { St = "20240101", Et = "20260630" };
var data = await api.BjShareholderCountAsync("920547.BJ", q);
Console.WriteLine(data);
| 参数名称 | 说明 |
|---|---|
| 股票代码 | 如 920000.BJ(也可只传 920000) |
| 分时级别 | 5 / 15 / 30 / 60 / d / w / m / y |
| 除权类型 | n不复权 / f前复权 / b后复权 / fr等比前复权 / br等比后复权;分钟级请用 n |
| licence | 您的证书 |
| st | 开始时间,可选,如 20240101 或 20240101100000 |
| et | 结束时间,可选 |
| lt | 返回最近 N 条,可选 |
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| 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":"2026-08-05","diff":0.544,"dea":0.262,"macd":0.565,"ema12":13.6648,"ema26":13.1209},{"t":"2026-08-06","diff":0.58,"dea":0.325,"macd":0.509,"ema12":13.8118,"ema26":13.232},{"t":"2026-08-07","diff":0.577,"dea":0.376,"macd":0.403,"ema12":13.89,"ema26":13.3126}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/history/macd/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/macd/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/macd/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/macd/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/macd/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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 完全一致。
| 参数名称 | 说明 |
|---|---|
| 股票代码 | 如 920000.BJ(也可只传 920000) |
| 分时级别 | 5 / 15 / 30 / 60 / d / w / m / y |
| 除权类型 | n不复权 / f前复权 / b后复权 / fr等比前复权 / br等比后复权;分钟级请用 n |
| licence | 您的证书 |
| st | 开始时间,可选,如 20240101 或 20240101100000 |
| et | 结束时间,可选 |
| lt | 返回最近 N 条,可选 |
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| 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":"2026-08-06","ma3":14.49,"ma5":14.452,"ma10":14.088,"ma15":13.37,"ma20":12.9235,"ma30":12.4697,"ma60":13.2398,"ma120":15.0528,"ma200":17.0104,"ma250":18.0051},{"t":"2026-08-07","ma3":14.4667,"ma5":14.396,"ma10":14.102,"ma15":13.5347,"ma20":13.057,"ma30":12.5603,"ma60":13.216,"ma120":15.0166,"ma200":16.9798,"ma250":17.9789}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/history/ma/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/ma/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/ma/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/ma/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/ma/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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 完全一致。
| 参数名称 | 说明 |
|---|---|
| 股票代码 | 如 920000.BJ(也可只传 920000) |
| 分时级别 | 5 / 15 / 30 / 60 / d / w / m / y |
| 除权类型 | n不复权 / f前复权 / b后复权 / fr等比前复权 / br等比后复权;分钟级请用 n |
| licence | 您的证书 |
| st | 开始时间,可选,如 20240101 或 20240101100000 |
| et | 结束时间,可选 |
| lt | 返回最近 N 条,可选 |
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
| u | number | 上轨 |
| d | number | 下轨 |
| m | number | 中轨 |
[{"t":"2026-08-06","u":15.58,"d":10.27,"m":12.92},{"t":"2026-08-07","u":15.71,"d":10.4,"m":13.06}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/history/boll/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/boll/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/boll/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/boll/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/boll/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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 完全一致。
| 参数名称 | 说明 |
|---|---|
| 股票代码 | 如 920000.BJ(也可只传 920000) |
| 分时级别 | 5 / 15 / 30 / 60 / d / w / m / y |
| 除权类型 | n不复权 / f前复权 / b后复权 / fr等比前复权 / br等比后复权;分钟级请用 n |
| licence | 您的证书 |
| st | 开始时间,可选,如 20240101 或 20240101100000 |
| et | 结束时间,可选 |
| lt | 返回最近 N 条,可选 |
| 字段名称 | 数据类型 | 字段说明 |
|---|---|---|
| t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
| k | number | K值 |
| d | number | D值 |
| j | number | J值 |
[{"t":"2026-08-06","k":66.63,"d":67.25,"j":65.39},{"t":"2026-08-07","k":63.81,"d":66.1,"j":59.22}]
选择语言后,上方为 GET 请求示例,下方为官方 SDK 示例(鉴权与限流规则一致)
# pip install mairui 或使用 requests
import requests
LICENCE = "YOUR-LICENCE" # 替换为您的证书
url = 'https://api.mairuiapi.com/bj/history/kdj/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/kdj/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/kdj/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/kdj/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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/bj/history/kdj/股票代码(如920000.BJ)/分时级别(如d)/除权类型(如n)/您的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 完全一致。