Skill Tracer
Skills › Scientific Agent Skills › paper-lookup › semantic-scholar.md

semantic-scholar.md

209 lines · skills/paper-lookup/references/semantic-scholar.md at 5f2bc03

Open on GitHub
1# Semantic Scholar API
2
3Semantic Scholar indexes 200M+ papers across all academic fields with AI-powered features: citation context, influential citations, TLDRs, and paper recommendations.
4

Semantic Scholar API

Semantic Scholar indexes 200M+ papers across all academic fields with AI-powered features: citation context, influential citations, TLDRs, and paper recommendations.

Raw lines 1 to 4
5## Base URLs
6
7```
8https://api.semanticscholar.org/graph/v1 (Academic Graph)
9https://api.semanticscholar.org/recommendations/v1 (Recommendations)
10```

Base URLs

https://api.semanticscholar.org/graph/v1       (Academic Graph)
https://api.semanticscholar.org/recommendations/v1  (Recommendations)
Raw lines 5 to 11
12## Authentication
14- **Without key:** Shared rate pool (frequently hits 429 errors). Works but unreliable.
15- **With key:** 1 req/sec per key (higher on request).
16- Header: `x-api-key: YOUR_KEY`
17- Get a free key at: https://www.semanticscholar.org/product/api#api-key-form

Authentication

  • Without key: Shared rate pool (frequently hits 429 errors). Works but unreliable.
  • With key: 1 req/sec per key (higher on request).
  • Header: x-api-key: YOUR_KEY
  • Get a free key at: https://www.semanticscholar.org/product/api#api-key-form
Raw lines 12 to 18
19## The `fields` Parameter
21Almost every endpoint accepts `fields` -- a comma-separated list (no spaces) of fields to include. Paper endpoints default to `paperId` + `title`; author endpoints default to `authorId` + `name`. Supported nested fields vary by endpoint.
23**Paper fields:**
24`paperId`, `corpusId`, `externalIds`, `url`, `title`, `abstract`, `venue`, `publicationVenue`, `year`, `referenceCount`, `citationCount`, `influentialCitationCount`, `isOpenAccess`, `openAccessPdf`, `fieldsOfStudy`, `s2FieldsOfStudy`, `publicationTypes`, `publicationDate`, `journal`, `authors`, `citations`, `references`, `tldr`, `embedding`
26**Author fields:**
27`authorId`, `externalIds`, `url`, `name`, `affiliations`, `homepage`, `paperCount`, `citationCount`, `hIndex`, `papers`

The fields Parameter

Almost every endpoint accepts fields -- a comma-separated list (no spaces) of fields to include. Paper endpoints default to paperId + title; author endpoints default to authorId + name. Supported nested fields vary by endpoint.

Paper fields: paperId, corpusId, externalIds, url, title, abstract, venue, publicationVenue, year, referenceCount, citationCount, influentialCitationCount, isOpenAccess, openAccessPdf, fieldsOfStudy, s2FieldsOfStudy, publicationTypes, publicationDate, journal, authors, citations, references, tldr, embedding

Author fields: authorId, externalIds, url, name, affiliations, homepage, paperCount, citationCount, hIndex, papers

Raw lines 19 to 28
29## Paper ID Formats
31The `{paper_id}` parameter accepts:
32- `649def34f8be52c8b66281af98ae884c09aef38b` (S2 hash)
33- `CorpusId:215416146`
34- `DOI:10.1038/s41586-021-03819-2`
35- `ARXIV:2005.14165`
36- `PMID:19872477`
37- `PMCID:2323736`
38- `ACL:W12-3903`

Paper ID Formats

The {paper_id} parameter accepts:

  • 649def34f8be52c8b66281af98ae884c09aef38b (S2 hash)
  • CorpusId:215416146
  • DOI:10.1038/s41586-021-03819-2
  • ARXIV:2005.14165
  • PMID:19872477
  • PMCID:2323736
  • ACL:W12-3903
Raw lines 29 to 39
40## Key Endpoints

Key Endpoints

