Blog

By javinfo team

How to Use the JavLibrary Provider: /movie Lookups and Bare /query

Pin javlibrary for code lookups, or let it catch bare /query searches other providers miss. num works; filters don't. Exact request shapes inside.

The javlibrary provider is the deep-catalog fallback: great when a code is missing everywhere else, wrong if you pin it for every request and wonder why things feel slow. Here’s how to call it without guessing.

When to reach for it

Use javlibrary when:

Don’t pin it as your default “always try this first” source. Browser scrape means higher latency. Leave it last in the fan-out unless you have a reason.

Background on why it exists: JavLibrary API.

1. Get a key

Sign up at app.javinfo.dev. Put the key in x-javinfo-key. Same key works on RapidAPI via their headers if you prefer that path.

2. Full record: POST /movie

Exact code, full normalized row:

Movie lookup
curl -X POST "https://api.javinfo.dev/movie" \
-H "x-javinfo-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "q": "SSIS-001", "providers": "javlibrary" }'

You get title, cast, genres (categories), runtime, release date, studio (makers / label), cover (jacketFullUrl), plus extra.pageUrl and extra.sampleImages. source will be "javlibrary".

No magnets. No .m3u8 streams. If you need those, pin javdb or missav instead — same metadata shape, different extras.

3. List search: POST /query

Keyword search over codes and labels. Keep it bare:

Bare query (num only)
curl -X POST "https://api.javinfo.dev/query" \
-H "x-javinfo-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "q": "SSIS", "providers": "javlibrary", "num": 10, "page": 1 }'

What works:

What silently (or loudly) drops javlibrary:

In fan-out mode those params skip javlibrary and try the next capable provider. If you pin "providers": "javlibrary" with a filter it can’t satisfy, you get a 422 with a reason — not a partial guess.

Query hits look like:

Query hit shape
{
"q": "SSIS",
"source": "javlibrary",
"count": 10,
"results": [
{
"id": "javmezzbqu",
"dvdId": "SSIS-001",
"title": "Newcomer NO.1 STYLE ...",
"cover": "https://...",
"releaseDate": "2020-07-07",
"extra": { "url": "https://www.javlibrary.com/en/..." }
}
]
}

Covers and release dates are backfilled from the DMM/FANZA index when we can match the code. List thumbnails are the fallback.

Fan-out vs pin

Default order (first full hit wins):

FANZA → DMM → missav → javdb → javdatabase → javlibrary

Omit providers and javlibrary only answers when everyone ahead of it misses or can’t satisfy the request. Pin it when you want that source even if a faster one would also work.

Mistakes that waste a call

Expecting download links. Wrong provider. Use javdb.

Sending filter.genre while pinned to javlibrary. 422. Drop the filter or pin a source that supports it (fanza/dmm, missav, javdatabase).

Using it for speed. It’s last for a reason. Cache hits help on repeat codes (cacheTtl is an hour server-side), but the first scrape is still a browser job.

Treating /query like a full archive browser. It’s keyword relevance, not genre ∩ studio archives. For archive-style browsing, javdatabase is closer.

Pricing + next step

Successful /movie = $0.0005. Successful /query = $0.0002. Misses and errors aren’t charged. New signups get 1,000+ free lookups.

Grab a key, run the curl above, then wire the same body into your app. One provider-agnostic integration — JavLibrary is just another id in providers.