Examples:
<ul>
<li><code>https://api.semanticscholar.org/graph/v1/paper/search?query=covid+vaccination&offset=100&limit=3</code></li>
<ul>
<li>Returns with total=576278, offset=100, next=103, and data is a list of 3 papers.</li>
<li>Each paper has its paperId and title. </li>
</ul>
<li><code>https://api.semanticscholar.org/graph/v1/paper/search?query=covid&fields=url,abstract,authors</code></li>
<ul>
<li>Returns with total=639637, offset=0, next=100, and data is a list of 100 papers.</li>
<li>Each paper has paperId, url, abstract, and a list of authors.</li>
<li>Each author under that list has authorId and name.</li>
</ul>
<li><code>https://api.semanticscholar.org/graph/v1/paper/search?query=totalGarbageNonsense</code></li>
<ul>
<li>Returns with total=0, offset=0, and data is a list of 0 papers.</li>
</ul>
<li><code>https://api.semanticscholar.org/graph/v1/paper/search?query=covid&year=2020-2023&openAccessPdf&fieldsOfStudy=Physics,Philosophy&fields=title,year,authors</code></li>
<ul>
<li>Returns with total=8471, offset=0, next=10, and data is a list of 10 papers. </li>
<li>Filters to include only papers published between 2020-2023.</li>
<li>Filters to include only papers with open access PDFs.</li>
<li>Filters to include only papers that have a field of study either matching Physics or Philosophy.</li>
<li>Each paper has the fields paperId, title, year, and authors.</li>
</ul>
<br>
Limitations:
<ul>
<li>Can only return up to 1,000 relevance-ranked results. For larger queries, see "/search/bulk" or the Datasets API.</li>
<li>Can only return up to 10 MB of data at a time.</li>
</ul>
</ul>
Parameters (11)
fields(string, query, optional)
A comma-separated list of the fields to be returned. See the contents of the <code>data</code> array in Response Schema below for a list of all available fields that can be returned.
The <code>paperId</code> field is always returned. If the fields parameter is omitted, only the <code>paperId</code> and <code>title</code> will be returned.
<p>Use a period (“.”) for fields that have version numbers or subfields, such as the <code>embedding</code>, <code>authors</code>, <code>citations</code>, and <code>references</code> fields:
<ul>
<li>When requesting <code>authors</code>, the <code>authorId</code> and <code>name</code> subfields are returned by default. To request other subfields, use the format <code>author.url,author.paperCount</code>, etc. See the Response Schema below for available subfields.</li>
<li>When requesting <code>citations</code> and <code>references</code>, the <code>paperId</code> and <code>title</code> subfields are returned by default. To request other subfields, use the format <code>citations.title,citations.abstract</code>, etc. See the Response Schema below for available subfields.</li>
<li>When requesting <code>embedding</code>, the default <a href="https://github.com/allenai/specter">Spector embedding version</a> is v1. Specify <code>embedding.specter_v2</code> to select v2 embeddings.</li>
</ul>
Examples:
<ul>
<li><code>fields=title,url</code></li>
<li><code>fields=title,embedding.specter_v2</code></li>
<li><code>fields=title,authors,citations.title,citations.abstract</code></li>
</ul>
fieldsOfStudy(string, query, optional)
Restricts results to papers in the given fields of study, formatted as a comma-separated list:
<ul>
<li>Computer Science</li>
<li>Medicine</li>
<li>Chemistry</li>
<li>Biology</li>
<li>Materials Science</li>
<li>Physics</li>
<li>Geology</li>
<li>Psychology</li>
<li>Art</li>
<li>History</li>
<li>Geography</li>
<li>Sociology</li>
<li>Business</li>
<li>Political Science</li>
<li>Economics</li>
<li>Philosophy</li>
<li>Mathematics</li>
<li>Engineering</li>
<li>Environmental Science</li>
<li>Agricultural and Food Sciences</li>
<li>Education</li>
<li>Law</li>
<li>Linguistics</li>
</ul>
Example: <code>Physics,Mathematics</code> will return papers with either Physics or Mathematics in their list of fields-of-study.
limit(integer, query, optional, default: 100)
The maximum number of results to return.<br>
Must be <= 100
minCitationCount(string, query, optional)
Restricts results to only include papers with the minimum number of citations.
<br>
<br>
Example:
<code>minCitationCount=200</code>
offset(integer, query, optional, default: 0)
Used for pagination. When returning a list of results, start with the element at this position in the list.
openAccessPdf(string, query, optional)
Restricts results to only include papers with a public PDF. This parameter does not accept any values.
publicationDateOrYear(string, query, optional)
Restricts results to the given range of publication dates or years (inclusive). Accepts the format <code><startDate>:<endDate></code> with each date in <code>YYYY-MM-DD</code> format.
<br>
<br>
Each term is optional, allowing for specific dates, fixed ranges, or open-ended ranges. In addition, prefixes are supported as a shorthand, e.g. <code>2020-06</code> matches all dates in June 2020.
<br>
<br>
Specific dates are not known for all papers, so some records returned with this filter will have a <code>null</code> value for </code>publicationDate</code>. <code>year</code>, however, will always be present.
For records where a specific publication date is not known, they will be treated as if published on January 1st of their publication year.
<br>
<br>
Examples:
<ul>
<li><code>2019-03-05</code> on March 5th, 2019</li>
<li><code>2019-03</code> during March 2019</li>
<li><code>2019</code> during 2019</li>
<li><code>2016-03-05:2020-06-06</code> as early as March 5th, 2016 or as late as June 6th, 2020</li>
<li><code>1981-08-25:</code> on or after August 25th, 1981</li>
<li><code>:2015-01</code> before or on January 31st, 2015</li>
<li><code>2015:2020</code> between January 1st, 2015 and December 31st, 2020</li>
</ul>
publicationTypes(string, query, optional)
Restricts results to any of the following paper publication types:
<ul>
<li>Review</li>
<li>JournalArticle</li>
<li>CaseReport</li>
<li>ClinicalTrial</li>
<li>Conference</li>
<li>Dataset</li>
<li>Editorial</li>
<li>LettersAndComments</li>
<li>MetaAnalysis</li>
<li>News</li>
<li>Study</li>
<li>Book</li>
<li>BookSection</li>
</ul>
Use a comma-separated list to include papers with any of the listed publication types. <br><br>
Example: <code>Review,JournalArticle</code> will return papers with publication types Review and/or JournalArticle.
query(string, query, required)
A plain-text search query string.
* No special query syntax is supported.
* Hyphenated query terms yield no matches (replace it with space to find matches)
See our <a href="https://medium.com/ai2-blog/building-a-better-search-engine-for-semantic-scholar-ea23a0b661e7">blog post</a>
for a description of our search relevance algorithm.
Example:
<code>graph/v1/paper/search?query=generative ai</code>
venue(string, query, optional)
Restricts results to papers published in the given venues, formatted as a comma-separated list. <br><br>
Input could also be an ISO4 abbreviation.
Examples include:
<ul>
<li>Nature</li>
<li>New England Journal of Medicine</li>
<li>Radiology</li>
<li>N. Engl. J. Med.</li>
</ul>
Example: <code>Nature,Radiology</code> will return papers from venues Nature and/or Radiology.
year(string, query, optional)
Restricts results to the given publication year or range of years (inclusive).
<br>
<br>
Examples:
<ul>
<li><code>2019</code> in 2019</li>
<li><code>2016-2020</code> as early as 2016 or as late as 2020</li>
<li><code>2010-</code> during or after 2010</li>
<li><code>-2015</code> before or during 2015</li>
</ul>
Examples (3)
Basic paper search with querycurl
curl 'https://api.semanticscholar.org/graph/v1/paper/search?query=machine+learning' \
-d '{"message": "Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form", "code": "429"}'
import requests
resp = requests.get(
"https://api.semanticscholar.org/graph/v1/paper/search",
params={
'query': 'machine learning',
},
json={
'message': 'Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form',
'code': '429',
},
)
data = resp.json()
import zingu_apis
api = zingu_apis.api("semanticscholar")
result = api.fetch("paper/search", query="machine learning")
for item in result:
print(item)
const body = {
"message": "Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form",
"code": "429"
};
const resp = await fetch("https://api.semanticscholar.org/graph/v1/paper/search?query=machine+learning", {
body: JSON.stringify(body),
});
const data = await resp.json();
Search with pagination and selected fieldscurl
curl 'https://api.semanticscholar.org/graph/v1/paper/search?query=climate+change&fields=title%2Cauthors%2Cyear%2CcitationCount&limit=10&offset=0' \
-d '{"message": "Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form", "code": "429"}'
import requests
resp = requests.get(
"https://api.semanticscholar.org/graph/v1/paper/search",
params={
'query': 'climate change',
'fields': 'title,authors,year,citationCount',
'limit': '10',
'offset': '0',
},
json={
'message': 'Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form',
'code': '429',
},
)
data = resp.json()
import zingu_apis
api = zingu_apis.api("semanticscholar")
result = api.fetch("paper/search", query="climate change", fields="title,authors,year,citationCount", limit=10, offset=0)
for item in result:
print(item)
const body = {
"message": "Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form",
"code": "429"
};
const resp = await fetch("https://api.semanticscholar.org/graph/v1/paper/search?query=climate+change&fields=title%2Cauthors%2Cyear%2CcitationCount&limit=10&offset=0", {
body: JSON.stringify(body),
});
const data = await resp.json();
Search with year and field of study filterscurl
curl 'https://api.semanticscholar.org/graph/v1/paper/search?query=artificial+intelligence&year=2020-2024&fieldsOfStudy=Computer+Science&limit=5' \
-d '{"message": "Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form", "code": "429"}'
import requests
resp = requests.get(
"https://api.semanticscholar.org/graph/v1/paper/search",
params={
'query': 'artificial intelligence',
'year': '2020-2024',
'fieldsOfStudy': 'Computer Science',
'limit': '5',
},
json={
'message': 'Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form',
'code': '429',
},
)
data = resp.json()
import zingu_apis
api = zingu_apis.api("semanticscholar")
result = api.fetch("paper/search", query="artificial intelligence", year="2020-2024", fieldsOfStudy="Computer Science", limit=5)
for item in result:
print(item)
const body = {
"message": "Too Many Requests. Please wait and try again or apply for a key for higher rate limits. https://www.semanticscholar.org/product/api#api-key-form",
"code": "429"
};
const resp = await fetch("https://api.semanticscholar.org/graph/v1/paper/search?query=artificial+intelligence&year=2020-2024&fieldsOfStudy=Computer+Science&limit=5", {
body: JSON.stringify(body),
});
const data = await resp.json();