Raw lines 40 to 41
42### 1. Paper search (relevance)
44```
45GET /graph/v1/paper/search?query={text}&fields={fields}&offset={n}&limit={n}
46```
48| Parameter | Default | Description |
49|-----------|---------|-------------|
50| `query` | required | Plain-text search |
51| `fields` | paperId,title | Comma-separated |
52| `offset` | 0 | Pagination start |
53| `limit` | 100 | Max 100 |
54| `year` | -- | `2019` or `2016-2020` |
55| `publicationDateOrYear` | -- | `YYYY-MM-DD:YYYY-MM-DD` |
56| `fieldsOfStudy` | -- | e.g., `Computer Science,Medicine` |
57| `publicationTypes` | -- | e.g., `JournalArticle,Conference` |
58| `openAccessPdf` | -- | Filter for OA papers |
59| `minCitationCount` | -- | Minimum citations |
60| `venue` | -- | Comma-separated venues |
62**Max 1,000 results** accessible via offset.
64**Example:**
65```
66https://api.semanticscholar.org/graph/v1/paper/search?query=CRISPR+gene+therapy&fields=title,year,abstract,citationCount,authors,openAccessPdf&limit=10&year=2023-2024
67```

1. Paper search (relevance)

GET /graph/v1/paper/search?query={text}&fields={fields}&offset={n}&limit={n}
ParameterDefaultDescription
queryrequiredPlain-text search
fieldspaperId,titleComma-separated
offset0Pagination start
limit100Max 100
year--2019 or 2016-2020
publicationDateOrYear--YYYY-MM-DD:YYYY-MM-DD
fieldsOfStudy--e.g., Computer Science,Medicine
publicationTypes--e.g., JournalArticle,Conference
openAccessPdf--Filter for OA papers
minCitationCount--Minimum citations
venue--Comma-separated venues

Max 1,000 results accessible via offset.

Example:

https://api.semanticscholar.org/graph/v1/paper/search?query=CRISPR+gene+therapy&fields=title,year,abstract,citationCount,authors,openAccessPdf&limit=10&year=2023-2024
Raw lines 42 to 68
69### 2. Paper bulk search (boolean queries, large result sets)
71```
72GET /graph/v1/paper/search/bulk?query={text}&fields={fields}&sort={field}:{order}&token={token}
73```
75- Supports boolean operators: `+` (AND), `|` (OR), `-` (NOT), `"..."` (phrase), `*` (wildcard), `()` (grouping)
76- Token-based pagination (up to 10M papers)
77- Returns up to 1,000 per call in `data`; the `total` is an estimate. Follow `token` until absent, rather than reconciling an estimated count as exact.
78- Nested citations/references are unavailable in bulk search; fetch those through their dedicated endpoints.
79- Sortable: `citationCount:desc`, `publicationDate:desc`, `paperId:asc`

2. Paper bulk search (boolean queries, large result sets)

GET /graph/v1/paper/search/bulk?query={text}&fields={fields}&sort={field}:{order}&token={token}
  • Supports boolean operators: + (AND), | (OR), - (NOT), "..." (phrase), * (wildcard), () (grouping)
  • Token-based pagination (up to 10M papers)
  • Returns up to 1,000 per call in data; the total is an estimate. Follow token until absent, rather than reconciling an estimated count as exact.
  • Nested citations/references are unavailable in bulk search; fetch those through their dedicated endpoints.
  • Sortable: citationCount:desc, publicationDate:desc, paperId:asc
Raw lines 69 to 80
81### 3. Paper details (by ID)
83```
84GET /graph/v1/paper/{paper_id}?fields={fields}
85```
87**Example:**
88```
89https://api.semanticscholar.org/graph/v1/paper/DOI:10.1038/s41586-021-03819-2?fields=title,year,abstract,citationCount,referenceCount,isOpenAccess,openAccessPdf,authors,tldr
90```
92**Response:**
93```json
95 "paperId": "dc32a984b651256a8ec282be52310e6bd33d9815",
96 "title": "Highly accurate protein structure prediction with AlphaFold",
97 "year": 2021,
98 "citationCount": 34260,
99 "isOpenAccess": true,
100 "openAccessPdf": {"url": "https://...pdf", "status": "HYBRID"},
101 "tldr": {"text": "This work develops AlphaFold, a system that..."},
102 "authors": [{"authorId": "47921134", "name": "J. Jumper"}, ...]
104```

