GAGA PAPER LIBRARY嘎嘎文献库

DEVELOPER GUIDE / API v1

让文献线索,
连接你的研究工具。

检索题录与摘要,再按文献 ID 获取现有完整解读。从研究问题到理论、假设与研究设计,接入你自己的研究工具。

01 / OVERVIEW

题录、摘要与解读,按需读取。

列表返回题录与中英文摘要;单篇详情返回已有公共解读,以及已整理的逐理论、假设和研究深读。接口读取现有内容,不会调用 AI 临时生成。已排除条目和个人上传语料(UPLOAD)不会出现在结果中;检索结果不代表期刊的完整权威目录。

可以获取

题名、作者、期刊、年月卷期、DOI 等题录,中英文摘要、中文概览、共享文章导读,以及已有的结构化深读与覆盖情况。

不通过此接口提供

PDF 或原文文件、下载链接、服务器与本地文件路径、用户私人笔记和账号资料。

访问方式

访问方式以上方服务配置卡为准;当前尚未确认是否需要 API 密钥。

配置、健康检查和 OpenAPI 描述始终公开。

02 / QUICKSTART

从一次小查询开始。

先查询题录与摘要,再按 ID 读取完整解读。以下示例按当前服务配置使用鉴权;密钥模式需替换 YOUR_API_KEY。

curl

curl --get '__API_BASE__/papers' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data-urlencode 'q=leadership' \
  --data-urlencode 'limit=2'
Python · 仅使用标准库

urllib.request

import json
import os
from urllib.parse import urlencode
from urllib.request import Request, urlopen

base = "__API_BASE__"
key = os.environ.get("GAGA_API_KEY", "YOUR_API_KEY")
query = urlencode({"q": "leadership", "limit": 2})
request = Request(
    f"{base}/papers?{query}",
    headers={"Authorization": f"Bearer {key}"},
)
with urlopen(request, timeout=20) as response:
    data = json.load(response)
print(json.dumps(data, ensure_ascii=False, indent=2))
JavaScript · 浏览器 fetch

不携带 Cookie

