# Semantic Scholar

> Search and read Semantic Scholar's corpus of over 200 million research papers: find papers and authors, follow citations forwards and backwards, get AI one-sentence summaries and BibTeX, and get paper recommendations.

App · Research & Academia · 17 actions. Web page: https://docs.lodol.com/docs/integrations/semantic-scholar

## Actions

### Fetch papers in bulk

Pull an entire filtered set of papers, 1,000 at a time. Unlike relevance search this ranks nothing; it returns everything that matches, in the order you sort by, with a continuation token to fetch the next batch. The text query is optional and understands boolean operators: '+' for AND, '|' for OR, '-' to exclude, quotes for a phrase, '*' for a prefix and '~N' for fuzziness. Give it at least a query or one filter.

**Inputs**

- Search terms (`query`, text): Matched against title and abstract. Supports '+' (AND), '|' (OR), '-' (exclude), "quoted phrases", '*' (prefix) and '~N' (fuzzy). Optional if you set a filter instead.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 11 more.
- Sort by (`sort`, text): Order of the results. Defaults to paper ID ascending, which is the only order guaranteed to stay stable while you page through a large set. One of: `paperId:asc` (Paper ID, ascending (most stable for paging)), `paperId:desc` (Paper ID, descending), `publicationDate:asc` (Publication date (oldest first)), `publicationDate:desc` (Publication date (newest first)), `citationCount:asc` (Citations (least cited first)), `citationCount:desc` (Citations (most cited first)).
- Continuation token (`token`, text): Paste the 'next_token' from a previous run to fetch the next 1,000 papers. Leave empty to start.
- Publication types (`publication_types`, text): Only return papers of these types. Leave empty for every type. A paper matching any of the chosen types is included. One or more of: `Review`, `JournalArticle`, `CaseReport`, `ClinicalTrial`, `Conference`, `Dataset`, `Editorial`, `LettersAndComments`, `MetaAnalysis`, `News`, and 3 more.
- Fields of study (`fields_of_study`, text): Only return papers in these fields of study. Leave empty for every field. A paper matching any of the chosen fields is included. One or more of: `Computer Science`, `Medicine`, `Chemistry`, `Biology`, `Materials Science`, `Physics`, `Geology`, `Psychology`, `Art`, `History`, and 13 more.
- Venues (`venues`, list): Only return papers published in these journals or conferences. Full names and ISO4 abbreviations both work, for example 'Nature' or 'N. Engl. J. Med.'.
- Open access only (`open_access_only`, true/false): Only return papers with a freely downloadable PDF. Turn this on when the workflow goes on to read the full text.
- Minimum citations (`min_citation_count`, number): Only return papers cited at least this many times. A quick way to filter for work the field has actually taken up. From 0 to 1000000.
- Published from year (`year_from`, number): Only return papers published in or after this year. Can be used on its own for an open-ended range. From 1000 to 2999.
- Published up to year (`year_to`, number): Only return papers published in or before this year. Can be used on its own for an open-ended range. From 1000 to 2999.
- Published on or after (`published_from`, date): Only return papers published on or after this date. Use this rather than the year boxes when the window is narrower than a year; note that papers with no exact publication date on record are excluded.
- Published on or before (`published_to`, date): Only return papers published on or before this date. Papers with no exact publication date on record are excluded.

**Outputs**

- `has_more` (true/false)
- `next_token` (text)
- `result_count` (number)
- `results` (list)
- `total_results` (number)

**Example output**

```json
{
  "has_more": false,
  "next_token": null,
  "result_count": 1,
  "results": [
    {
      "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
      "authors": [
        {
          "authorId": "145585097",
          "name": "Bridger Waleed Ammar"
        },
        {
          "authorId": "3458736",
          "name": "Dirk Groeneveld"
        }
      ],
      "citationCount": 452,
      "externalIds": {
        "ArXiv": "1805.02262",
        "CorpusId": 19170988,
        "DOI": "10.18653/v1/N18-3011"
      },
      "fieldsOfStudy": [
        "Computer Science"
      ],
      "influentialCitationCount": 51,
      "isOpenAccess": true,
      "openAccessPdf": {
        "license": "CCBY",
        "status": "GOLD",
        "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
      },
      "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
      "publicationDate": "2018-05-06",
      "publicationTypes": [
        "JournalArticle",
        "Conference"
      ],
      "referenceCount": 26,
      "title": "Construction of the Literature Graph in Semantic Scholar",
      "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
      "venue": "North American Chapter of the Association for Computational Linguistics",
      "year": 2018
    }
  ],
  "total_results": 55
}
```

