{
  "openapi": "3.0.1",
  "info": {
    "title": "VNDB Scraper: Visual Novels, Characters & Releases",
    "description": "Scrape VNDB, the Visual Novel Database: rank 66,000+ visual novels by rating, votes or date with tags, developers and platforms, plus every character and release edition per title. Filter by minimum votes. Export CSV, Excel, JSON. No login or API key.",
    "version": "0.2",
    "x-build-id": "fK2BYqUnBhkhhoMlm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~vndb-visual-novel-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-vndb-visual-novel-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/recordsdata~vndb-visual-novel-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-vndb-visual-novel-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/recordsdata~vndb-visual-novel-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-vndb-visual-novel-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": {
          "searchQuery": {
            "title": "Search query (optional)",
            "type": "string",
            "description": "Search visual novels by title keyword, alias or release title, for example \"Fate\" or \"Steins;Gate\". Leave empty to rank the whole VNDB database using the sort order, minimum votes, release date, language and platform filters below.",
            "default": ""
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "rating",
              "votecount",
              "released",
              "title",
              "id",
              "searchrank"
            ],
            "type": "string",
            "description": "Sort order for search and browse results: rating (best Bayesian score first), votecount (most voted first), released (newest first), title (A-Z), id (oldest VNDB entry first) or searchrank (best match for the search query first, needs a search query). Use Sort direction to reverse any of them.",
            "default": "rating"
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "auto",
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Auto keeps the natural direction of each sort order (best, most and newest first; A-Z; oldest ID first; best match first). Choose ascending or descending to flip it, for example oldest release first.",
            "default": "auto"
          },
          "minVotes": {
            "title": "Minimum votes",
            "minimum": 0,
            "type": "integer",
            "description": "Only include visual novels with at least this many user votes on VNDB (0 = no filter). Raising it removes obscure entries with unreliable ratings.",
            "default": 100
          },
          "releasedAfter": {
            "title": "Released after (optional)",
            "type": "string",
            "description": "Only include visual novels released on or after this date, format YYYY-MM-DD (for example 2020-01-01). Leave empty for no date filter.",
            "default": ""
          },
          "language": {
            "title": "Available in language",
            "enum": [
              "any",
              "ar",
              "eu",
              "be",
              "bg",
              "bs",
              "ca",
              "ck",
              "zh",
              "zh-Hans",
              "zh-Hant",
              "hr",
              "cs",
              "da",
              "nl",
              "en",
              "eo",
              "et",
              "fi",
              "fr",
              "gl",
              "de",
              "el",
              "he",
              "hi",
              "hu",
              "ga",
              "id",
              "it",
              "iu",
              "ja",
              "kk",
              "ko",
              "la",
              "lv",
              "lt",
              "mk",
              "ms",
              "ne",
              "no",
              "fa",
              "pl",
              "pt-br",
              "pt-pt",
              "ro",
              "ru",
              "gd",
              "sr",
              "sk",
              "sl",
              "es",
              "sv",
              "ta",
              "th",
              "tr",
              "uk",
              "ur",
              "vi"
            ],
            "type": "string",
            "description": "Only visual novels that have a release in this language (VNDB language code, for example English = en, Japanese = ja, Chinese simplified = zh-Hans). Machine translations are not counted by VNDB. \"Any language\" adds no filter.",
            "default": "any"
          },
          "originalLanguage": {
            "title": "Original language",
            "enum": [
              "any",
              "ar",
              "eu",
              "be",
              "bg",
              "bs",
              "ca",
              "ck",
              "zh",
              "zh-Hans",
              "zh-Hant",
              "hr",
              "cs",
              "da",
              "nl",
              "en",
              "eo",
              "et",
              "fi",
              "fr",
              "gl",
              "de",
              "el",
              "he",
              "hi",
              "hu",
              "ga",
              "id",
              "it",
              "iu",
              "ja",
              "kk",
              "ko",
              "la",
              "lv",
              "lt",
              "mk",
              "ms",
              "ne",
              "no",
              "fa",
              "pl",
              "pt-br",
              "pt-pt",
              "ro",
              "ru",
              "gd",
              "sr",
              "sk",
              "sl",
              "es",
              "sv",
              "ta",
              "th",
              "tr",
              "uk",
              "ur",
              "vi"
            ],
            "type": "string",
            "description": "Only visual novels that were originally written in this language (for example Japanese = ja finds the Japanese originals, which is most of VNDB). \"Any language\" adds no filter.",
            "default": "any"
          },
          "platform": {
            "title": "Available on platform",
            "enum": [
              "any",
              "win",
              "lin",
              "mac",
              "web",
              "tdo",
              "ios",
              "and",
              "bdp",
              "dos",
              "dvd",
              "drc",
              "nes",
              "sfc",
              "fm7",
              "fm8",
              "fmt",
              "gba",
              "gbc",
              "msx",
              "nds",
              "swi",
              "sw2",
              "wii",
              "wiu",
              "n3d",
              "p88",
              "p98",
              "pce",
              "pcf",
              "psp",
              "ps1",
              "ps2",
              "ps3",
              "ps4",
              "ps5",
              "psv",
              "smd",
              "scd",
              "sat",
              "vnd",
              "x1s",
              "x68",
              "xb1",
              "xb3",
              "xbo",
              "xxs",
              "mob",
              "oth"
            ],
            "type": "string",
            "description": "Only visual novels that have a release on this platform (VNDB platform code, for example Windows = win, Nintendo Switch = swi, PlayStation 4 = ps4, Android = and). \"Any platform\" adds no filter.",
            "default": "any"
          },
          "filters": {
            "title": "Advanced VNDB filter (optional, JSON)",
            "type": "array",
            "description": "A raw filter of the VNDB Kana API as a JSON array, combined with AND with every other filter above. A single condition is [name, operator, value], for example [\"tag\",\"=\",\"g50\"]. Combine conditions with \"and\" / \"or\", for example [\"and\",[\"lang\",\"=\",\"en\"],[\"released\",\">=\",\"2020\"],[\"length\",\"=\",4]]. Names include lang, olang, platform, released, rating, votecount, length, devstatus, tag, developer, release and character. Operators: = and != everywhere, >= > <= < only on numeric and date fields (VNDB names the field that does not accept one). Reference: https://api.vndb.org/kana#filters. VNDB rejects unknown names; the run then ends with one free error row that quotes VNDB.",
            "default": []
          },
          "extraFields": {
            "title": "Extra visual novel columns (optional)",
            "type": "array",
            "description": "Add heavier columns to every visual novel row: titles (every language), relations (sequels, prequels, side stories), screenshots (links and content flags), staff (credits), voiceActors (character and actor) and editions. They come from the same request, so they cost no extra rows; they only make the rows bigger. Leave empty for the lean default rows.",
            "items": {
              "type": "string",
              "enum": [
                "titles",
                "relations",
                "screenshots",
                "staff",
                "voiceActors",
                "editions"
              ],
              "enumTitles": [
                "Titles in every language",
                "Related visual novels",
                "Screenshots",
                "Staff credits",
                "Voice actors",
                "Translation and platform editions"
              ]
            },
            "default": []
          },
          "vnIds": {
            "title": "VN IDs (details + characters/releases)",
            "type": "array",
            "description": "VNDB IDs of specific visual novels to fetch in detail, for example v11 or 11 (the number in a vndb.org/v11 URL). Up to 50 IDs are fetched per request. Combine with Characters per VN and Releases per VN to get their characters and releases too.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeCharacters": {
            "title": "Characters per VN",
            "type": "boolean",
            "description": "Also scrape every character of each visual novel returned by the search or listed in VN IDs: name, role, sex, gender, age, birthday, measurements, blood type, traits and portrait. Each character is a separate billed row and counts towards Max Items.",
            "default": false
          },
          "includeReleases": {
            "title": "Releases per VN",
            "type": "boolean",
            "description": "Also scrape every release edition of each visual novel returned by the search or listed in VN IDs: date, languages, platforms, age rating, official or fan patch flag, uncensored flag, engine, voiced level, media, publishers and store links. Each release is a separate billed row and counts towards Max Items.",
            "default": false
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of rows to return across visual novels, characters and releases. Free Apify users are limited to 10 rows per run; paid users can set up to 1,000,000.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}