Literfy Open API v1 接入说明

Literfy
2026/03/11
Literfy Open API v1 提供面向外部集成的认证接口,当前支持余额查询,以及跨多个学术数据库的论文检索,适合自动化检索、综述生成和研究工作流接入。
获取 API Key
- 登录 Literfy,并进入个人主页 https://literfy.ai/settings/profile
- 点击左侧的 API Keys
- 点击 Add 创建新的密钥
- 输入密钥名称,例如
我的科研应用 - 立即复制生成的密钥
认证方式
所有请求都需要在 Authorization 请求头中携带 API Key:
Authorization: Bearer <your_api_key>速率限制
| 项目 | 数值 |
|---|---|
| 请求频率 | 每个 API Key 每秒 1 次 |
积分消耗
| 接口 | 消耗积分 |
|---|---|
GET /api/open/v1/balance | 0 |
GET /api/open/v1/search | 每个选定数据源 2 积分 |
接口
余额查询
GET /api/open/v1/balance
查询当前 API Key 所属账户的剩余积分。
响应格式
{
"remainingCredits": 128
}示例
cURL
curl "https://literfy.ai/api/open/v1/balance" \
-H "Authorization: Bearer sk_your_api_key"JavaScript
const response = await fetch('https://literfy.ai/api/open/v1/balance', {
headers: {
Authorization: 'Bearer sk_your_api_key',
},
});
const data = await response.json();
console.log(data.remainingCredits);Python
import requests
response = requests.get(
"https://literfy.ai/api/open/v1/balance",
headers={"Authorization": "Bearer sk_your_api_key"},
)
data = response.json()
print(data["remainingCredits"])论文搜索
GET /api/open/v1/search
跨多个学术数据库检索论文。
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
topic | string | 是 | - | 检索关键词,最多 300 个字符 |
google-scholar | number | 否 | - | 从 Google Scholar 获取的论文数量,范围 1 到 60 |
pubmed | number | 否 | - | 从 PubMed 获取的论文数量,范围 1 到 100 |
wanfang | number | 否 | - | 从 Wanfang 获取的论文数量,范围 1 到 100 |
说明:
- 至少指定一个数据源参数。
- 每个数据源单次请求最多返回 100 篇论文。
- 如果
topic超过 300 个字符,接口会返回INVALID_PARAMS。 - 查询多个数据源时,Literfy 会按标题自动去重。
响应格式
接口返回 Server-Sent Events(SSE)流。
事件类型
paper:单篇论文结果
{
"paperId": "abc123",
"source": "google-scholar | pubmed | wanfang",
"title": "论文标题",
"abstract": "论文摘要...",
"authors": [{ "name": "作者姓名" }],
"year": 2024,
"venue": "会议或期刊",
"url": "https://...",
"doi": "10.1234/...",
"citationCount": 100,
"influentialCitationCount": 10,
"volume": "12",
"issue": "3",
"pages": "123-456",
"isOpenAccess": true,
"pdfUrl": "https://...",
"resourceType": "Periodical",
"bibtex": "@article{...}",
"venueName": "期刊或会议全称",
"venueType": "conference | journal",
"venueCCFRank": "A/B/C",
"venueQuartile": "Q1/Q2/Q3/Q4",
"venueIf": 8.6,
"venueCASZone": 1,
"venueCnTags": ["JCR Q1", "CAS Zone 1"]
}不同数据源返回的字段会有差异,并非每篇论文都包含全部字段。
done:检索完成
{
"total": 50
}error:请求失败
{
"error": "错误信息"
}检索示例
cURL
curl -N "https://literfy.ai/api/open/v1/search?topic=large%20language%20models&google-scholar=50&pubmed=30&wanfang=20" \
-H "Authorization: Bearer sk_your_api_key"JavaScript
const response = await fetch(
'https://literfy.ai/api/open/v1/search?topic=transformer+architecture&google-scholar=50&pubmed=30',
{
headers: {
Authorization: 'Bearer sk_your_api_key',
},
}
);
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const text = decoder.decode(value);
const lines = text.split('\n');
for (const line of lines) {
if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log(data);
}
}
}Python
import requests
url = "https://literfy.ai/api/open/v1/search"
params = {
"topic": "deep learning",
"google-scholar": 50,
"pubmed": 30,
"wanfang": 20
}
headers = {
"Authorization": "Bearer sk_your_api_key"
}
response = requests.get(url, params=params, headers=headers, stream=True)
for line in response.iter_lines():
if line:
line = line.decode("utf-8")
if line.startswith("data: "):
import json
data = json.loads(line[6:])
print(data)错误码
| 错误码 | HTTP 状态码 | 说明 |
|---|---|---|
MISSING_API_KEY | 401 | 缺少 Authorization 请求头 |
INVALID_API_KEY_FORMAT | 401 | Authorization 格式错误 |
INVALID_API_KEY | 401 | API Key 无效或已停用 |
RATE_LIMIT_EXCEEDED | 429 | 请求过于频繁 |
INSUFFICIENT_CREDITS | 402 | 检索所需积分不足 |
INVALID_PARAMS | 400 | 缺少必填参数或参数不合法 |
可用数据源
| 数据源 | 标识 | 覆盖领域 | 典型字段 |
|---|---|---|---|
| Google Scholar | google-scholar | 综合学术文献 | citationCount、summary |
| PubMed | pubmed | 生物医学 | volume、issue、pages、bibtex |
| Wanfang | wanfang | 中文学术文献 | pdfUrl、resourceType |