### Find paper by title

Find the one paper whose title is closest to a phrase. Use it to turn a citation, a reading-list line or a half-remembered title into a real paper record. When nothing matches you get 'matched: false' rather than an error, so a reference-checking workflow can branch on it.

**Inputs**

- Title (`query`, text, required): The paper title, or as much of it as you have.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 13 more.
- Publication types (`publication_types`, text): Only return papers of these types. Leave empty for every type. A paper matching any of the chosen types is included. One or more of: `Review`, `JournalArticle`, `CaseReport`, `ClinicalTrial`, `Conference`, `Dataset`, `Editorial`, `LettersAndComments`, `MetaAnalysis`, `News`, and 3 more.
- Fields of study (`fields_of_study`, text): Only return papers in these fields of study. Leave empty for every field. A paper matching any of the chosen fields is included. One or more of: `Computer Science`, `Medicine`, `Chemistry`, `Biology`, `Materials Science`, `Physics`, `Geology`, `Psychology`, `Art`, `History`, and 13 more.
- Venues (`venues`, list): Only return papers published in these journals or conferences. Full names and ISO4 abbreviations both work, for example 'Nature' or 'N. Engl. J. Med.'.
- Open access only (`open_access_only`, true/false): Only return papers with a freely downloadable PDF. Turn this on when the workflow goes on to read the full text.
- Minimum citations (`min_citation_count`, number): Only return papers cited at least this many times. A quick way to filter for work the field has actually taken up. From 0 to 1000000.
- Published from year (`year_from`, number): Only return papers published in or after this year. Can be used on its own for an open-ended range. From 1000 to 2999.
- Published up to year (`year_to`, number): Only return papers published in or before this year. Can be used on its own for an open-ended range. From 1000 to 2999.
- Published on or after (`published_from`, date): Only return papers published on or after this date. Use this rather than the year boxes when the window is narrower than a year; note that papers with no exact publication date on record are excluded.
- Published on or before (`published_to`, date): Only return papers published on or before this date. Papers with no exact publication date on record are excluded.

**Outputs**

- `match_score` (number)
- `matched` (true/false)
- `paper` (object)

**Example output**

```json
{
  "match_score": 178.4768,
  "matched": true,
  "paper": {
    "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
    "authors": [
      {
        "authorId": "145585097",
        "name": "Bridger Waleed Ammar"
      },
      {
        "authorId": "3458736",
        "name": "Dirk Groeneveld"
      }
    ],
    "citationCount": 452,
    "externalIds": {
      "ArXiv": "1805.02262",
      "CorpusId": 19170988,
      "DOI": "10.18653/v1/N18-3011"
    },
    "fieldsOfStudy": [
      "Computer Science"
    ],
    "influentialCitationCount": 51,
    "isOpenAccess": true,
    "openAccessPdf": {
      "license": "CCBY",
      "status": "GOLD",
      "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
    },
    "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
    "publicationDate": "2018-05-06",
    "publicationTypes": [
      "JournalArticle",
      "Conference"
    ],
    "referenceCount": 26,
    "title": "Construction of the Literature Graph in Semantic Scholar",
    "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
    "venue": "North American Chapter of the Association for Computational Linguistics",
    "year": 2018
  }
}
```

### Get a paper's authors

List the authors of a paper with their full profiles: affiliation, homepage, how many papers they have published, how often they are cited and their h-index. More than the names you get from the paper record itself.

**Inputs**

- Paper (`paper_id`, text, required): The paper to look up. Accepts a Semantic Scholar paper page URL or ID, a DOI, an arXiv URL or 'ARXIV:' ID, or any of the API's other prefixed forms: CorpusId:, MAG:, ACL:, PMID:, PMCID:.
- Details to return (`fields`, text): Which details to return for each author. Leave empty for the usual set (name, affiliations, homepage, paper and citation counts, h-index). 'Their papers' returns every paper on the profile, which can be thousands of records. One or more of: `authorId` (Author ID), `externalIds` (External IDs (ORCID, DBLP…)), `url` (Semantic Scholar page URL), `name`, `affiliations`, `homepage`, `paperCount` (Number of papers), `citationCount` (Number of citations), `hIndex` (h-index), `papers` (Their papers (whole list)).
- Number of results (`limit`, number): How many authors to return (1–1,000). Defaults to 10. From 1 to 1000.
- Skip (`offset`, number): How many results to skip, for paging. Use the 'next_offset' value from a previous run to fetch the following page. From 0 to 10000000.

