{
  "openapi": "3.0.1",
  "info": {
    "title": "J-STAGE Scraper: 学術論文・引用検索 Papers & Citation Leaderboard",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "Ci9JqJdcMZr9PQe9p"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~jstage-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-jstage-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~jstage-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-jstage-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~jstage-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-jstage-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "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.",
            "default": "cancer"
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 10,
            "maximum": 25,
            "type": "integer",
            "description": "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.",
            "default": 15
          },
          "dateFrom": {
            "title": "Publication Year From",
            "type": "string",
            "description": "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": {
            "title": "Publication Year To",
            "type": "string",
            "description": "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": {
            "title": "Include Abstract & Citation Enrichment",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Only New or Changed Articles",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "stateName": {
            "title": "State Name",
            "type": "string",
            "description": "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.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset Saved State",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "trackCitationChanges": {
            "title": "Track Citation Changes",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "savedArticles": {
            "title": "Saved Articles",
            "type": "array",
            "description": "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": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "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.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}