# J-STAGE Scraper: 学術論文・引用検索 Papers & Citation Leaderboard (`getascraper/jstage-scraper`) Actor

Search J-STAGE (科学技術情報発信・流通総合システム), Japan's academic journal platform, for a ranked Author/Journal Leaderboard showing who leads a research topic, plus full per-article export (authors, journal, DOI, abstract, citations) and a citation-change monitor. No login or API key needed.

- **URL**: https://apify.com/getascraper/jstage-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.63 / 1,000 articles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## J-STAGE Scraper: 学術論文・引用検索 Research Leaderboard

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#FDF0F0;border:1px solid #E8B4B8;border-top:4px solid #BC002D;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">See who actually leads a research topic, not just who published in it</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Search J-STAGE (科学技術情報発信・流通総合システム), Japan's national academic journal platform, and get a ranked Author Leaderboard and Journal Leaderboard built from the same results, plus full article data, abstracts, citation counts, and a citation-change tracker. No login required.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E8B4B8;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#BC002D">🏆 Author Leaderboard</span><br>
<span style="font-size:12px;color:#57534E">Ranks the real researchers publishing in your topic by paper count, with total and average citations once enrichment is on.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E8B4B8;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#BC002D">📚 Journal Leaderboard</span><br>
<span style="font-size:12px;color:#57534E">Ranks journals by paper count and average citation impact, so you know where a field actually gets published.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E8B4B8;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#BC002D">📄 Full article data</span><br>
<span style="font-size:12px;color:#57534E">Title in English and Japanese, authors, journal, DOI, ISSN, volume/issue, and abstract, with no login needed.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E8B4B8;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#BC002D">🔔 Citation-change tracking</span><br>
<span style="font-size:12px;color:#57534E">Re-check a saved list of articles and see exactly how each one's citation count moved.</span>
</td>
</tr>
</table>