**Outputs**

- `has_more` (true/false)
- `next_offset` (number)
- `offset` (number)
- `paper_id` (text)
- `result_count` (number)
- `results` (list)
- `total_results` (number)

**Example output**

```json
{
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "paper_id": "649def34f8be52c8b66281af98ae884c09aef38b",
  "result_count": 1,
  "results": [
    {
      "affiliations": [
        "Allen Institute for AI"
      ],
      "authorId": "1741101",
      "citationCount": 43671,
      "externalIds": {
        "DBLP": [
          "Oren Etzioni"
        ]
      },
      "hIndex": 88,
      "homepage": null,
      "name": "Oren Etzioni",
      "paperCount": 259,
      "url": "https://www.semanticscholar.org/author/1741101"
    }
  ],
  "total_results": 4498
}
```

### Get a paper's references

List the papers a given paper cites (its bibliography, resolved to real paper records) with the sentences each one was cited in and what it was cited for. Use it to walk backwards through the literature from a paper you already have.

**Inputs**

- Paper (`paper_id`, text, required): The paper to look up. Accepts a Semantic Scholar paper page URL or ID, a DOI, an arXiv URL or 'ARXIV:' ID, or any of the API's other prefixed forms: CorpusId:, MAG:, ACL:, PMID:, PMCID:.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 11 more.
- Number of results (`limit`, number): How many references to return (1–1,000). Defaults to 10. From 1 to 1000.
- Skip (`offset`, number): How many results to skip, for paging. Use the 'next_offset' value from a previous run to fetch the following page. From 0 to 10000000.

**Outputs**

- `has_more` (true/false)
- `next_offset` (number)
- `offset` (number)
- `paper_id` (text)
- `references` (list)
- `result_count` (number)
- `total_results` (number)

**Example output**

```json
{
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "paper_id": "649def34f8be52c8b66281af98ae884c09aef38b",
  "references": [
    {
      "contexts": [
        "In Siegel et al. (2018), we induced labels."
      ],
      "intents": [
        "background"
      ],
      "is_influential": false,
      "paper": {
        "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
        "authors": [
          {
            "authorId": "145585097",
            "name": "Bridger Waleed Ammar"
          },
          {
            "authorId": "3458736",
            "name": "Dirk Groeneveld"
          }
        ],
        "citationCount": 452,
        "externalIds": {
          "ArXiv": "1805.02262",
          "CorpusId": 19170988,
          "DOI": "10.18653/v1/N18-3011"
        },
        "fieldsOfStudy": [
          "Computer Science"
        ],
        "influentialCitationCount": 51,
        "isOpenAccess": true,
        "openAccessPdf": {
          "license": "CCBY",
          "status": "GOLD",
          "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
        },
        "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
        "publicationDate": "2018-05-06",
        "publicationTypes": [
          "JournalArticle",
          "Conference"
        ],
        "referenceCount": 26,
        "title": "Construction of the Literature Graph in Semantic Scholar",
        "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
        "venue": "North American Chapter of the Association for Computational Linguistics",
        "year": 2018
      }
    }
  ],
  "result_count": 1,
  "total_results": 4498
}
```

### Get an author's papers

List everything an author has published, optionally narrowed to a publication-date window. Use it to build a publication list, or to watch a researcher for new work.

**Inputs**

- Author (`author_id`, text, required): The author to look up: a Semantic Scholar author ID, or their author page URL. Search authors first if you only have a name; names are not unique.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 11 more.
- Number of results (`limit`, number): How many papers to return (1–1,000). Defaults to 10. From 1 to 1000.
- Skip (`offset`, number): How many results to skip, for paging. Use the 'next_offset' value from a previous run to fetch the following page. From 0 to 10000000.
- Published on or after (`published_from`, date): Only return papers published on or after this date. Use this rather than the year boxes when the window is narrower than a year; note that papers with no exact publication date on record are excluded.
- Published on or before (`published_to`, date): Only return papers published on or before this date. Papers with no exact publication date on record are excluded.

**Outputs**

- `author_id` (text)
- `has_more` (true/false)
- `next_offset` (number)
- `offset` (number)
- `result_count` (number)
- `results` (list)
- `total_results` (number)

**Example output**