const query = new URLSearchParams({ q: "leadership", limit: "2" });
const response = await fetch(`__API_BASE__/papers?${query}`, {
  method: "GET",
  credentials: "omit",
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await response.json();
if (!response.ok) throw new Error(data.error?.message || `HTTP ${response.status}`);
console.log(data);

允许跨域调用(Access-Control-Allow-Origin: *),但不使用网页登录 Cookie。此片段仅用于你自己的调试环境,不应嵌入含真实密钥的公开网页。

按 ID 获取单篇完整解读

单篇接口默认返回现有全部公共解读,无需另加参数。可试用 68935(实证研究深读)、131(理论论文)或 89391(部分覆盖);以实际响应中的内容与覆盖状态为准。

curl · 单篇详情

curl '__API_BASE__/papers/68935' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Accept: application/json'
Python · 读取单篇及逐项深读

urllib.request

import json
import os
from urllib.request import Request, urlopen

base = "__API_BASE__"
key = os.environ.get("GAGA_API_KEY", "YOUR_API_KEY")
paper_id = 68935
request = Request(
    f"{base}/papers/{paper_id}",
    headers={"Authorization": f"Bearer {key}"},
)
with urlopen(request, timeout=20) as response:
    item = json.load(response)["item"]
print(json.dumps(item, ensure_ascii=False, indent=2))

# deep_analysis may be null; missing content is not generated on request.
deep = item.get("deep_analysis") or {}
for study in deep.get("studies", []):
    print(json.dumps(study, ensure_ascii=False, indent=2))

03 / REFERENCE

五个入口,一个稳定的版本前缀。

方法与路径用途鉴权
GET /api/v1版本、鉴权模式和限额公开
GET /api/v1/health服务健康检查公开
GET /api/v1/openapi.json机器可读接口描述公开
GET /api/v1/papers检索、筛选与分页;返回题录及摘要按配置
GET /api/v1/papers/{id}单篇题录、摘要及现有完整解读;返回 {"item": …}按配置

列表查询参数

所有参数均为可选;多个筛选条件组合使用。中文、空格和 DOI 中的特殊字符应使用 URL 编码。

参数规则示例
q题名、作者或 DOI 的字面子串,最多 200 个字符;期刊请用 journal 筛选leadership
doi精确 DOI 查询,传 DOI 字符串10.xxxx/example(占位)
journal期刊代码或完整名称,精确匹配,不区分大小写AMJ
year四位发表年份,范围 1000–99992024
limit每页 1–100 条,默认 2020
cursor上次读取的最后一个 ID,非负整数;首请求可省略0

04 / RESPONSE

按 ID 递增,逐页读取。

列表始终按 id ASC 排序,不按相关度或发表日期排序。仅当 pagination.has_more 为 true 时,将 next_cursor 作为下一次的 cursor,并保留相同筛选条件;读到 false 后停止。

响应结构示意 · 非真实馆藏记录

{
  "items": [{
    "id": 123,
    "title": "Example article title",
    "title_zh": "示例中文题名",
    "authors": "Example Author",
    "journal_code": "AMJ",
    "journal_name": "Academy of Management Journal",
    "year": 2024,
    "month": 6,
    "volume": "67",
    "issue": "3",
    "page_start": "1",
    "doi": null,
    "doi_url": null,
    "article_type": null,
    "updated_at": "2026-09-27T00:00:00Z",
    "abstract_en": null,
    "abstract_zh": "此处为示意摘要,不是真实文献内容。"
  }],
  "pagination": {"limit": 1, "has_more": true, "next_cursor": 123}
}

最后一页的 next_cursor 为 null。无匹配结果返回 items: [],不是 404。读取期间数据可能更新,分页不构成固定时间点的快照。

字段含义
id文献唯一整数 ID,也用于单条查询与分页
title / title_zh原文题名/中文题名
authors作者字符串或 null,不是作者对象数组
journal_code / journal_name期刊简称/期刊全称
year / month发表年/月
volume / issue / page_start卷/期/起始页;不要假设这些字段都能转换成整数
doi / doi_urlDOI 标识符/DOI 解析链接,不是 PDF 下载地址
article_type / updated_at文章类型/记录更新时间
abstract_en / abstract_zh英文/中文摘要;缺失时可能为 null 或空字符串

缺失的元数据可能为 null 或空字符串,客户端应保留缺失状态,不推断补全。

单篇详情:默认包含现有完整解读

请求 /api/v1/papers/{id},不附带列表筛选或分页参数。ID 为 1–9223372036854775807 的整数。响应中的 item 包含上述全部字段,以及下列字段。解读内容是否存在,以返回值和 content_availability 为准。

已有 deep_analysis 时,逐理论、假设和研究的阅读应优先使用该对象,并核对其 coverage。其余解读字段保留早期综合整理内容,可能与深读来自不同整理阶段;不要用早期概览替代逐项深读的具体结果和覆盖说明。

字段内容与类型
article_type_label_zh文章类型的中文说明,字符串;缺失为空字符串
feed_summary_zh / summary_zh简要导读/中文综合解读,字符串;缺失为空字符串
core_question_zh / model_zh / problem_solution_zh核心问题、理论模型与问题解决思路,字符串;缺失为空字符串
methods_zh / study_count_zh / special_paradigms_zh研究方法、研究安排说明及特殊范式,字符串;缺失为空字符串
keywords_zh / highlights_zh关键词/内容要点,JSON 数组
concepts / reading_notes / study_details概念解释、共享文章导读及原有分项研究说明,JSON 数组。reading_notes 是公共导读,不是用户私人笔记
deep_analysis逐项深读对象;尚未整理时为 null。结构见下表
content_availability内容可用性对象:abstract_en、abstract_zh、legacy_analysis、deep_analysis 为布尔值;deep_coverage 为 complete、partial 或 null

逐项深读对象 deep_analysis

字段如何使用
schema_version / article_kind深读结构版本与文献类型
overview_zh / conclusion_zh / limitations_zh整体问题与论证安排、综合结论、证据和外推边界
coverage覆盖对象。status 为 complete 或 partial;missing_items_zh 数组列出未覆盖材料,结合其中的阅读说明判断完整性
theories逐个理论的来源、概念解释及在本文中的作用
hypotheses逐条假设或命题的内容、推导、机制、适用边界及结果;理论预测可能尚未经验检验
studies逐项研究的问题、设计、样本、过程、测量、分析、结果与局限;理论论文可以没有研究项
arguments / evidence_map分步论证,以及主张与证据及其边界的对应关系
documents关联材料的标签和阅读位置;不含文档 URL 或下载地址

theories、hypotheses、studies、arguments、evidence_map 和 documents 均为数组。条目通过 id 和 theory_ids、hypothesis_ids、study_ids 等字段关联;sources 保留来源标签及页、段或行的位置,关联材料用 document_id 标识。它们不提供文件链接。各类条目的完整字段定义见 OpenAPI JSON。

并非每篇文献都已有逐项深读。deep_analysis: null 表示尚无该对象;coverage.status: "partial" 表示已有深读但仍有缺失材料。理论论文的 studies: [] 或无形式假设论文的 hypotheses: [] 不等于整理失败。接口不会为缺失内容即时补写。

05 / RELIABILITY

遇到错误,按原因处理。

错误统一返回 {"error": {"code": "…", "message": "…", "request_id": "…"}}。联系管理员时提供状态码、请求时间与 request_id,不要发送密钥。

400

参数格式或范围不正确,修正请求后再试。

401

密钥缺失或无效,检查 Bearer 请求头。

404

接口或可访问的文献 ID 不存在。

405

方法不允许;数据接口使用 GET。

429

请求过快。等待 Retry-After 指定的时间后重试。

503

服务暂不可用,稍后重试或联系管理员。

默认限额为每分钟 60 次,每页最多 100 条;以本页上方读到的服务配置为准。批量读取请顺序翻页、控制频率,不要并发轰炸或无限快速重试。

06 / PLAYGROUND

手动试一次,小范围验证。

选择查询方式后手动发送。列表最多返回 5 条题录与摘要;单篇按 ID 返回已有完整解读。密钥不会写入 URL、示例代码、浏览器存储或 Cookie;只在当前页面内存中使用。

查询方式
GET · 列表 · LIMIT 5

尚未发送文献请求。

查询结果将在这里显示。