所有接口均要求在 Header 中携带 ApiKey:
Bearer 方案。401。year 为可选参数,不传时默认使用当前最新年份。接口统一返回以下结构:
{
"message": "请在 Authorization Header 中提供 Bearer ApiKey。"
}
{
"message": "year 不在当前接口支持范围内,可用年份:2026, 2025。"
}
{
"message": "未找到该期刊。"
}
{
"keyword": "Nature",
"year": 2026
}
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d "{\"keyword\":\"Nature\",\"year\":2026}" "https://webapi.xr-scholar.com/api/journals/search"
import requests
url = "https://webapi.xr-scholar.com/api/journals/search"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"keyword": "Nature",
"year": 2026
}
resp = requests.post(url, headers=headers, json=payload, timeout=30)
print(resp.status_code)
print(resp.json())
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String body = "{\"keyword\":\"Nature\",\"year\":2026}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://webapi.xr-scholar.com/api/journals/search"))
.header("Authorization", "Bearer YOUR_API_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
const response = await fetch("https://webapi.xr-scholar.com/api/journals/search", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
keyword: "Nature",
year: 2026
})
});
const data = await response.json();
console.log(response.status, data);
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_API_KEY");
var payload = new
{
keyword = "Nature",
year = 2026
};
var content = new StringContent(
JsonSerializer.Serialize(payload),
Encoding.UTF8,
"application/json");
var response = await client.PostAsync("https://webapi.xr-scholar.com/api/journals/search", content);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(body);
[
{
"jid": "j-3f9k2mqa",
"title": "Nature",
"titleZh": null,
"abbrTitle": "Nature",
"issn": "0028-0836",
"eissn": "1476-4687",
"year": 2026,
"type": "review/data/protocol/report/",
"exactMatch": true
}
]
jid 获取单个期刊详情与其对应年份的 researcharea / jcrcategory 分区。jid 采用 j- 前缀与小写字母数字编码,服务端按大小写不敏感处理。curl -X GET -H "Authorization: Bearer YOUR_API_KEY" "https://webapi.xr-scholar.com/api/journals/j-3f9k2mqa?year=2026"
import requests
url = "https://webapi.xr-scholar.com/api/journals/j-3f9k2mqa"
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
params = {
"year": 2026
}
resp = requests.get(url, headers=headers, params=params, timeout=30)
print(resp.status_code)
print(resp.json())
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://webapi.xr-scholar.com/api/journals/j-3f9k2mqa?year=2026"))
.header("Authorization", "Bearer YOUR_API_KEY")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
const response = await fetch(
"https://webapi.xr-scholar.com/api/journals/j-3f9k2mqa?year=2026",
{
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY"
}
}
);
const data = await response.json();
console.log(response.status, data);
using System.Net.Http.Headers;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_API_KEY");
var url = $"https://webapi.xr-scholar.com/api/journals/j-3f9k2mqa?year=2026";
var response = await client.GetAsync(url);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(body);
{
"jid": "j-3f9k2mqa",
"year": 2026,
"title": "Nature",
"issn": "0028-0836",
"eissn": "1476-4687",
"type": "review/data/protocol/report/",
"researcharea": [
{
"code": "A001",
"name": "Multidisciplinary",
"nameZh": "综合性期刊",
"tier": 1,
"top": true
}
],
"jcrcategory": [
{
"code": "B002",
"name": "Multidisciplinary Sciences",
"nameZh": "多学科科学",
"tier": 1
}
]
}
jid 调用“期刊详情接口”。