VNDB Scraper: Visual Novels, Characters & Releases
Pricing
Pay per event
VNDB Scraper: Visual Novels, Characters & Releases
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.
Pricing
Pay per event
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
VNDB Scraper: Visual Novels, Characters & Releases
VNDB Scraper exports visual novels from VNDB, the Visual Novel Database, with Bayesian rating, vote count, play length, developers, platforms and top tags. Filter by language, platform, votes, release date or a raw VNDB filter, and add characters and release editions as separate rows. Export CSV, Excel, JSON or XML through the official VNDB API. No login, no API key. $0.02 per visual novel on the Free plan, 128 MB memory, small runs finish in seconds.
VNDB Scraper searches and ranks the 66,000+ visual novels in the Visual Novel Database and returns clean rows instead of HTML. Built for game stores, localizers, researchers, media editors and fans who need structured visual novel data.
🔎 What does VNDB Scraper do?
- Rank and search: top-rated or most-voted titles with a minimum-votes filter, or search by title such as "Fate" or "Steins;Gate".
- Filter: by available language, original language, platform, release date, or any VNDB filter in the
filtersJSON array (tag, length,orgroups). - Characters and releases: role, sex, age, measurements, traits for characters; date, languages, platforms, engine, voiced level, age rating and store links for releases. They work for search results and VN IDs.
- Extra columns:
extraFieldsadds titles, relations, screenshots, staff, voice actors and editions to each visual novel row, with no extra rows and no extra events. - Scrape by VNDB ID: give
v11or just11for full detail.
📊 What data can you extract from VNDB?
The dataset has 69 data columns plus three error columns. Main columns by record type:
| Record type | Main fields |
|---|---|
Visual novel (vn) | vnId, title, originalTitle, aliases, url, released, rating, voteCount, averageVote, lengthMinutes, lengthCategory, devStatus, originalLanguage, languages, platforms, developers, tags, imageUrl, description, externalLinks |
Character (character) | characterId, vnId, vnTitle, name, originalName, sex, gender, age, birthday, heightCm, weightKg, bustCm, waistCm, hipsCm, bloodType, role, traits, url |
Release (release) | releaseId, vnId, vnTitle, title, released, releaseType, languages, platforms, minAge, official, freeware, uncensored, engine, voicedLevel, catalog, gtin, media, publishers, storeLinks, url |
Optional extraFields | titles, relations, screenshots, staff, voiceActors, editions |
Every row also carries recordType and scrapedAt. Optional fields are left out when VNDB has no value. Columns rating, lengthMinutes, age, heightCm, weightKg and minAge can hold placeholder text such as "Not Rated", so parse them defensively. Descriptions, tags and traits can contain spoilers: VNDB marks them and the actor does not filter them.
🧾 Sample output of VNDB Scraper
Real row from a cloud run on 2026-10-03 (shortened):
{"recordType": "vn","vnId": "v20802","title": "Rance X -Kessen-","originalTitle": "Rance Ⅹ -決戦-","released": "2018-02-23","rating": 90.5,"voteCount": 1234,"originalLanguage": "ja","languages": ["ja", "ko", "zh-Hans"],"developers": ["Alice Soft"],"tags": ["Multiple Endings", "One True End", "Family"]}
A character row from the same run:
{"recordType": "character","characterId": "c15","vnId": "v11","vnTitle": "Fate/stay night","name": "Emiya Shirou","sex": "m","age": 17,"role": "main","traits": ["Red", "Short", "Straight"],"url": "https://vndb.org/c15"}
💲 How much does it cost to scrape VNDB?
Pay per event, charged only after a row is saved. You are never charged for error rows, "not found" rows, empty searches or failed runs. Prices read live on 2026-10-10:
| Event | Free plan | Gold and above |
|---|---|---|
| Visual novel record | $0.02 | $0.01778 |
| Character record | $0.01111 | $0.01 |
| Release record | $0.01111 | $0.01 |
The extraFields columns add no events. Characters and releases found through a search use the same events as those found through VN IDs.
Worked example: 1,000 visual novels cost 1,000 x $0.02 = $20.00 on the Free plan ($17.78 on Gold), and 1,000 character or release rows cost 1,000 x $0.01111 = $11.11 each. One VN ID with 30 characters and 12 releases is 43 rows, about $0.49 on the Free plan. A test run of 10 visual novels costs $0.20. Use maxItems or the Apify "maximum charge per run" setting to cap spend; the run stops cleanly with "Stopped at your max charge limit". Free Apify accounts are limited to 10 rows per run. Default memory is 128 MB.
🚀 How to scrape VNDB (3 steps)
- Open the actor and click Try for free.
- Choose how to find titles: a search query, a sort order and minimum votes, or a list of VN IDs. Tick Characters per VN or Releases per VN if you want those rows.
- Click Start, then download the dataset as CSV, Excel, JSON or XML.
⚙️ Input
| Field | Type | Default | What it does |
|---|---|---|---|
searchQuery | string | empty | Title keyword. Empty ranks the whole database |
sortBy | select | rating | rating, votecount, released, title, id or searchrank (needs a search query) |
sortDirection | select | auto | auto, asc or desc; auto puts newest or most first, title A-Z |
minVotes | integer | 100 | Skip titles with fewer votes |
releasedAfter | string | empty | Date YYYY-MM-DD; only newer titles |
language | select | any | Only titles available in this language (57 options) |
originalLanguage | select | any | Only titles written in this language |
platform | select | any | Only titles available on this platform (48 options) |
filters | array | empty | Advanced VNDB filter as JSON, e.g. ["tag","=","g50"] |
extraFields | array | empty | Add titles, relations, screenshots, staff, voiceActors, editions |
vnIds | array | empty | VNDB IDs such as v11, 11 or 00011, looked up 50 per request |
includeCharacters | boolean | false | Add character rows per visual novel |
includeReleases | boolean | false | Add release rows per visual novel |
maxItems | integer | 10 | Cap on total rows (visual novels, characters and releases) |
The filters shape is checked locally (at most 200 conditions, depth 8); VNDB checks field names and values. The length filter only accepts = with values 1 to 5; >= works only on numeric and date fields.
Example input for English visual novels on Windows:
{ "language": "en", "platform": "win", "minVotes": 100, "maxItems": 20 }
📦 Output
One dataset, one row per visual novel, character or release, told apart by recordType. The Output tab has an overview table with cover, rating, votes, developers and a VNDB link. Searches with no matches end as SUCCEEDED with zero rows charged. Missing VN IDs get free not-found rows (the first 25 get their own row, the rest one summary row). Invalid input (malformed date, searchrank without a query, junk VN IDs, a rejected filter) ends as SUCCEEDED with one free error row (errorType: invalid-input).
⚖️ VNDB scraper vs alternatives
Read on 2026-10-10 on the Apify Store. I found one other VNDB actor, parseforge/vndb-visual-novels-scraper.
| This actor | parseforge | |
|---|---|---|
| Characters and releases | Yes, own rows with store links | Not scraped, its FAQ says |
| Raw VNDB filter | Yes, filters array | Yes, filters array |
| Language and platform inputs | Dedicated selects | Only through raw filter |
| Sorts | 6, with direction | 6 including search rank |
| Extra fields | extraFields, 6 groups | fields input |
| Price per 1,000 (Free) | $20.00 VN, $11.11 others | Header from $7.69, README $17.00 |
The other actor is cheaper on its header price, and its page shows a price mismatch ($7.69 header, $17.00 in the README), so check its Console before big runs. Choose this one for characters, releases, store links, ready-made language and platform filters or the extra columns. For plain lists the raw filters cover the same ground and the price decides. Neither page shows an only-new mode.
💡 Use cases
Licensing scouts, store curation by platform, editorial "best of the year" lists, localization gap lists and character datasets for NLP.
🧠 Tips
- Start with a ranked run. Leave
searchQueryempty, keepminVotesat 100 and sort byrating; lowerminVotesto 0 for obscure titles. - Watch the row cap.
maxItemscounts every row type together, so a cap of 10 with one VN ID, characters and releases may give the visual novel plus nine characters and no releases. - Monitoring. Schedule a monthly run with
releasedAfterset to the first of the month and dedupe byvnId; there is no only-new mode.
🔌 Run via API, schedule and integrations
curl -X POST "https://api.apify.com/v2/acts/RecordsData~vndb-visual-novel-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"sortBy":"rating","minVotes":100,"maxItems":10}'
Schedule runs and send results to Google Sheets, Zapier, Make or n8n.
🤖 VNDB Scraper MCP server for AI agents
AI agents can call this Actor through the Apify MCP server at https://mcp.apify.com?tools=RecordsData/vndb-visual-novel-scraper. Every input field has a default, so an agent can run it with an empty or partial input and get the top visual novels by rating.
Add this to your MCP client configuration (Claude Desktop, Cursor, VS Code or any client that supports remote MCP servers):
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/vndb-visual-novel-scraper"}}}
Example agent prompt:
Use the VNDB Scraper to list the 10 highest-rated visual novels with at least 500 votes, then fetch the characters of the top one (VN ID) and tell me which characters have the role main.
An agent should choose this Actor when it needs visual novel ratings, tags, developers, characters or release editions from VNDB. It takes the same fields as the input table and returns one dataset row per visual novel, character or release.
🛡️ Is it legal to scrape VNDB?
The actor reads VNDB's official public API within its documented rate limit. The API is free for non-commercial use on a best-effort basis, and the data is released under the ODbL database license plus the Database Contents License (attribution, share-alike); descriptions and images may carry separate licenses. Data from VNDB (vndb.org), used under its data license; credit VNDB when you republish it. The actor logs an attribution line on every run. The data is about games, not private individuals.
❓ Frequently asked questions
What is a VN ID on VNDB?
A VN ID is the number after the letter v in a vndb.org URL. For example, https://vndb.org/v11 is Fate/stay night, so its ID is v11. VNDB Scraper accepts v11 or just 11 in the vnIds input, and every output row includes vnId, so you can search first and then deep-dive.
What does the VNDB rating mean in VNDB Scraper output?
The rating field in VNDB Scraper is VNDB's Bayesian rating on a 0 to 100 scale, which corrects for titles with few votes so a title with three perfect votes does not outrank a well-known favorite. The voteCount field comes in the same row, so you can judge how reliable the rating is.
Why did my VNDB Scraper run return 0 results?
Your filters matched nothing. The default minVotes in VNDB Scraper is 100, so a rare visual novel can fall below it: set minVotes to 0 or lower it. A releasedAfter date that is too recent can also remove every title. The run still succeeds and charges nothing.
Why did my VNDB Scraper run fail?
VNDB Scraper fails with a plain message when the official VNDB API is down or unreachable and no rows could be delivered. Nothing is charged for a failed run, so you can start it again later. Rows already saved before a problem are kept, and you pay only for those.
What happens if I send an empty or invalid input to VNDB Scraper?
An empty input is safe: VNDB Scraper returns the top 10 visual novels by rating. A wrong sortBy value is rejected by the platform with a 400 before any run starts. Other mistakes, such as a malformed releasedAfter date, searchrank without a query, a rejected filter or junk VN IDs, end as SUCCEEDED with one free error row. Nothing is charged.
Does VNDB Scraper include adult visual novels?
VNDB lists visual novels of all age ratings, and VNDB Scraper does not hide any of them. Release rows carry the minAge field, so you can filter adult editions out of your export yourself. The data describes games and fictional characters, not private individuals.
Do characters and releases cost extra in VNDB Scraper?
Yes. Each character record ($0.01111 on the Free plan) and each release record ($0.01111) is its own billed event, on top of the $0.02 per visual novel. They are fetched only when you tick Characters per VN or Releases per VN, and they now apply to search results as well as VN IDs. They count toward maxItems, so you pay for them only when you ask and can cap the total.
Can I try VNDB Scraper for free?
Yes. Free Apify accounts can run VNDB Scraper with a limit of 10 rows per run, which at $0.02 per visual novel costs about $0.20. Paid Apify plans remove the 10-row limit and get lower per-row prices, down to $0.01778 per visual novel.
What happens if a VN ID does not exist in VNDB Scraper?
You get a free not found row for that ID, so you can see which IDs failed. Only the first 25 misses get their own row; the rest are counted in one summary row, and lookup stops after 1,000 misses. VNDB Scraper never charges for not found rows, error rows, empty searches or failed runs. IDs that exist are still scraped and billed normally.
How do I get English visual novels on Windows with VNDB Scraper?
Set language to en and platform to win in VNDB Scraper, add minVotes of 100 to skip obscure entries, and choose a sort such as rating. Every row returned is available in English on Windows. For anything the selects do not cover, such as a tag or length class, use the filters input; it is combined with your other inputs.
What can I put in the filters input of VNDB Scraper?
A JSON array in the VNDB filter grammar, for example ["tag","=","g50"], or ["and", ...] and ["or", ...] groups of conditions. The shape is checked locally (200 conditions, depth 8) and VNDB checks field names and values. A rejected filter ends the run with one free error row quoting the VNDB message, so nothing is charged and you can fix it.
🎮 Want more game data? Other RecordsData scrapers
🛟 Support
Found a bug or a missing field? Open the Issues tab or write to contact.punkrecordsdata@gmail.com. Custom solutions on request.
Last updated: 2026-10-11