Blog

By javinfo team

AdultDataLink + javinfo: its analytics ideas, rebuilt for JAV

AdultDataLink shut down and open-sourced its code. We read it and rebuilt its performer OHLC, leaderboard and discovery ideas for JAV on javinfo data. What maps, what doesn't.

AdultDataLink (ADL) is gone. In October its author posted a shutdown notice on r/SaaS and published the code as an archived, MIT-licensed repo. By the author’s own account the hosted API had been down since the end of April.

We read that code and rebuilt its best analytics and discovery ideas for JAV, on javinfo’s own data. ADL scraped about 20 western tube and media sites. javinfo is JAV only, so it’s a different product, and if your app needs data from those sites you won’t find it here. The ADL repo is the place to start for that.

If you liked ADL’s performer analytics, trending and recommendations and you work with JAV, most of those ideas now have an endpoint here. 0.7.0 also adds /resolve and a javbus source, which have nothing to do with ADL. Both are covered below.

What we took from ADL, and where it lives now

We read ADL’s code and re-implemented the ideas on our data. We did not copy code. Every ADL row in this table comes from its public repo; the right column is what we shipped.

ADL (services/engine) javinfo
Performer OHLC “stock” candles (/pornstar-calculation/fetch-pornstar-ohlc-data) GET /analytics/idols/ohlc
Top 50 daily and weekly gainers (/fetch-top-50-daily-gain, /fetch-top-50-weekly-gain) GET /analytics/leaderboard, metric=momentum
Performer information GET /analytics/idols/stats and /idols
Keyword trends (/keywords) Closest match: /discover/tags and /analytics/market
Personalized search (/machine-learning/search) GET /discover/for-you

The matches are by idea, not by output. ADL’s candles came from data it scraped off tube sites. Ours are built from release counts, because that is what a JAV catalog can measure. ADL tracked keyword performance. Ours counts tags and genre movers over a time window. ADL keyed personalization off the visitor’s IP and headers; /discover/for-you uses your account’s own search history.

Not planned: the tube-site scrapers, scraping projects, video tools, YOLO annotation and the Reddit routes.

Discovery

The /discover/* endpoints help you find titles when you don’t have a code.

The calendar is the one with a wrinkle. Big windows come back in complete-day pages. Ask for 2026-11-01 to 2026-11-14 and you get:

Calendar, two weeks
curl "https://api.javinfo.dev/discover/calendar?from=2026-11-01&to=2026-11-14" \
-H "x-javinfo-key: YOUR_KEY"
Response (trimmed)
{
"through": "2026-11-05",
"truncated": true
}

through is the last complete day included. Ask again from 2026-11-06 and you get the rest. Repeat until truncated is false. Each page is a separate call.

Performer analytics

/analytics/* answers questions about one performer or the whole market.

A real call, for Yua Mikami:

Idol stats
curl "https://api.javinfo.dev/analytics/idols/stats?q=yua-mikami" \
-H "x-javinfo-key: YOUR_KEY"

It reports 1,127 titles across 8 studios. The top genre is Big Tits with 765 titles, and the top studio is S1 NO.1 STYLE with 991. works counts each title once, even when several sources list it.

The same performer through /ohlc with bucket=month. Each candle is the cumulative release count for that month, and the bars show releases per month. The chart shows the last three years of the 131 monthly candles the call returns.

Candle chart of Yua Mikami’s cumulative releases by month over the last three years, ending at 1,127 titles

Resolve

Metadata for one title comes from many sources, and they don’t always agree. /resolve/* takes one code and checks all of them.

For EBOD-391:

Resolve with a JPG card
curl "https://api.javinfo.dev/resolve?q=EBOD-391&format=jpg" \
-H "x-javinfo-key: YOUR_KEY"

The code is found in FANZA, javdatabase, javlibrary, javbus and missav. The response includes link: "/movie?q=EBOD-391" for the full record. The card comes back inline and is about 100 KB as a JPG. It shows a rating of 8.1/10, a runtime of 119 minutes, 45 magnets, and that the title is streamable.

The /resolve title card for EBOD-391: rating 8.1/10, 119 min, released 2014-08-13, 45 magnets, streamable

Provenance is why the field-level view exists. For the same code, the release date is 2014-08-13 on FANZA and 2014-08-09 on javbus. That is a plain disagreement between sources, and it happens across a catalog this size. /resolve/provenance reports both values and a confidence score for the one it picked, so you can decide what to trust.

javbus joined as a source in this release. It feeds /resolve and provenance, and /discover/random routes to it when you ask for censored=uncensored.

What it costs

You are billed only for successful 200 responses.

Call Price
/discover/* $0.0004
/resolve/compare, /provenance, /streams $0.0004
/resolve with title card $0.0012
/resolve/batch $0.0004 per 10 codes, max 100
/analytics/idols/stats, /ohlc, /timeline, /market $0.0006
/analytics/idols/costars $0.0006 up to 10 results, $0.0009 at the default 15
/analytics/leaderboard $0.0006 up to 10 results, $0.0012 at the default 20

The base price covers up to 10 results. List endpoints scale above that: 20 results cost twice as much as 10, and several defaults sit above 10 (trending returns 20, so it costs $0.0008 out of the box). Cache hits, errors and degraded answers are free.

New accounts get $0.02 of free credit. The rate limit is 10 requests a minute until your first top-up, and 60 after any purchase.

Migrating from ADL

Three things differ from what you may have written against ADL.

Thanks

Building and running that much mostly solo for two years is hard, and publishing the code instead of letting it rot is generous. Thank you to ADL’s author for that, and for the ideas we got to build on.

Read the docs for discovery, analytics and resolve, then sign up at app.javinfo.dev for a key.