所有接口均要求在 Header 中携带 ApiKey:
Bearer 方案。401。DataYear 表(OK=1)中的最大年份。year 为可选参数,不传时默认使用上述最新年份;可选范围同为 DataYear 已启用年份。jid,直接返回对应期刊记录(含该记录年份及 onHold/delist/underReview 等字段),不接受 year 参数。DataYear 最新年份数据,一次性全量返回(数量较少,不分页)。接口统一返回以下结构:
{
"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- 前缀与小写字母数字编码,服务端按大小写不敏感处理。delist 与 delist_reason 成对返回,delist=false 时 delist_reason 为空字符串 ""。curl -X GET -H "Authorization: Bearer YOUR_API_KEY" "https://webapi.xr-scholar.com/api/journals/j-3f9k2mqa"
import requests
url = "https://webapi.xr-scholar.com/api/journals/j-3f9k2mqa"
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
resp = requests.get(url, headers=headers, 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"))
.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",
{
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";
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/",
"WOS": true,
"SCIE": true,
"SSCI": false,
"AHCI": false,
"ESCI": false,
"SCOPUS": true,
"OAJ": false,
"onHold": false,
"delist": false,
"delist_reason": "",
"underReview": false,
"researcharea": [
{
"code": "A001",
"name": "Multidisciplinary",
"nameZh": "综合性期刊",
"tier": 1,
"top": true
}
],
"jcrcategory": [
{
"code": "B002",
"name": "Multidisciplinary Sciences",
"nameZh": "多学科科学",
"tier": 1
}
]
}
onHold=1 的期刊列表,字段与搜索接口一致(不含 exactMatch)。结果一次性全量返回,不分页。curl -X GET -H "Authorization: Bearer YOUR_API_KEY" "https://webapi.xr-scholar.com/api/journals/on-hold"
[
{
"jid": "j-3f9k2mqa",
"title": "Example Journal",
"titleZh": null,
"abbrTitle": "Example J",
"issn": "1234-5678",
"eissn": null,
"year": 2026,
"type": "review/"
}
]
delist=1 的期刊列表,字段与搜索接口一致(不含 exactMatch)。结果一次性全量返回,不分页。curl -X GET -H "Authorization: Bearer YOUR_API_KEY" "https://webapi.xr-scholar.com/api/journals/delist"
[
{
"jid": "j-3f9k2mqa",
"title": "Example Journal",
"titleZh": null,
"abbrTitle": "Example J",
"issn": "1234-5678",
"eissn": null,
"year": 2026,
"type": ""
}
]
underReview=1 的期刊列表,字段与搜索接口一致(不含 exactMatch)。结果一次性全量返回,不分页。curl -X GET -H "Authorization: Bearer YOUR_API_KEY" "https://webapi.xr-scholar.com/api/journals/under-review"
[
{
"jid": "j-3f9k2mqa",
"title": "Example Journal",
"titleZh": null,
"abbrTitle": "Example J",
"issn": "1234-5678",
"eissn": null,
"year": 2026,
"type": ""
}
]
jid 调用“期刊详情接口”。