Point this scraper at [J-STAGE](https://www.jstage.jst.go.jp/), Japan's national academic journal platform run by JST, and get back more than a list of matching papers: a ranked view of who leads that research topic and where it gets published.

### 🔍 What does this actor do?

J-STAGE indexes hundreds of thousands of Japanese academic articles across science, medicine, and engineering. Searching it by hand tells you what papers exist. It does not tell you who is the most active or most cited researcher in that topic, or which journals actually carry the field, so most people end up exporting a pile of rows and building that answer themselves in a spreadsheet.

This actor builds the answer for you. Every search computes an **Author Leaderboard** (who is publishing, how much, and where) and a **Journal Leaderboard** (which journals carry the topic and how well their articles are cited), both for free from the same rows the search already fetched. Turn on citation enrichment and both leaderboards also show total and average citations. The one other J-STAGE actor on Apify only returns a flat paper list with no abstract, no citation data, and no leaderboard at all.

### 💡 Who uses this?

- **I run competitive intelligence for a Japanese R\&D team.** I need to know which researchers and labs are actually active in a technology area, not skim a page of paper titles and guess.
- **I'm building a citation-tracking tool.** I need structured author, journal, and citation data I can load straight into my own database, not raw pages to parse myself.
- **I'm scoping a new research area.** I want to see which authors and journals dominate a field before I read a single abstract.
- **I'm tracking specific papers for citation growth.** I want to know the moment a tracked paper's citation count moves, without re-running a full search every time.

### 🚀 How to use

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#FDF0F0;border:1px solid #E8B4B8;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#BC002D;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Search a topic</span><br>
<span style="font-size:12px;color:#57534E">Enter a keyword. J-STAGE's own public index does the searching, no account needed.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FDF0F0;border:1px solid #E8B4B8;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#BC002D;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Get the leaderboard</span><br>
<span style="font-size:12px;color:#57534E">See who's publishing and where, ranked automatically from the same results.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FDF0F0;border:1px solid #E8B4B8;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#BC002D;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Track what changes</span><br>
<span style="font-size:12px;color:#57534E">Turn on citation tracking to watch specific papers, or the search itself, over time.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `query` | string | Yes, unless `trackCitationChanges` is on | Keyword to search on J-STAGE. Powers the search itself and both leaderboard views. |
| `maxResults` | integer | No | How many articles to fetch, from 10 to 25. Default: 15. |
| `dateFrom` | string | No | Only include articles published in or after this year, for example `2020`. |
| `dateTo` | string | No | Only include articles published in or before this year, for example `2024`. |
| `includeEnrichment` | boolean | No | Fetch each article's abstract, cited-by count, and reference count, and fill in the leaderboard citation columns. Off by default. |
| `onlyNewOrChanged` | boolean | No | Only return articles not already returned by a previous run using the same `stateName`. Off by default. |
| `stateName` | string | No | Label for a saved search or citation tracker, so its history persists correctly across runs. Default: `default`. |
| `resetState` | boolean | No | Clear the saved state for `stateName` before this run. Off by default. |
| `trackCitationChanges` | boolean | No | Switch to citation-check mode: re-check citation counts for `savedArticles` instead of running a new search. Off by default. |
| `savedArticles` | array of objects | No | Articles to re-check when `trackCitationChanges` is on. Each entry needs a `sourceUrl` from a previous run's `articleUrl`, and an optional `title`. |
| `proxyConfiguration` | proxy | No | Keep the datacenter default; J-STAGE has no anti-bot protection to work around. |

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `articleTitleEn` | string | null | Article title in English. |
| `articleTitleJa` | string | null | Article title in Japanese. |
| `authors` | array of string | Author names as listed on J-STAGE. |
| `journalNameEn` | string | null | Journal name in English. |
| `journalNameJa` | string | null | Journal name in Japanese. |
| `doi` | string | null | Article DOI, when assigned. |
| `issn` | string | null | Journal ISSN. |
| `volume` | string | null | Journal volume. |
| `number` | string | null | Journal issue number. |
| `pubYear` | string | null | Publication year. |
| `articleUrl` | string | Direct link to the article on J-STAGE. |
| `abstract` | string | absent | Only present with `includeEnrichment` on. |
| `citedByCount` | integer | absent | Only present with `includeEnrichment` on. |
| `referencesCount` | integer | absent | Only present with `includeEnrichment` on. |

**Author Leaderboard view:** `authorName`, `paperCount`, `journals` (which journals this author appears in), `totalCitations` and `avgCitations` (only present once enough of that author's papers went through citation enrichment).

**Journal Leaderboard view:** `journalNameEn`, `journalNameJa`, `paperCount`, `avgCitations` (only present once enough of that journal's papers went through citation enrichment).

You can download any view in JSON, HTML, CSV, or Excel from the Output tab of any run.

### 📤 Sample output

```json
{
    "articleTitleEn": "The relation between the cancer screening rate and the cancer mortality rate in Japan",
    "authors": ["Midori Yoshida", "Kazuya Kondo", "Toshiko Tada"],
    "journalNameEn": "The Journal of Medical Investigation",
    "doi": "10.2152/jmi.57.251",
    "issn": "1343-1420",
    "volume": "57",
    "number": "3,4",
    "pubYear": "2010",
    "articleUrl": "https://www.jstage.jst.go.jp/article/jmi/57/3,4/57_3,4_251/_article",
    "citedByCount": 18,
    "referencesCount": 32
}
```

### 💰 Pricing

Pricing is pay per event. You are charged only for articles actually written to your dataset and for each citation re-check performed. The Author and Journal Leaderboard views cost nothing extra, they are built from articles you already paid for. Empty runs cost nothing. There are no monthly subscriptions or minimum commitments.

Free plan runs are limited in items per run, runs per day, and a short wait between runs. These limits do not apply to paid plans.

### ⭐ Enjoying J-STAGE Scraper?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#FDF0F0;border:1px solid #E8B4B8;border-left:5px solid #BC002D;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One run just told you who leads a research topic, not just who published a paper on it.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other researchers and analysts find this actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#BC002D;border:1px solid #E8B4B8;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/jstage-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ✨ Tips

- **Read the leaderboard first.** Sort `authorLeaderboard` by `paperCount` to find the most active researchers in a topic before you read a single abstract.
- **Turn on enrichment for a real citation picture.** Without it, both leaderboards are ranked by paper count alone. With it, `totalCitations` and `avgCitations` show who is not just prolific but influential.
- **Narrow by year for a moving field.** Use `dateFrom`/`dateTo` to compare who led a topic five years ago against who leads it now.
- **Track a search over time.** Turn on `onlyNewOrChanged` with a `stateName` to get only the articles that are new since your last run on that same search.
- **Track specific papers, not a whole search.** Turn on `trackCitationChanges` and list the papers you actually care about in `savedArticles` to watch their citation counts move.

### ❓ FAQ

##### 学術論文をJ-STAGEで検索できますか? (Can I search academic papers on J-STAGE?)

Yes. Enter any keyword and this actor searches J-STAGE's own public article index and returns structured results, including English and Japanese titles, authors, and journal data.

##### How is this different from just searching J-STAGE myself?

A manual search gives you a page of paper titles. This actor also computes a ranked Author Leaderboard and Journal Leaderboard from the same results, so you see who leads the topic and where it's published without building that view yourself.

##### Do I need a J-STAGE account or API key?

No. J-STAGE's public search and article pages are open to anyone, and this actor never asks for a login.

##### When do totalCitations and avgCitations show up?

Only when `includeEnrichment` is on and enough of an author's or journal's papers in the current search went through citation enrichment. If the data isn't complete, those fields are left out rather than shown as a misleading partial average.

##### How does citation-change tracking work?

Set `trackCitationChanges` on and list article URLs in `savedArticles`. Each run re-checks the current citation count for every saved article and reports the change since the last check. The first check for an article establishes its starting count.

##### Is scraping J-STAGE legal?

This actor reads publicly available search results and article pages, the same pages any visitor can view without logging in. It never fetches PDF files, which J-STAGE's own rules restrict. You are responsible for complying with J-STAGE's terms of service and applicable laws. For questions or custom fields, contact the author at <devanshtiwari365@gmail.com>.

### 🔗 Other actors

- [CNKI Scraper: 中国知网 Citations, Rankings & Academic Search](https://apify.com/getascraper/cnki-scraper) ↗ - the equivalent citation-intelligence scraper for China's largest academic database.
- [PubMed Scraper for RAG: Papers as Chunked JSON](https://apify.com/getascraper/pubmed-rag-extractor) ↗ - pulls PubMed papers as structured, chunked content for feeding into a RAG pipeline.
- [arXiv scraper for RAG: papers as chunked JSON](https://apify.com/getascraper/arxiv-rag-extractor) ↗ - the same content-extraction approach for arXiv preprints.
- [NIH & NSF grant monitor: research funding status](https://apify.com/getascraper/research-grant-status-monitor) ↗ - tracks the funding side of research, useful alongside a publication leaderboard.
- [Japan Company Scraper: 4.5M+ gBizINFO Records](https://apify.com/getascraper/gbizinfo-japan-company-scraper) ↗ - Japan's national company registry, useful for identifying the institutions behind a research topic's leading authors.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/jstage-scraper/changelog.md

# Actor input Schema

## `query` (type: `string`):

Keyword sent to J-STAGE's official public search API. This is what powers the headline Author and Journal Leaderboard views (who is publishing, and where, in this topic), not just a flat list of matching papers. Required unless Track Citation Changes (below) is enabled instead.

## `maxResults` (type: `integer`):

How many articles to fetch, hard-capped between 10 and 25. This ceiling is deliberate, not just a default: with Include Abstract & Citation Enrichment turned on, each result costs one extra sequential request to an unknown-latency government host, so 25 results already means up to 26 total requests inside the platform's 5-minute run budget.

## `dateFrom` (type: `string`):

Only include articles published in or after this year, e.g. 2020. Maps to J-STAGE's own pubyearfrom filter parameter. Leave blank for no lower bound.

## `dateTo` (type: `string`):

Only include articles published in or before this year, e.g. 2024. Maps to J-STAGE's own pubyearto filter parameter. Leave blank for no upper bound.

## `includeEnrichment` (type: `boolean`):

Fetch each article's own detail page for its abstract, cited-by count, and references count, the fields the one existing J-STAGE Actor on Apify does not expose at all. This also fills in the totalCitations and avgCitations columns in the Author and Journal Leaderboard views. Leave off and the leaderboards still work, ranked by real paper count, just without the citation columns. Defaults to off because it adds one sequential request per result.

## `onlyNewOrChanged` (type: `boolean`):

Turn this search into a saved monitor: only emit articles that were not already returned by a previous run using the same State Name below. Useful for tracking a research topic over time without re-exporting everything already seen.

## `stateName` (type: `string`):

Identifies this saved search or tracker so its seen-articles state persists correctly across runs. Use a different name for each distinct search or citation tracker you want to monitor independently.

## `resetState` (type: `boolean`):

Clear the saved monitor/citation-check state for this State Name before this run, so every currently matching article or saved citation count is treated as if seen for the first time.

## `trackCitationChanges` (type: `boolean`):

Switch the Actor into citation-check mode: instead of running a new search, it re-fetches the current cited-by count for each article listed in Saved Articles below and reports how it changed since the last check. When enabled, Search Query above is not required.

## `savedArticles` (type: `array`):

Articles to re-check for citation-count changes when Track Citation Changes is enabled. Each entry needs the article's J-STAGE URL (from a previous run's articleUrl field); the title is optional and only used to label the output rows.

## `proxyConfiguration` (type: `object`):

J-STAGE has no WAF or bot-detection on any endpoint this Actor uses, so Apify's datacenter proxy (the default) works fine; residential is not needed.

## Actor input object example

```json
{
  "query": "cancer",
  "maxResults": 15,
  "includeEnrichment": false,
  "onlyNewOrChanged": false,
  "stateName": "default",
  "resetState": false,
  "trackCitationChanges": false,
  "savedArticles": [
    {
      "sourceUrl": "https://www.jstage.jst.go.jp/article/jmi/57/3,4/57_3,4_251/_article",
      "title": "Example saved article"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `articles` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "cancer",
    "maxResults": 15,
    "includeEnrichment": false,
    "onlyNewOrChanged": false,
    "stateName": "default",
    "resetState": false,
    "trackCitationChanges": false,
    "savedArticles": [
        {
            "sourceUrl": "https://www.jstage.jst.go.jp/article/jmi/57/3,4/57_3,4_251/_article",
            "title": "Example saved article"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/jstage-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "cancer",
    "maxResults": 15,
    "includeEnrichment": False,
    "onlyNewOrChanged": False,
    "stateName": "default",
    "resetState": False,
    "trackCitationChanges": False,
    "savedArticles": [{
            "sourceUrl": "https://www.jstage.jst.go.jp/article/jmi/57/3,4/57_3,4_251/_article",
            "title": "Example saved article",
        }],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/jstage-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "cancer",
  "maxResults": 15,
  "includeEnrichment": false,
  "onlyNewOrChanged": false,
  "stateName": "default",
  "resetState": false,
  "trackCitationChanges": false,
  "savedArticles": [
    {
      "sourceUrl": "https://www.jstage.jst.go.jp/article/jmi/57/3,4/57_3,4_251/_article",
      "title": "Example saved article"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/jstage-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/jstage-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DvLy6AZ1dVJFtYhec/builds/Ci9JqJdcMZr9PQe9p/openapi.json
