VNDB Scraper: Visual Novels, Characters & Releases avatar

VNDB Scraper: Visual Novels, Characters & Releases

Pricing

Pay per event

Go to Apify Store
VNDB Scraper: Visual Novels, Characters & Releases

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

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

RecordsData

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 filters JSON array (tag, length, or groups).
  • 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: extraFields adds 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 v11 or just 11 for 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 typeMain 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 extraFieldstitles, 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:

EventFree planGold 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)

  1. Open the actor and click Try for free.
  2. 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.
  3. Click Start, then download the dataset as CSV, Excel, JSON or XML.

⚙️ Input

FieldTypeDefaultWhat it does
searchQuerystringemptyTitle keyword. Empty ranks the whole database
sortByselectratingrating, votecount, released, title, id or searchrank (needs a search query)
sortDirectionselectautoauto, asc or desc; auto puts newest or most first, title A-Z
minVotesinteger100Skip titles with fewer votes
releasedAfterstringemptyDate YYYY-MM-DD; only newer titles
languageselectanyOnly titles available in this language (57 options)
originalLanguageselectanyOnly titles written in this language
platformselectanyOnly titles available on this platform (48 options)
filtersarrayemptyAdvanced VNDB filter as JSON, e.g. ["tag","=","g50"]
extraFieldsarrayemptyAdd titles, relations, screenshots, staff, voiceActors, editions
vnIdsarrayemptyVNDB IDs such as v11, 11 or 00011, looked up 50 per request
includeCharactersbooleanfalseAdd character rows per visual novel
includeReleasesbooleanfalseAdd release rows per visual novel
maxItemsinteger10Cap 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 actorparseforge
Characters and releasesYes, own rows with store linksNot scraped, its FAQ says
Raw VNDB filterYes, filters arrayYes, filters array
Language and platform inputsDedicated selectsOnly through raw filter
Sorts6, with direction6 including search rank
Extra fieldsextraFields, 6 groupsfields input
Price per 1,000 (Free)$20.00 VN, $11.11 othersHeader 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 searchQuery empty, keep minVotes at 100 and sort by rating; lower minVotes to 0 for obscure titles.
  • Watch the row cap. maxItems counts 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 releasedAfter set to the first of the month and dedupe by vnId; 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.

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