```json
{
  "author_id": "1741101",
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "result_count": 1,
  "results": [
    {
      "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
      "authors": [
        {
          "authorId": "145585097",
          "name": "Bridger Waleed Ammar"
        },
        {
          "authorId": "3458736",
          "name": "Dirk Groeneveld"
        }
      ],
      "citationCount": 452,
      "externalIds": {
        "ArXiv": "1805.02262",
        "CorpusId": 19170988,
        "DOI": "10.18653/v1/N18-3011"
      },
      "fieldsOfStudy": [
        "Computer Science"
      ],
      "influentialCitationCount": 51,
      "isOpenAccess": true,
      "openAccessPdf": {
        "license": "CCBY",
        "status": "GOLD",
        "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
      },
      "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
      "publicationDate": "2018-05-06",
      "publicationTypes": [
        "JournalArticle",
        "Conference"
      ],
      "referenceCount": 26,
      "title": "Construction of the Literature Graph in Semantic Scholar",
      "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
      "venue": "North American Chapter of the Association for Computational Linguistics",
      "year": 2018
    }
  ],
  "total_results": 4498
}
```

### Get author

Get one author's profile: name, affiliations, homepage, how many papers they have published, how often they are cited, and their h-index.

**Inputs**

- Author (`author_id`, text, required): The author to look up: a Semantic Scholar author ID, or their author page URL. Search authors first if you only have a name; names are not unique.
- Details to return (`fields`, text): Which details to return for each author. Leave empty for the usual set (name, affiliations, homepage, paper and citation counts, h-index). 'Their papers' returns every paper on the profile, which can be thousands of records. One or more of: `authorId` (Author ID), `externalIds` (External IDs (ORCID, DBLP…)), `url` (Semantic Scholar page URL), `name`, `affiliations`, `homepage`, `paperCount` (Number of papers), `citationCount` (Number of citations), `hIndex` (h-index), `papers` (Their papers (whole list)).

**Outputs**

- `author` (object)

**Example output**

```json
{
  "author": {
    "affiliations": [
      "Allen Institute for AI"
    ],
    "authorId": "1741101",
    "citationCount": 43671,
    "externalIds": {
      "DBLP": [
        "Oren Etzioni"
      ]
    },
    "hIndex": 88,
    "homepage": null,
    "name": "Oren Etzioni",
    "paperCount": 259,
    "url": "https://www.semanticscholar.org/author/1741101"
  }
}
```

### Get many authors

Look up as many as 500 author profiles in a single request, for a lab roster, a programme committee, or the author list of a paper you already fetched. IDs that don't resolve come back listed under 'not_found'.

**Inputs**

- Authors (`author_ids`, list, required): Up to 500 Semantic Scholar author IDs, or their author page URLs.
- Details to return (`fields`, text): Which details to return for each author. Leave empty for the usual set (name, affiliations, homepage, paper and citation counts, h-index). 'Their papers' returns every paper on the profile, which can be thousands of records. One or more of: `authorId` (Author ID), `externalIds` (External IDs (ORCID, DBLP…)), `url` (Semantic Scholar page URL), `name`, `affiliations`, `homepage`, `paperCount` (Number of papers), `citationCount` (Number of citations), `hIndex` (h-index), `papers` (Their papers (whole list)).

**Outputs**

- `authors` (list)
- `found_count` (number)
- `not_found` (list)
- `requested_count` (number)

**Example output**

```json
{
  "authors": [
    {
      "affiliations": [
        "Allen Institute for AI"
      ],
      "authorId": "1741101",
      "citationCount": 43671,
      "externalIds": {
        "DBLP": [
          "Oren Etzioni"
        ]
      },
      "hIndex": 88,
      "homepage": null,
      "name": "Oren Etzioni",
      "paperCount": 259,
      "url": "https://www.semanticscholar.org/author/1741101"
    }
  ],
  "found_count": 1,
  "not_found": [
    "0"
  ],
  "requested_count": 2
}
```

### Get many papers

Look up as many as 500 papers in a single request: the right way to enrich a reading list, a bibliography, or a column of DOIs from a spreadsheet. IDs that don't resolve come back listed under 'not_found' instead of leaving gaps in the results.

**Inputs**

- Papers (`paper_ids`, list, required): Up to 500 papers. Each one can be a Semantic Scholar URL or ID, a DOI, an arXiv ID, or another prefixed form; they can be mixed freely in one list.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 13 more.

**Outputs**

- `found_count` (number)
- `not_found` (list)
- `papers` (list)
- `requested_count` (number)

**Example output**

