jstor.org APIjstor.org ↗
Access JSTOR's academic content via API. Search articles, retrieve full metadata, browse journal issues, and list subject categories across millions of scholarly works.
curl -X GET 'https://api.parse.bot/scraper/b54cfcb7-298c-4413-9f6b-8f47f56ef1d1/search?page=2&sort=rel&query=machine+learning' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for articles, books, and other content on JSTOR. Returns paginated results grouped by relevance or date.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order: 'rel' for relevance, 'new' for newest, 'old' for oldest. |
| queryrequired | string | Search query string. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search query echoed back",
"results": "array of objects with id, doi, title, authors, type, stable_url, publication_year, publisher, citation, is_open_access, has_access",
"total_results": "integer, total number of results"
},
"sample": {
"data": {
"page": 1,
"query": "climate change",
"results": [
{
"id": "14f6392b-b9d2-31e3-887f-6e9424215c96",
"doi": "10.7249/j.ctt17mvhfj.13",
"type": "Book Chapter",
"title": "Climate Change",
"authors": [
"James Dobbins",
"Richard H. Solomon",
"Michael S. Chase"
],
"citation": null,
"publisher": [
"RAND Corporation"
],
"has_access": true,
"stable_url": "https://www.jstor.org/stable/10.7249/j.ctt17mvhfj.13",
"is_open_access": true,
"publication_year": 2015
}
],
"total_results": 0
},
"status": "success"
}
}About the jstor.org API
The JSTOR API provides 5 endpoints covering academic article search, full article metadata, journal and issue lookup, and subject browsing. The search endpoint returns paginated results with fields like DOI, authors, publisher, citation, open-access status, and access rights, making it straightforward to query JSTOR's catalog of peer-reviewed research programmatically.
Search and Discovery
The search endpoint accepts a required query string and optional page and sort parameters (rel for relevance, new for newest, old for oldest). Each result object includes id, doi, title, authors, type, stable_url, publication_year, publisher, citation, is_open_access, and has_access. The total_results field lets you paginate through the full result set. This is typically the entry point for locating specific content before passing identifiers to other endpoints.
Article and Issue Detail
The get_article endpoint takes a JSTOR UUID (obtainable from search results) and returns extended metadata: abstract, rights, source, journal, year, type, and a full authors array. Note that some content types such as book chapters may not be available and will return an upstream error. The get_issue endpoint accepts a DOI-style stable ID (e.g. 10.2307/i40228945) and returns the full table of contents for that journal issue, including volume, issue, date, publisher, and an articles array with per-article id, doi, title, authors, and pages.
Journal Metadata and Subject Browsing
The get_journal endpoint retrieves metadata for a specific journal by its slug identifier, returning title, issn, eissn, publisher, and description. The browse_subjects endpoint requires no inputs and returns the complete list of JSTOR subject categories, each with a name, code, and url. This is useful for building subject-filtered browsing flows or mapping JSTOR's taxonomy to your own classification system.
- Building a literature discovery tool that queries JSTOR by topic and surfaces open-access articles via the
is_open_accessfield - Generating bibliographic citations for academic papers using the
citation,doi,authors, andpublication_yearfields from search results - Populating a journal directory with ISSN, publisher, and description data from the
get_journalendpoint - Constructing a table-of-contents reader for a specific journal issue using the
get_issuearticles array withpagesanddoi - Mapping JSTOR's subject taxonomy to an internal classification system using
browse_subjectscodes and names - Checking access rights for a set of article IDs using the
has_accessandis_open_accessfields in search results - Aggregating article abstracts and metadata by author name across multiple search pages for academic profiling
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does JSTOR have an official developer API?+
What does the `search` endpoint return beyond basic title and author data?+
doi, stable_url, publication_year, publisher, citation, type (article, book chapter, etc.), is_open_access, and has_access. The has_access and is_open_access flags are particularly useful for filtering results to content a user can actually read.Are full article PDFs or full text available through this API?+
Are there any content types that may not work with `get_article`?+
search endpoint's type field can help you identify content type before making a detail call.Does the API support filtering search results by discipline, date range, or journal?+
search endpoint supports sorting by relevance, newest, or oldest via the sort parameter, but does not expose filters for discipline, journal name, or date range directly. The browse_subjects endpoint returns subject codes and URLs that can inform query construction. You can fork this API on Parse and revise it to add subject or journal-scoped filtering as a dedicated endpoint.