4. Paper Detail API¶
4.1 Single Paper Lookup¶
Retrieve detailed information for a specific paper. Returns up to 10MB.
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
paper_id |
path | string | Yes | Paper ID (see 2.5 Paper ID Formats) |
fields |
query | string | Fields to return |
Examples:
# Basic lookup (paperId + title only)
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b"
# With specific fields
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b?fields=url,year,authors"
# Nested request for citation authors
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b?fields=citations.authors"
# Lookup by DOI
curl "https://api.semanticscholar.org/graph/v1/paper/DOI:10.18653/v1/N18-3011?fields=title,citationCount"
# Lookup by ArXiv ID + TLDR
curl "https://api.semanticscholar.org/graph/v1/paper/ARXIV:2106.15928?fields=title,tldr"
# Request SPECTER v2 embedding
curl "https://api.semanticscholar.org/graph/v1/paper/649def34f8be52c8b66281af98ae884c09aef38b?fields=title,embedding.specter_v2"
Available fields (FullPaper model):
paperId (always returned), 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
Test with hurl¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-detail.hurl
Change the paper ID via --variable. Add --json flag to output captured values as JSON.
4.2 Paper Batch Lookup¶
Look up up to 500 papers in a single request.
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
fields |
query | string | Fields to return |
Request body:
{
"ids": [
"649def34f8be52c8b66281af98ae884c09aef38b",
"ARXIV:2106.15928",
"DOI:10.18653/v1/N18-3011"
]
}
Different ID formats can be mixed in the
idsarray.
Example:
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"]}'
Limitations: - Max 500 Paper IDs - Single response max 10MB - Max 9,999 citations/references per paper
Test with hurl¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-batch.hurl
The ID from --variable paper_id is included in the batch request's ids array. Add --json flag to output captured values as JSON.
4.3 Paper Citations¶
Retrieve the list of papers that cite this paper (i.e., this paper appears in their references).
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
paper_id |
path | string | Yes | Paper ID |
fields |
query | string | Fields to return | |
offset |
query | integer | Start position (default 0) | |
limit |
query | integer | Max results (default 100, max 1,000) | |
publicationDateOrYear |
query | string | Publication date range filter |
fields usage:
Request citingPaper subfields directly as regular fields:
fields=contexts,intents,isInfluential,abstract # citingPaper's abstract
fields=contexts,title,authors # citingPaper's title, authors
Examples:
# Basic (citingPaper's paperId + title)
curl ".../paper/649def.../citations"
# Citation context + intent + abstract
curl ".../paper/649def.../citations?fields=contexts,intents,isInfluential,abstract&offset=200&limit=10"
# Citing paper authors
curl ".../paper/649def.../citations?fields=authors&offset=1500&limit=500"
Response structure (Citation model):
| Field | Description |
|---|---|
citingPaper |
Details of the citing paper |
contexts |
Array of citation context text |
intents |
Array of citation intents (methodology, background, etc.) |
contextsWithIntent |
Array of combined context+intent objects |
isInfluential |
Whether the citation is influential |
Test with hurl¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-citations.hurl
Change the paper ID via --variable. Add --json flag to output captured values as JSON.
4.4 Paper References¶
Retrieve the list of papers referenced by this paper (i.e., this paper's bibliography).
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
paper_id |
path | string | Yes | Paper ID |
fields |
query | string | Fields to return | |
offset |
query | integer | Start position (default 0) | |
limit |
query | integer | Max results (default 100, max 1,000) |
Response structure (Reference model):
| Field | Description |
|---|---|
citedPaper |
Details of the referenced paper |
contexts |
Array of reference context text |
intents |
Array of citation intents |
contextsWithIntent |
Array of combined context+intent objects |
isInfluential |
Whether the citation is influential |
Citations vs References:
| Aspect | Citations | References |
|---|---|---|
| Direction | Papers that cite this paper | Papers that this paper cites |
| Analogy | "Who cited me?" | "Who did I cite?" |
| Response object key | citingPaper |
citedPaper |
publicationDateOrYear filter |
Supported | Not supported |
Test with hurl¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-references.hurl
Change the paper ID via --variable. Add --json flag to output captured values as JSON.
4.5 Paper Authors¶
Retrieve the author list for a specific paper.
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
paper_id |
path | string | Yes | Paper ID |
fields |
query | string | Fields to return | |
offset |
query | integer | Start position (default 0) | |
limit |
query | integer | Max results (default 100, max 1,000) |
fields usage:
Specify papers subfields with .:
fields=name,affiliations,papers # name + affiliations + paper list
fields=url,papers.year,papers.authors # author URL + paper year/authors
Examples:
# Basic (authorId + name)
curl ".../paper/649def.../authors"
# Affiliations + paper list (limit 2)
curl ".../paper/649def.../authors?fields=affiliations,papers&limit=2"
# Author's paper years + paper authors (with offset)
curl ".../paper/649def.../authors?fields=url,papers.year,papers.authors&offset=2"
Test with hurl¶
hurl --variable s2_api_key=$S2_API_KEY --variable paper_id=649def34f8be52c8b66281af98ae884c09aef38b api/graph/paper-authors.hurl
Change the paper ID via --variable. Add --json flag to output captured values as JSON.