3. Paper details (by ID)

GET /graph/v1/paper/{paper_id}?fields={fields}

Example:

https://api.semanticscholar.org/graph/v1/paper/DOI:10.1038/s41586-021-03819-2?fields=title,year,abstract,citationCount,referenceCount,isOpenAccess,openAccessPdf,authors,tldr

Response:

{
  "paperId": "dc32a984b651256a8ec282be52310e6bd33d9815",
  "title": "Highly accurate protein structure prediction with AlphaFold",
  "year": 2021,
  "citationCount": 34260,
  "isOpenAccess": true,
  "openAccessPdf": {"url": "https://...pdf", "status": "HYBRID"},
  "tldr": {"text": "This work develops AlphaFold, a system that..."},
  "authors": [{"authorId": "47921134", "name": "J. Jumper"}, ...]
}
Raw lines 81 to 105
106### 4. Paper citations
108```
109GET /graph/v1/paper/{paper_id}/citations?fields={fields}&offset={n}&limit={n}
110```
112Returns `data[].citingPaper` with edge fields alongside the paper. `limit` max 1000. Pass response `next` as the next `offset`; stop when `next` is absent.
114Citation-specific fields: `contexts`, `intents`, `isInfluential`

4. Paper citations

GET /graph/v1/paper/{paper_id}/citations?fields={fields}&offset={n}&limit={n}

Returns data[].citingPaper with edge fields alongside the paper. limit max 1000. Pass response next as the next offset; stop when next is absent.

Citation-specific fields: contexts, intents, isInfluential

Raw lines 106 to 115
116### 5. Paper references
118```
119GET /graph/v1/paper/{paper_id}/references?fields={fields}&offset={n}&limit={n}
120```
122Returns `data[].citedPaper` (opposite direction from citations). Same pagination as citations; unresolved paper IDs or optional fields can be null.

5. Paper references

GET /graph/v1/paper/{paper_id}/references?fields={fields}&offset={n}&limit={n}

Returns data[].citedPaper (opposite direction from citations). Same pagination as citations; unresolved paper IDs or optional fields can be null.

Raw lines 116 to 123
124### 6. Paper title match
126```
127GET /graph/v1/paper/search/match?query={exact title}&fields={fields}
128```
130Returns the best match in `data[]`, including `matchScore`; it is not a bare paper object. HTTP 404 if no match. Check title, author, and year before treating a fuzzy title match as identity.

6. Paper title match

GET /graph/v1/paper/search/match?query={exact title}&fields={fields}

Returns the best match in data[], including matchScore; it is not a bare paper object. HTTP 404 if no match. Check title, author, and year before treating a fuzzy title match as identity.

Raw lines 124 to 131
132### 7. Author search
134```
135GET /graph/v1/author/search?query={name}&fields={fields}&offset={n}&limit={n}
136```

7. Author search

GET /graph/v1/author/search?query={name}&fields={fields}&offset={n}&limit={n}
Raw lines 132 to 137
138### 8. Author details
140```
141GET /graph/v1/author/{author_id}?fields={fields}
142```

8. Author details

GET /graph/v1/author/{author_id}?fields={fields}
Raw lines 138 to 143
144### 9. Author's papers
146```
147GET /graph/v1/author/{author_id}/papers?fields={fields}&offset={n}&limit={n}
148```

9. Author's papers

GET /graph/v1/author/{author_id}/papers?fields={fields}&offset={n}&limit={n}
Raw lines 144 to 149
150### 10. Paper recommendations
152```
153GET /recommendations/v1/papers/forpaper/{paper_id}?fields={fields}&limit={n}&from={pool}
154```
156`from`: `recent` (default) or `all-cs`. `limit` defaults to 100, max 500. Both recommendation routes return `recommendedPapers[]`, not `data[]`; they have no cursor pagination.

10. Paper recommendations

