If you want JAV metadata in your app, here’s the path everyone walks. You find a source, write a scraper, the scraper breaks, you write another for a second source to cover the gaps, and six months later you’re maintaining five brittle integrations just to get a title, a release date, and a cover image.
There is no public, stable JAV metadata API out there. There never was. javinfo is one. That’s the entire reason it exists.
Why a “JAV metadata API” is so hard to find
The data is real and well-structured. The access is the problem. Every source you’d reach for is a website with defenses, not an API with a contract:
- DMM / FANZA holds most of the catalog and geo-blocks most of the planet. There’s an affiliate API, but the docs are Japanese-only and sit behind the same block.
- JavDB has no official API at all, just community scrapers wearing the name, most of them needing FlareSolverr to get past Cloudflare.
- JavBus, JavLibrary, R18 are the same story: self-hosted scrapers and Docker containers, parsers tied to HTML that changes without notice.
So the “API” you find on GitHub is always a scraper, and a scraper inherits every problem the source site has. A class rename breaks your parser with no changelog and no warning. Cloudflare challenges and region blocks mean you also run a headless-browser bypass and a proxy. And because each source returns a different shape, covering gaps means normalizing three or four schemas yourself.
You don’t maintain one integration. You maintain a scraper, a bypass, a proxy, and a pager for 2am – plus the compliance questions that come with pulling adult-video metadata yourself.
What javinfo does instead
Send a code to POST /movie, get one normalized result, the same field shape no matter which source answered. Need a list instead? POST /query returns candidate matches for a broad search.
curl -X POST "https://api.javinfo.dev/movie" \ -H "x-javinfo-key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "q": "SSIS-001" }'{ "q": "SSIS-001", "source": "fanza", "result": { "dvdId": "SSIS-001", "titleEn": "Newcomer NO.1 STYLE ...", "releaseDate": "2020-07-07", "runtimeMins": 120, "makers": ["S1 NO.1 STYLE"], "actresses": ["Example Actress"], "jacketFullUrl": "https://pics.dmm.co.jp/digital/video/ssis00001/ssis00001pl.jpg" }}Every provider maps onto the same base result shape: dvdId, titleEn/titleJa, releaseDate, runtimeMins, makers, label, series, actresses, jacketFullUrl, and more. You read result.* the same way across sources. We run the scraping, the Cloudflare fights, and the geo-block workarounds so you don’t. This is the provider-agnostic design the whole thing is built on.
If the caller is an agent rather than your own code, the MCP server exposes the same two endpoints as tools – no HTTP boilerplate.
The providers
Let javinfo pick the first match, or pin a source with providers:
dmm/fanzareturns bilingual metadata (title, cast, maker, label, series, covers) plus actress profile images and sample/gallery URLs. Live on every request.javdbadds anextra.downloadLinksarray with magnet and download links, the thing the scrapers fight for, plusextra.scoreandextra.voteCount.missavaddsextra.pageUrland anextra.streamsobject with an HLSmasterplaylist (.m3u8) plus per-resolution variants.javdatabaseadds a description, sample images, and a trailer.javlibraryis the deep-catalog fallback: title, cast, cover, sample images on/movie; bare keyword/querywithnum(no filters). Last in the waterfall.
On a miss you get a 404, which usually just means the code isn’t indexed. Responses are cached server-side, so repeat lookups are fast.
Start
Sign up at app.javinfo.dev, grab a key, and pass it in the x-javinfo-key header (also available on RapidAPI). The dashboard holds the key, your live usage, and your credit balance. Every provider returns full data on every request – no tiers, no per-provider gating. Billing is usage-based: /movie costs $0.0005 per successful result and /query costs $0.0002 – failed lookups aren’t charged – at 10 requests a minute per account, lifting to 60 once you’ve topped up. You top up in any crypto – BTC, ETH, USDT, 300+ coins – credited 1:1 to a USD balance, and every top-up rolls a bonus: 1–2% under $50, a random 5–50% at $50 or more. New signups get 100+ free lookups to start, no credit card. No Docker, no FlareSolverr, no Japanese VPN, no cookie to refresh. You can be running in a minute.