{
  "openapi": "3.0.1",
  "info": {
    "title": "RISS Scraper: 학술연구정보서비스 Theses & University Leaderboard",
    "description": "Search RISS, Korea's national thesis and academic-paper platform, and get a University Research Output Leaderboard ranking which universities lead a topic, plus title, author, university, year, degree type, Korean/English abstracts, and a monitor mode. No login needed.",
    "version": "0.1",
    "x-build-id": "YaHINeJds774ZppLV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~riss-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-riss-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~riss-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-riss-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~riss-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-riss-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",
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "The term to search for on RISS (학술연구정보서비스), Korea's national thesis and academic-paper platform. Matched against RISS's own integrated search across domestic journal articles, theses/dissertations, and overseas journal articles.",
            "default": "인공지능"
          },
          "resultTypes": {
            "title": "Result Categories",
            "type": "array",
            "description": "Restrict the search to one or more of RISS's own three result categories. Leave empty to search all three (confirmed live: an empty selection searches everything, not zero results). No existing Apify Actor covers this niche at all, so there is no competitor field gap to close here, just RISS's own bare category counts that this Actor turns into a filterable, structured search.",
            "items": {
              "type": "string",
              "enum": [
                "domesticJournal",
                "thesis",
                "overseasJournal"
              ],
              "enumTitles": [
                "Domestic Journal Article (국내학술논문)",
                "Thesis / Dissertation (학위논문)",
                "Overseas Journal Article (해외학술논문)"
              ]
            },
            "default": []
          },
          "dateFrom": {
            "title": "Publication Year From",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Only include results published in or after this year, e.g. 2020. This is a whole publication year, not a calendar date: RISS's own year filter is a list of per-year checkboxes rather than a from/to date-range parameter, so this Actor fetches results normally and then filters them locally by the year already parsed from each result row, at no extra request cost. Leave blank for no lower bound."
          },
          "dateTo": {
            "title": "Publication Year To",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Only include results published in or before this year, e.g. 2025. Same whole-year, locally-applied filter as Publication Year From above, since RISS itself does not expose a from/to year-range parameter. Leave blank for no upper bound."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 10,
            "maximum": 25,
            "type": "integer",
            "description": "Maximum number of theses/papers to return, split evenly across the selected Result Categories (e.g. 15 results across all 3 categories fetches about 5 of each). Kept in a 10-25 band so the default run completes well within Apify's 5-minute default-run budget, given RISS's own disclosed 10-second crawl delay and this Actor's per-item detail-page fetch for abstracts.",
            "default": 15
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "RISS's search and detail pages showed no active anti-bot enforcement during testing (no WAF, no CAPTCHA - only the disclosed 10-second crawl delay, which this Actor already respects), so the default Apify datacenter proxy is sufficient. Residential is not required.",
            "default": {
              "useApifyProxy": true
            }
          },
          "onlyNewOrChanged": {
            "title": "Monitor Mode: Only New Theses/Papers",
            "type": "boolean",
            "description": "When enabled, re-running this same search (with the same State Name) reports only results not seen in a previous run, instead of the full result set every time. Each result is identified by RISS's own control_no value, confirmed live to stay stable across repeated fetches of the same search, so this stays accurate on a recurring schedule rather than reporting the same theses as \"new\" every run.",
            "default": false
          },
          "stateName": {
            "title": "State Name",
            "type": "string",
            "description": "Identifies this search's persisted monitor state, so you can run several different saved searches without them overwriting each other's history. Only relevant when Only New Theses/Papers is enabled.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset Monitor State",
            "type": "boolean",
            "description": "Clears the persisted monitor history for this State Name before this run starts, so the next results are treated as a fresh baseline instead of being diffed against a previous run.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}