```json
{
  "found_count": 1,
  "not_found": [
    "DOI:10.9999/missing"
  ],
  "papers": [
    {
      "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
      "authors": [
        {
          "authorId": "145585097",
          "name": "Bridger Waleed Ammar"
        },
        {
          "authorId": "3458736",
          "name": "Dirk Groeneveld"
        }
      ],
      "citationCount": 452,
      "externalIds": {
        "ArXiv": "1805.02262",
        "CorpusId": 19170988,
        "DOI": "10.18653/v1/N18-3011"
      },
      "fieldsOfStudy": [
        "Computer Science"
      ],
      "influentialCitationCount": 51,
      "isOpenAccess": true,
      "openAccessPdf": {
        "license": "CCBY",
        "status": "GOLD",
        "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
      },
      "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
      "publicationDate": "2018-05-06",
      "publicationTypes": [
        "JournalArticle",
        "Conference"
      ],
      "referenceCount": 26,
      "title": "Construction of the Literature Graph in Semantic Scholar",
      "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
      "venue": "North American Chapter of the Association for Computational Linguistics",
      "year": 2018
    }
  ],
  "requested_count": 2
}
```

### Get paper

Get everything Semantic Scholar knows about one paper: abstract, authors, venue, citation counts, the open-access PDF link, a ready-made BibTeX entry, and the AI-written one-sentence TLDR. Takes a Semantic Scholar URL or ID, a DOI, an arXiv ID, or a PubMed ID.

**Inputs**

- Paper (`paper_id`, text, required): The paper to look up. Accepts a Semantic Scholar paper page URL or ID, a DOI, an arXiv URL or 'ARXIV:' ID, or any of the API's other prefixed forms: CorpusId:, MAG:, ACL:, PMID:, PMCID:.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 15 more.

**Outputs**

- `paper` (object)

**Example output**

```json
{
  "paper": {
    "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
    "authors": [
      {
        "authorId": "145585097",
        "name": "Bridger Waleed Ammar"
      },
      {
        "authorId": "3458736",
        "name": "Dirk Groeneveld"
      }
    ],
    "citationCount": 452,
    "externalIds": {
      "ArXiv": "1805.02262",
      "CorpusId": 19170988,
      "DOI": "10.18653/v1/N18-3011"
    },
    "fieldsOfStudy": [
      "Computer Science"
    ],
    "influentialCitationCount": 51,
    "isOpenAccess": true,
    "openAccessPdf": {
      "license": "CCBY",
      "status": "GOLD",
      "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
    },
    "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
    "publicationDate": "2018-05-06",
    "publicationTypes": [
      "JournalArticle",
      "Conference"
    ],
    "referenceCount": 26,
    "title": "Construction of the Literature Graph in Semantic Scholar",
    "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
    "venue": "North American Chapter of the Association for Computational Linguistics",
    "year": 2018
  }
}
```

### Get papers citing this one

List the papers that cite a given paper, newest work included, along with why they cite it: the sentences the citation appears in, what it was cited for (background, method, or result), and whether Semantic Scholar judged it an influential citation. Use it to track who is building on a piece of work.

**Inputs**

- Paper (`paper_id`, text, required): The paper to look up. Accepts a Semantic Scholar paper page URL or ID, a DOI, an arXiv URL or 'ARXIV:' ID, or any of the API's other prefixed forms: CorpusId:, MAG:, ACL:, PMID:, PMCID:.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 11 more.
- Number of results (`limit`, number): How many citing papers to return (1–1,000). Defaults to 10. From 1 to 1000.
- Skip (`offset`, number): How many results to skip, for paging. Use the 'next_offset' value from a previous run to fetch the following page. From 0 to 10000000.
- Published on or after (`published_from`, date): Only return papers published on or after this date. Use this rather than the year boxes when the window is narrower than a year; note that papers with no exact publication date on record are excluded.
- Published on or before (`published_to`, date): Only return papers published on or before this date. Papers with no exact publication date on record are excluded.

**Outputs**

- `citations` (list)
- `has_more` (true/false)
- `next_offset` (number)
- `offset` (number)
- `paper_id` (text)
- `result_count` (number)
- `total_results` (number)

**Example output**

