javinfo

Providers

The sources javinfo aggregates, what each returns, and how to pick one with the providers parameter.

A provider is a source javinfo scrapes and normalizes. Every search fans out across the registered providers and returns the first structured hit, so one call gives you metadata, magnets and streams without you maintaining scrapers that break. You can let the API pick (fan-out) or pin the exact source you want.

The roster

ProviderBest forReturnsEndpoints
fanza, dmmRichest structured metadata & filteringMetadata, jackets, sample images (censored catalog)/movie, /query, /random
missavStreams & the broadest filters.m3u8 stream URLs, Japanese genres, runtime + release ranges/movie, /query
javdbDownload links & sortingMagnets / download links, ratings, availability/movie, /query
javdatabaseDescriptions & imagesDescription text, sample images, archive browsing/movie, /query

fanza and dmm are the two DMM + FANZA storefronts. Their query ids are query:fanza, query:dmm, query:missav, query:javdb, query:javdatabase.

Selecting a provider

Default: fan-out

Omit providers and every registered provider is a candidate. The API tries them in order and the first one that fully satisfies your request wins:

FANZA → DMM → missav → javdb → javdatabase

On /query, a provider that can't satisfy your filter/sort is silently skipped and the waterfall advances to the next. /movie and /random take no filters, so it's just first-hit-wins. The provider that answered is echoed back as source:

{ "q": "SSIS-001", "source": "fanza", "result": { "...": "..." } }

Pin with providers

Send providers to force a specific source (or set). It accepts an array or a comma list, with or without the query: prefix:

curl -s -X POST https://api.javinfo.dev/query \
  -H "x-javinfo-key: $KEY" -H 'content-type: application/json' \
  -d '{ "q": "ABP", "providers": ["javdb"], "sort": "rating" }'

"providers": "javdb", ["fanza","missav"], and "query:javdb" are all valid. A pinned provider that can't satisfy the request on /query is not skipped: the call fails with 422 and a message naming the reason. An unknown id is 400. See Errors.

Where selection matters most is /query, where it drives pinning, the waterfall, and per-filter capability. Which provider supports which filter/sort is the crux of the system, spelled out in the capability matrix. /movie and /random have no filters, so they just echo the winner as source. The MCP server takes its own providers argument, where javdb is movie-only.

The providers

fanza / dmm

The DMM + FANZA storefronts, and the richest structured source: all named dimensions (genre, actress, maker, series, director, label, actor), freely combined, with English genre/name values, minute-based runtime filters, sort: release, and pagination. Censored catalog only, so an uncensored filter excludes them.

missav

The broadest filter surface and the stream source (.m3u8 URLs). Every named dimension (genres are Japanese, e.g. 巨乳), both runtime and release ranges, and censored both ways. The catch: no sort (relevance only) and no real pagination (always page 1).

javdb

No per-field filters, but the best sorting and the download source. Only the coarse censored tab (both ways), availability (playable / magnets / subtitle / single), and rich sort (relevance / release / update / rating). Paginated. Pin it for magnets and download links.

javdatabase

Archive browsing by a single dimension (genre, actress, maker, series, director), where only genre + maker combine into a genre ∩ studio archive. English values, auto-slugified ("S1 NO.1 STYLE"s1-no-1-style). Censored and uncensored. Paginated, newest-first. Good for descriptions and sample images.

Next

  • Filtering: the full per-provider capability matrix and /query cheat sheet.
  • MCP server: providers as tool arguments.
  • API reference: every endpoint with a live playground.

On this page