GET /recommendations/v1/papers/forpaper/{paper_id}?fields={fields}&limit={n}&from={pool}

from: recent (default) or all-cs. limit defaults to 100, max 500. Both recommendation routes return recommendedPapers[], not data[]; they have no cursor pagination.

Raw lines 150 to 157
158### 11. Multi-paper recommendations (POST)
160```
161POST /recommendations/v1/papers/
162Content-Type: application/json
165 "positivePaperIds": ["paperId1", "paperId2"],
166 "negativePaperIds": ["paperId3"]
168```

11. Multi-paper recommendations (POST)

POST /recommendations/v1/papers/
Content-Type: application/json

{
  "positivePaperIds": ["paperId1", "paperId2"],
  "negativePaperIds": ["paperId3"]
}
Raw lines 158 to 169
170### 12. Paper batch (POST)
172```
173POST /graph/v1/paper/batch?fields={fields}
174Content-Type: application/json
176{"ids": ["DOI:10.1038/nature12373", "ARXIV:2005.14165"]}
177```
179Max 500 IDs per request. The response is an ordered array, with null entries possible for unresolved IDs. Keep positional correspondence and report missing items. `fields` belongs in the URL, not the JSON body.

12. Paper batch (POST)

POST /graph/v1/paper/batch?fields={fields}
Content-Type: application/json

{"ids": ["DOI:10.1038/nature12373", "ARXIV:2005.14165"]}

Max 500 IDs per request. The response is an ordered array, with null entries possible for unresolved IDs. Keep positional correspondence and report missing items. fields belongs in the URL, not the JSON body.

Raw lines 170 to 180
181## Pagination
183| Endpoint | Max per page | Max total | Method |
184|----------|-------------|-----------|--------|
185| Relevance search | 100 | 1,000 | offset/next |
186| Bulk search | 1,000 | 10,000,000 | token |
187| Citations/References | 1,000 | all | offset/next |
188| Author search / author papers | 1,000 | -- | offset/next |

Pagination

EndpointMax per pageMax totalMethod
Relevance search1001,000offset/next
Bulk search1,00010,000,000token
Citations/References1,000alloffset/next
Author search / author papers1,000--offset/next
Raw lines 181 to 189
190## Publication Types
192`Review`, `JournalArticle`, `CaseReport`, `ClinicalTrial`, `Conference`, `Dataset`, `Editorial`, `LettersAndComments`, `MetaAnalysis`, `News`, `Study`, `Book`, `BookSection`

Publication Types

Review, JournalArticle, CaseReport, ClinicalTrial, Conference, Dataset, Editorial, LettersAndComments, MetaAnalysis, News, Study, Book, BookSection

Raw lines 190 to 193
194## Fields of Study
196`Computer Science`, `Medicine`, `Chemistry`, `Biology`, `Materials Science`, `Physics`, `Geology`, `Psychology`, `Art`, `History`, `Geography`, `Sociology`, `Business`, `Political Science`, `Economics`, `Philosophy`, `Mathematics`, `Engineering`, `Environmental Science`, `Agricultural and Food Sciences`, `Education`, `Law`, `Linguistics`

Fields of Study

Computer Science, Medicine, Chemistry, Biology, Materials Science, Physics, Geology, Psychology, Art, History, Geography, Sociology, Business, Political Science, Economics, Philosophy, Mathematics, Engineering, Environmental Science, Agricultural and Food Sciences, Education, Law, Linguistics

Raw lines 194 to 197
198## Error Format
200```json
201{"message": "Too Many Requests", "code": "429"}
202```
204HTTP 404 for not found, 429 for rate limit.

Error Format

{"message": "Too Many Requests", "code": "429"}

HTTP 404 for not found, 429 for rate limit.

Raw lines 198 to 205
206## Official sources reviewed 2026-09-30
208- https://api.semanticscholar.org/graph/v1/swagger.json
209- https://api.semanticscholar.org/recommendations/v1/swagger.json

Official sources reviewed 2026-09-30

  • https://api.semanticscholar.org/graph/v1/swagger.json
  • https://api.semanticscholar.org/recommendations/v1/swagger.json
Raw lines 206 to 209