```json
{
  "citations": [
    {
      "contexts": [
        "Semantic Scholar employs AI to classify citation intent."
      ],
      "intents": [
        "background"
      ],
      "is_influential": false,
      "paper": {
        "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
        "authors": [
          {
            "authorId": "145585097",
            "name": "Bridger Waleed Ammar"
          },
          {
            "authorId": "3458736",
            "name": "Dirk Groeneveld"
          }
        ],
        "citationCount": 452,
        "externalIds": {
          "ArXiv": "1805.02262",
          "CorpusId": 19170988,
          "DOI": "10.18653/v1/N18-3011"
        },
        "fieldsOfStudy": [
          "Computer Science"
        ],
        "influentialCitationCount": 51,
        "isOpenAccess": true,
        "openAccessPdf": {
          "license": "CCBY",
          "status": "GOLD",
          "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
        },
        "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
        "publicationDate": "2018-05-06",
        "publicationTypes": [
          "JournalArticle",
          "Conference"
        ],
        "referenceCount": 26,
        "title": "Construction of the Literature Graph in Semantic Scholar",
        "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
        "venue": "North American Chapter of the Association for Computational Linguistics",
        "year": 2018
      }
    }
  ],
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "paper_id": "649def34f8be52c8b66281af98ae884c09aef38b",
  "result_count": 1,
  "total_results": 4498
}
```

### List dataset releases

List every published snapshot of the Semantic Scholar corpus. A release is a full weekly dump of the whole graph, named by its date; the newest one is what 'latest' refers to in the other dataset actions.

**Inputs**: None.

**Outputs**

- `latest_release` (text)
- `release_count` (number)
- `releases` (list)

**Example output**

```json
{
  "latest_release": "2026-08-11",
  "release_count": 3,
  "releases": [
    "2024-12-24",
    "2025-01-07",
    "2026-08-11"
  ]
}
```

### List datasets in a release

List the datasets in one corpus snapshot (papers, abstracts, authors, citations, embeddings, TLDRs, the S2ORC full text), each with the record count and file size it holds, plus the release's licence terms. Use it to see what the bulk corpus contains and how big a download it would be.

**Inputs**

- Release (`release_id`, text): Which corpus snapshot to use. Defaults to the latest release, which is refreshed weekly.

**Outputs**

- `dataset_count` (number)
- `dataset_names` (list)
- `datasets` (list)
- `readme` (text)
- `release_id` (text)

**Example output**

```json
{
  "dataset_count": 1,
  "dataset_names": [
    "abstracts"
  ],
  "datasets": [
    {
      "description": "Paper abstract text, where available. 100M records in 30 1.8GB files.",
      "name": "abstracts"
    }
  ],
  "readme": "Semantic Scholar Academic Graph Datasets\u2026",
  "release_id": "2026-08-11"
}
```

### Recommend papers from a reading list

Recommend papers from examples: a list of papers to find more like, and optionally a list to steer away from. Feed it the papers a team has saved and it becomes a running literature feed.

**Inputs**

- Papers to find more like (`positive_paper_ids`, list, required): The papers the recommendations should resemble. Any of the usual ID forms.
- Papers to steer away from (`negative_paper_ids`, list): Optional. Papers the recommendations should look less like, useful for pushing a neighbouring sub-field out of the results.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 11 more.
- Number of results (`limit`, number): How many papers to return (1–500). Defaults to 10. From 1 to 500.

**Outputs**

- `negative_count` (number)
- `positive_count` (number)
- `recommended_papers` (list)
- `result_count` (number)

**Example output**

```json
{
  "negative_count": 1,
  "positive_count": 1,
  "recommended_papers": [
    {
      "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
      "authors": [
        {
          "authorId": "145585097",
          "name": "Bridger Waleed Ammar"
        },
        {
          "authorId": "3458736",
          "name": "Dirk Groeneveld"
        }
      ],
      "citationCount": 452,
      "externalIds": {
        "ArXiv": "1805.02262",
        "CorpusId": 19170988,
        "DOI": "10.18653/v1/N18-3011"
      },
      "fieldsOfStudy": [
        "Computer Science"
      ],
      "influentialCitationCount": 51,
      "isOpenAccess": true,
      "openAccessPdf": {
        "license": "CCBY",
        "status": "GOLD",
        "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
      },
      "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
      "publicationDate": "2018-05-06",
      "publicationTypes": [
        "JournalArticle",
        "Conference"
      ],
      "referenceCount": 26,
      "title": "Construction of the Literature Graph in Semantic Scholar",
      "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
      "venue": "North American Chapter of the Association for Computational Linguistics",
      "year": 2018
    }
  ],
  "result_count": 1
}
```

### Recommend papers like this one

Given one paper, recommend related ones. Pick the recent pool to see what has come out lately across every field, or the computer science pool to search all of CS regardless of date.

**Inputs**

