4. 논문 상세 API¶
4.1 논문 단일 조회¶
특정 논문의 상세 정보를 가져온다. 최대 10MB 데이터 반환 가능.
파라미터:
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
paper_id |
path | string | ✅ | 논문 ID (2.5 논문 ID 형식 참조) |
fields |
query | string | 반환할 필드 목록 |
예시:
# 기본 조회 (paperId + title만 반환)
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b"
# 필드 지정
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b?fields=url,year,authors"
# 인용 논문의 저자까지 중첩 요청
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b?fields=citations.authors"
# DOI로 조회
curl "https://api.semanticscholar.org/graph/v1/paper/DOI:10.18653/v1/N18-3011?fields=title,citationCount"
# ArXiv ID로 조회 + TLDR
curl "https://api.semanticscholar.org/graph/v1/paper/ARXIV:2106.15928?fields=title,tldr"
# SPECTER v2 임베딩 요청
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b?fields=title,embedding.specter_v2"
반환 가능 필드 (FullPaper 모델):
paperId(항상 반환), corpusId, externalIds, url, title, abstract, venue, publicationVenue, year, referenceCount, citationCount, influentialCitationCount, isOpenAccess, openAccessPdf, fieldsOfStudy, s2FieldsOfStudy, publicationTypes, publicationDate, journal, citationStyles, authors, citations, references, embedding, tldr, textAvailability
hurl 테스트¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-detail.hurl
--variable로 논문 ID를 변경할 수 있다. --json 플래그로 캡처값을 JSON 출력한다.
4.2 논문 배치 조회¶
최대 500개의 논문을 한 번의 요청으로 조회한다.
파라미터:
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
fields |
query | string | 반환할 필드 목록 |
요청 본문:
{
"ids": [
"649def34f8be52c8b66281af98ae884c09aef38b",
"ARXIV:2106.15928",
"DOI:10.18653/v1/N18-3011"
]
}
ids배열에 다양한 형식의 ID를 혼합해서 사용할 수 있다.
예시:
curl -X POST "https://api.semanticscholar.org/graph/v1/paper/batch?fields=title,year,citationCount" \
-H "Content-Type: application/json" \
-d '{"ids": ["ARXIV:2106.15928", "DOI:10.1145/3132847.3133079"]}'
제한사항: - 최대 500개 Paper ID - 단일 응답 최대 10MB - 논문당 최대 9,999건의 citations/references만 반환
hurl 테스트¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-batch.hurl
--variable paper_id에 지정한 ID가 배치 요청의 ids 배열에 포함된다. --json 플래그로 캡처값을 JSON 출력한다.
4.3 논문의 인용 목록 (Citations)¶
이 논문을 인용한 논문들의 목록을 가져온다 (= 이 논문이 다른 논문의 참고문헌에 등장하는 경우).
파라미터:
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
paper_id |
path | string | ✅ | 논문 ID |
fields |
query | string | 반환할 필드 목록 | |
offset |
query | integer | 시작 위치 (기본 0) | |
limit |
query | integer | 최대 반환 수 (기본 100, 최대 1,000) | |
publicationDateOrYear |
query | string | 출판일 범위 필터 |
fields 사용법:
citingPaper 하위 필드는 일반 필드처럼 직접 요청한다:
fields=contexts,intents,isInfluential,abstract # citingPaper의 abstract
fields=contexts,title,authors # citingPaper의 title, authors
예시:
# 기본 조회 (citingPaper의 paperId + title)
curl ".../paper/649def.../citations"
# 인용 문맥 + 의도 + 초록
curl ".../paper/649def.../citations?fields=contexts,intents,isInfluential,abstract&offset=200&limit=10"
# 인용 논문의 저자 목록
curl ".../paper/649def.../citations?fields=authors&offset=1500&limit=500"
응답 구조 (Citation 모델):
| 필드 | 설명 |
|---|---|
citingPaper |
인용한 논문의 상세 정보 |
contexts |
인용 문맥 텍스트 배열 |
intents |
인용 의도 배열 (methodology, background 등) |
contextsWithIntent |
문맥+의도가 결합된 객체 배열 |
isInfluential |
영향력 있는 인용 여부 |
hurl 테스트¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-citations.hurl
--variable로 논문 ID를 변경할 수 있다. --json 플래그로 캡처값을 JSON 출력한다.
4.4 논문의 참조 목록 (References)¶
이 논문이 참조하는 논문들의 목록을 가져온다 (= 이 논문의 참고문헌).
파라미터:
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
paper_id |
path | string | ✅ | 논문 ID |
fields |
query | string | 반환할 필드 목록 | |
offset |
query | integer | 시작 위치 (기본 0) | |
limit |
query | integer | 최대 반환 수 (기본 100, 최대 1,000) |
응답 구조 (Reference 모델):
| 필드 | 설명 |
|---|---|
citedPaper |
참조된 논문의 상세 정보 |
contexts |
참조 문맥 텍스트 배열 |
intents |
인용 의도 배열 |
contextsWithIntent |
문맥+의도 결합 객체 배열 |
isInfluential |
영향력 있는 인용 여부 |
Citations vs References:
| 항목 | Citations | References |
|---|---|---|
| 방향 | 이 논문을 인용한 논문들 | 이 논문이 참조한 논문들 |
| 비유 | "누가 나를 인용했나" | "내가 누구를 인용했나" |
| 반환 객체 키 | citingPaper |
citedPaper |
publicationDateOrYear 필터 |
✅ 지원 | ❌ 미지원 |
hurl 테스트¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-references.hurl
--variable로 논문 ID를 변경할 수 있다. --json 플래그로 캡처값을 JSON 출력한다.
4.5 논문의 저자 목록¶
특정 논문의 저자 목록을 가져온다.
파라미터:
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
paper_id |
path | string | ✅ | 논문 ID |
fields |
query | string | 반환할 필드 목록 | |
offset |
query | integer | 시작 위치 (기본 0) | |
limit |
query | integer | 최대 반환 수 (기본 100, 최대 1,000) |
fields 사용법:
papers 서브필드를 .으로 지정:
fields=name,affiliations,papers # 저자명 + 소속 + 논문 목록
fields=url,papers.year,papers.authors # 저자 URL + 논문의 연도/저자
예시:
# 기본 (authorId + name)
curl ".../paper/649def.../authors"
# 소속 + 논문 목록 (limit 2)
curl ".../paper/649def.../authors?fields=affiliations,papers&limit=2"
# 저자의 논문 연도 + 논문의 저자들 (offset 사용)
curl ".../paper/649def.../authors?fields=url,papers.year,papers.authors&offset=2"
hurl 테스트¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-authors.hurl
--variable로 논문 ID를 변경할 수 있다. --json 플래그로 캡처값을 JSON 출력한다.