- Paper (`paper_id`, text, required): The paper to look up. Accepts a Semantic Scholar paper page URL or ID, a DOI, an arXiv URL or 'ARXIV:' ID, or any of the API's other prefixed forms: CorpusId:, MAG:, ACL:, PMID:, PMCID:.
- Recommend from (`pool`, text): Which body of papers to draw recommendations from. Defaults to recent papers. One of: `recent` (Recent papers, any field of study), `all-cs` (All computer science papers, any date).
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 11 more.
- Number of results (`limit`, number): How many papers to return (1–500). Defaults to 10. From 1 to 500.

**Outputs**

- `paper_id` (text)
- `recommended_papers` (list)
- `result_count` (number)

**Example output**

```json
{
  "paper_id": "649def34f8be52c8b66281af98ae884c09aef38b",
  "recommended_papers": [
    {
      "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
      "authors": [
        {
          "authorId": "145585097",
          "name": "Bridger Waleed Ammar"
        },
        {
          "authorId": "3458736",
          "name": "Dirk Groeneveld"
        }
      ],
      "citationCount": 452,
      "externalIds": {
        "ArXiv": "1805.02262",
        "CorpusId": 19170988,
        "DOI": "10.18653/v1/N18-3011"
      },
      "fieldsOfStudy": [
        "Computer Science"
      ],
      "influentialCitationCount": 51,
      "isOpenAccess": true,
      "openAccessPdf": {
        "license": "CCBY",
        "status": "GOLD",
        "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
      },
      "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
      "publicationDate": "2018-05-06",
      "publicationTypes": [
        "JournalArticle",
        "Conference"
      ],
      "referenceCount": 26,
      "title": "Construction of the Literature Graph in Semantic Scholar",
      "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
      "venue": "North American Chapter of the Association for Computational Linguistics",
      "year": 2018
    }
  ],
  "result_count": 1
}
```

### Search authors

Find author profiles by name. Names are not unique and one researcher can have more than one profile, so the paper and citation counts that come back are how you tell which profile is the one you want before looking up their work.

**Inputs**

- Author name (`query`, text, required): The name to search for. Hyphenated terms find nothing; replace a hyphen with a space.
- Details to return (`fields`, text): Which details to return for each author. Leave empty for the usual set (name, affiliations, homepage, paper and citation counts, h-index). 'Their papers' returns every paper on the profile, which can be thousands of records. One or more of: `authorId` (Author ID), `externalIds` (External IDs (ORCID, DBLP…)), `url` (Semantic Scholar page URL), `name`, `affiliations`, `homepage`, `paperCount` (Number of papers), `citationCount` (Number of citations), `hIndex` (h-index), `papers` (Their papers (whole list)).
- Number of results (`limit`, number): How many authors to return (1–1,000). Defaults to 10. From 1 to 1000.
- Skip (`offset`, number): How many results to skip, for paging. Use the 'next_offset' value from a previous run. Search paging stops at 1,000 results; use bulk search to go deeper. From 0 to 1000.

**Outputs**

- `has_more` (true/false)
- `next_offset` (number)
- `offset` (number)
- `result_count` (number)
- `results` (list)
- `total_results` (number)

**Example output**

```json
{
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "result_count": 1,
  "results": [
    {
      "affiliations": [
        "Allen Institute for AI"
      ],
      "authorId": "1741101",
      "citationCount": 43671,
      "externalIds": {
        "DBLP": [
          "Oren Etzioni"
        ]
      },
      "hIndex": 88,
      "homepage": null,
      "name": "Oren Etzioni",
      "paperCount": 259,
      "url": "https://www.semanticscholar.org/author/1741101"
    }
  ],
  "total_results": 4498
}
```

### Search papers

Search Semantic Scholar's 200-million-paper corpus by relevance and filter the results by year, publication date, venue, field of study, publication type, citation count, or open-access availability. This is the everyday search: it ranks by how well a paper matches the words you typed. Paging stops at 1,000 results; use 'Fetch papers in bulk' to pull an entire filtered set.

**Inputs**

- Search terms (`query`, text, required): Plain words to search for. There is no special query syntax here, and hyphenated terms find nothing; write 'covid 19', not 'covid-19'.
- Details to return (`fields`, text): Which details to return for each paper. Leave empty for the usual set (title, abstract, year, venue, authors, citation counts, open-access link and IDs). Every extra field costs response size, so pick deliberately on large result sets. One or more of: `paperId` (Paper ID), `corpusId` (Corpus ID), `externalIds` (External IDs (DOI, arXiv, PubMed…)), `url` (Semantic Scholar page URL), `title`, `abstract`, `venue` (Venue name), `publicationVenue` (Venue (full record)), `year`, `publicationDate` (Publication date), and 13 more.
- Publication types (`publication_types`, text): Only return papers of these types. Leave empty for every type. A paper matching any of the chosen types is included. One or more of: `Review`, `JournalArticle`, `CaseReport`, `ClinicalTrial`, `Conference`, `Dataset`, `Editorial`, `LettersAndComments`, `MetaAnalysis`, `News`, and 3 more.
- Fields of study (`fields_of_study`, text): Only return papers in these fields of study. Leave empty for every field. A paper matching any of the chosen fields is included. One or more of: `Computer Science`, `Medicine`, `Chemistry`, `Biology`, `Materials Science`, `Physics`, `Geology`, `Psychology`, `Art`, `History`, and 13 more.
- Venues (`venues`, list): Only return papers published in these journals or conferences. Full names and ISO4 abbreviations both work, for example 'Nature' or 'N. Engl. J. Med.'.
- Open access only (`open_access_only`, true/false): Only return papers with a freely downloadable PDF. Turn this on when the workflow goes on to read the full text.
- Minimum citations (`min_citation_count`, number): Only return papers cited at least this many times. A quick way to filter for work the field has actually taken up. From 0 to 1000000.
- Published from year (`year_from`, number): Only return papers published in or after this year. Can be used on its own for an open-ended range. From 1000 to 2999.
- Published up to year (`year_to`, number): Only return papers published in or before this year. Can be used on its own for an open-ended range. From 1000 to 2999.
- Published on or after (`published_from`, date): Only return papers published on or after this date. Use this rather than the year boxes when the window is narrower than a year; note that papers with no exact publication date on record are excluded.
- Published on or before (`published_to`, date): Only return papers published on or before this date. Papers with no exact publication date on record are excluded.
- Number of results (`limit`, number): How many papers to return (1–100). Defaults to 10. From 1 to 100.
- Skip (`offset`, number): How many results to skip, for paging. Use the 'next_offset' value from a previous run. Search paging stops at 1,000 results; use bulk search to go deeper. From 0 to 1000.

**Outputs**

- `has_more` (true/false)
- `next_offset` (number)
- `offset` (number)
- `result_count` (number)
- `results` (list)
- `total_results` (number)

**Example output**

```json
{
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "result_count": 1,
  "results": [
    {
      "abstract": "We describe a deployed scalable system for organizing published scientific literature into a heterogeneous graph to facilitate algorithmic manipulation and discovery.",
      "authors": [
        {
          "authorId": "145585097",
          "name": "Bridger Waleed Ammar"
        },
        {
          "authorId": "3458736",
          "name": "Dirk Groeneveld"
        }
      ],
      "citationCount": 452,
      "externalIds": {
        "ArXiv": "1805.02262",
        "CorpusId": 19170988,
        "DOI": "10.18653/v1/N18-3011"
      },
      "fieldsOfStudy": [
        "Computer Science"
      ],
      "influentialCitationCount": 51,
      "isOpenAccess": true,
      "openAccessPdf": {
        "license": "CCBY",
        "status": "GOLD",
        "url": "https://www.aclweb.org/anthology/N18-3011.pdf"
      },
      "paperId": "649def34f8be52c8b66281af98ae884c09aef38b",
      "publicationDate": "2018-05-06",
      "publicationTypes": [
        "JournalArticle",
        "Conference"
      ],
      "referenceCount": 26,
      "title": "Construction of the Literature Graph in Semantic Scholar",
      "url": "https://www.semanticscholar.org/paper/649def34f8be52c8b66281af98ae884c09aef38b",
      "venue": "North American Chapter of the Association for Computational Linguistics",
      "year": 2018
    }
  ],
  "total_results": 4498
}
```

### Suggest paper titles

Suggest paper titles for a partial query (the type-ahead behind Semantic Scholar's own search box). Each suggestion is an ID, a title and an 'authors, year' line, which is enough to show someone a list and then look up whichever one they pick.

**Inputs**

- Partial title (`query`, text, required): The start of a title. Only the first 100 characters are used.

**Outputs**

- `matches` (list)
- `result_count` (number)

**Example output**

```json
{
  "matches": [
    {
      "authorsYear": "Ammar et al., 2018",
      "id": "649def34f8be52c8b66281af98ae884c09aef38b",
      "title": "Construction of the Literature Graph in Semantic Scholar"
    }
  ],
  "result_count": 1
}
```
