Endpoint jelajah
Jelajahi katalog tanpa kode awal: tren, judul serupa, rilis per hari, studio, seri, genre, dan pilihan acak.
Tiga belas endpoint GET pada katalog, bukan satu kode. Semua memakai x-javinfo-key dan dimeter.
Sebagian besar mengembalikan meta: sumber yang menjawab, dokumen yang dipindai, durasi.
Harga dasar $0.40 per 1.000 panggilan. Dengan num, harga naik di atas 10: num=20 berbiaya $0.80.
Rumus di Batas laju & tagihan.
| Endpoint | Gunakan untuk | Per 1.000 pada bawaan |
|---|---|---|
/discover/trending | Rilis terbaru, diperingkat | $0.80 (num=20) |
/discover/underrated | Judul lama dengan rating tinggi | $0.80 (num=20) |
/discover/suggestion | Typeahead lintas kode, pemeran, tag, dan studio | $0.40 (num=8) |
/discover/similar | Judul yang mirip dengan satu kode awal | $0.48 (num=12) |
/discover/duel | Pasangan A/B dengan seed | $0.40 |
/discover/calendar | Rilis dikelompokkan per hari | $0.40 |
/discover/tags | Jumlah tag dalam jendela waktu | $1.20 (num=30) |
/discover/studios | Direktori studio, atau katalog satu studio | $1.20 / $0.80 |
/discover/series | Satu seri, terbaru dulu | $0.80 (num=20) |
/discover/genres | Jumlah genre untuk seluruh katalog | $2.40 (num=60) |
/discover/random | Judul acak yang cocok dengan filter | $0.40 (num=10) |
/discover/for-you | Pilihan dari riwayat pencarian akun sendiri | $0.80 (num=20) |
/discover/stats | Total katalog per sumber | $0.40 |
Kartu film
Setiap judul dalam respons jelajah berbentuk ini. Satu kartu berlaku untuk semua endpoint di bawah.
| Field | Tipe | Catatan |
|---|---|---|
code | string | Kode judul yang dinormalisasi, mis. ABP-002 |
title | string | null | Judul bahasa Inggris saja; null saat sumber tidak memilikinya. Baris javbus sering punya title: null dengan judul bahasa Jepang di titleJa |
titleJa | string | null | Judul bahasa Jepang |
releaseDate | string | null | YYYY-MM-DD |
runtimeMins | number | null | Menit |
maker | string | null | Studio / pembuat |
label | string | null | Label |
series | string | null | Seri, seperti ditulis sumbernya |
categories | string[] | Tag genre |
actresses | string[] | Pemeran, nama bahasa Inggris bila sumber memilikinya |
cover | string | null | URL jaket |
rating | number | null | hanya javlibrary, 1–10; null di sumber lain |
source | string | Sumber yang memasok kartu ini: fanza, javdatabase, javlibrary, javbus, atau missav |
url | string | null | Halaman di situs sumber, bila sumber menyimpannya |
Respons digabung per code; indeks pertama dalam urutan preferensi memasok metadata. rating
pengecualian: hanya javlibrary punya rating, jadi sumber lain null meski judulnya punya rating.
meta menjelaskan panggilan:
| Field | Tipe | Catatan |
|---|---|---|
sources | string[] | Nama sumber publik yang menjawab dengan hasil atau hitungan facet. Array kosong biasanya berarti katalog tidak dapat dijangkau |
scanned | number | Dokumen yang dibaca sebelum peringkat atau pemfilteran. 0 pada endpoint khusus facet |
latencyMs | number | Waktu sisi server |
Contoh dipangkas: item pertama, "…" untuk pengulangan, judul panjang dipotong. Nilainya nyata.
/discover/trending
API: /discover/trending
Rilis terbaru diperingkat berdasarkan kualitas dan tanggal. Untuk beranda atau rail "baru minggu ini".
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
range | integer | 30 | 1–365, hari ke belakang yang diperiksa |
num | integer | 20 | 1–50 |
genre | string | tidak ada | Nama kategori persis |
Harga: $0.80 per 1.000 pada num=20; num ≤ 10 $0.40.
Handler membaca range hari terakhir, terbaru dulu, lalu memeringkat ulang berdasarkan kebaruan,
rating, galeri, pratinjau, dan jumlah pemeran. Tanpa batas atas tanggal, pengumuman masa depan juga
muncul.
curl -s 'https://api.javinfo.dev/discover/trending?range=7&num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"source": "discover:trending",
"count": 3,
"results": [
{
"code": "FCDSS-120",
"title": "4 Hours of the Best Anal Licking Service: Sticking My Tongue in Your Asshole! [FALENO Maniac Special Selection]",
"titleJa": null,
"releaseDate": "2026-12-03",
"runtimeMins": 240,
"maker": "Faleno",
"label": "Faleno",
"series": "FALENO Compilation",
"categories": ["Anal Play", "Beautiful Girl", "…"],
"actresses": ["Ayaka Tomoda", "Chiharu Mitsuha", "…"],
"cover": "https://www.javdatabase.com/covers/full/1f/1fcdss00120pl.webp",
"rating": null,
"source": "javdatabase",
"url": "https://www.javdatabase.com/movies/fcdss-120/"
},
"…"
],
"meta": {
"sources": ["fanza", "javdatabase", "…"],
"scanned": 45,
"latencyMs": 23
}
}Status: 200, 400, 401, 402, 429.
/discover/underrated
API: /discover/underrated
Judul lama yang terlewat, diperingkat lebih berdasarkan rating daripada tanggal. Untuk rak "terlewatkan".
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
minAgeDays | integer | 365 | 30–3650, usia minimum dalam hari |
num | integer | 20 | 1–50 |
Harga: $0.80 per 1.000 pada num=20; num ≤ 10 $0.40.
Hanya javlibrary punya rating, jadi kumpulan kandidat dari indeks itu: delapan potongan 30 hari acak di 12 tahun sebelum batas. Judul tanpa rating dibuang; skor memihak yang lebih lama, berating tinggi, dan lengkap.
curl -s 'https://api.javinfo.dev/discover/underrated?num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"source": "discover:underrated",
"count": 3,
"results": [
{
"code": "IRCP-016",
"title": "The Price Of Chigasaki Lion Compliant With Me Naked",
"titleJa": "裸のわたしと言いなりの値段 茅ヶ崎りおん",
"releaseDate": "2014-07-13",
"runtimeMins": 120,
"maker": "Iromegane",
"label": "Iromegane",
"series": null,
"categories": ["Solowork", "Girl", "…"],
"actresses": ["Shiina Mayu (Chigasaki Rion)"],
"cover": "https://pics.dmm.co.jp/mono/movie/adult/ircp016/ircp016pl.jpg",
"rating": 10,
"source": "javlibrary",
"url": "https://www.javlibrary.com/en/javlijya24.html"
},
"…"
],
"meta": {
"sources": ["javlibrary"],
"scanned": 640,
"latencyMs": 63
}
}Status: 200, 400, 401, 402, 429.
/discover/suggestion
API: /discover/suggestion
Typeahead kotak pencarian: kode, pemeran, tag, studio, terdeduplikasi, kode dulu.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
q | string | wajib | minimal 1 karakter |
num | integer | 8 | 1–20 |
Harga: $0.40 per 1.000 pada num=8; num=20 $0.80.
Setiap entri menyebut apa itu dan apa yang ditampilkan di sampingnya:
kind | value | label | extra |
|---|---|---|---|
code | Kode judul | Kode yang sama | Judul bahasa Inggris, atau yang bahasa Jepang bila tidak ada judul bahasa Inggris |
idol | Id pemeran | Nama | URL gambar |
tag | Slug tag | Slug yang sama | Jumlah |
studio | Nama studio | Nama yang sama | Jumlah |
extra boleh null. Pencarian memakai prefiks yang sama dengan indeks film; tidak ada indeks n-gram.
Saran dibangun per jenis lalu dipotong ke num.
curl -s 'https://api.javinfo.dev/discover/suggestion?q=ABP&num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"q": "ABP",
"count": 3,
"results": [
{
"kind": "code",
"value": "ABP-001",
"label": "ABP-001",
"extra": "Lola Misaki at Your Service Newest Beauty Salon Addict"
},
{
"kind": "code",
"value": "ABP-002",
"label": "ABP-002",
"extra": "NEW TOKYO Style 01 - Aikarin"
},
"…"
]
}q yang hilang ditolak sebelum handler berjalan:
curl -s 'https://api.javinfo.dev/discover/suggestion' \
-H "x-javinfo-key: jvi_your_key_here"{
"defined": false,
"code": "BAD_REQUEST",
"status": 400,
"message": "Input validation failed",
"data": {
"issues": [
{
"expected": "string",
"code": "invalid_type",
"path": ["q"],
"message": "Invalid input: expected string, received undefined"
}
]
}
}Status: 200, 400, 401, 402, 429.
/discover/similar
API: /discover/similar
"Lebih banyak seperti ini." Satu kode, tetangga berperingkat, kartu awal, dan skor. Untuk halaman detail.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
q | string | wajib | Sebuah kode judul |
num | integer | 12 | 1–50 |
Harga: $0.48 per 1.000 pada num=12; num ≤ 10 $0.40.
Kode awal di-resolve di indeks film. Kandidat berbagi pemeran pertama atau salah satu dari tiga tag
pertama, lalu diperingkat berdasarkan pemeran, tag, pembuat, label, seri, durasi, dan tanggal. Kode awal
dikecualikan dari results; scores selaras dengan results per kode, 0–1, tiga desimal.
Kode yang tidak dikenal indeks mana pun adalah 404, bukan 200 kosong. Salah ketik tidak pernah
ditagih.
curl -s 'https://api.javinfo.dev/discover/similar?q=ABP-002&num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"source": "discover:similar",
"count": 3,
"results": [
{
"code": "WPC-013",
"title": "WPC-013 WATER POLE Aikarin",
"titleJa": "WPC-013 WATER POLE あいかりん",
"releaseDate": "2023-03-20",
"runtimeMins": 128,
"maker": "Prestige",
"label": "WPC",
"series": "WATER POLE",
"categories": ["Hot Girl", "Sailor Suit", "…"],
"actresses": ["Aikarin"],
"cover": null,
"rating": null,
"source": "missav",
"url": null
},
"…"
],
"meta": {
"sources": ["fanza", "javdatabase", "…"],
"scanned": 180,
"latencyMs": 72
},
"seed": {
"code": "ABP-002",
"title": "NEW TOKYO Style 01 - Aikarin",
"titleJa": null,
"releaseDate": "2013-06-01",
"runtimeMins": 127,
"maker": "Prestige",
"label": "ABSOLUTELY PERFECT",
"series": "Tokyo Style",
"categories": ["Facial", "Handjob"],
"actresses": ["Aikarin"],
"cover": "https://pics.dmm.co.jp/digital/video/118abp00002/118abp00002pl.jpg",
"rating": null,
"source": "fanza",
"url": null
},
"scores": [
{ "code": "WPC-013", "score": 0.5 },
{ "code": "MAS-110", "score": 0.496 },
"…"
]
}Kode tak dikenal, permintaan sama:
curl -s 'https://api.javinfo.dev/discover/similar?q=ZZZZ-99999&num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"defined": false,
"code": "NOT_FOUND",
"status": 404,
"message": "no title found for \"ZZZZ-99999\""
}Status: 200, 400, 401, 402, 404, 429.
/discover/duel
API: /discover/duel
Pasangan A/B untuk "pilih yang mana". seed yang sama menampilkan dua kartu yang sama.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
seed | string | tanggal UTC hari ini | string apa pun |
genre | string | tidak ada | Nama kategori persis |
performer | string | tidak ada | Nama pemeran persis |
Harga: $0.40 per 1.000, tetap. Tanpa pengatur halaman.
Kumpulan berisi 40 judul terbaru dari DMM + FANZA, javdatabase, dan javlibrary, dedup per kode, sudah
rilis dan berpemeran. genre dan performer mempersempitnya. PRNG ber-seed memilih dua dan mengurutkan
per kode, jadi a dan b ada di sisi yang sama untuk semua. Kumpulan bergerak tiap rilis, jadi seed
hanya stabil di jendela itu. a dan b boleh null jika kurang dari dua kandidat.
curl -s 'https://api.javinfo.dev/discover/duel?seed=42' \
-H "x-javinfo-key: jvi_your_key_here"{
"seed": "42",
"a": {
"code": "DSOD-124",
"title": "That absolute, total fatso made me come so many times it was embarrassing…",
"titleJa": "最低最悪なあのデブに恥ずかしいほど何度もイカされて…ションベン垂れ流す肉便器調教された言いなり美人清掃員 天川そら",
"releaseDate": "2026-11-06",
"runtimeMins": 141,
"maker": "Das",
"label": "Das",
"series": null,
"categories": ["Deep Throat", "Embarrassment", "…"],
"actresses": ["Sora Amakawa"],
"cover": "https://pics.dmm.co.jp/digital/video/dsod00124/dsod00124pl.jpg",
"rating": null,
"source": "fanza",
"url": null
},
"b": {
"code": "VRKM-1944",
"title": "[VR] Getting Hooked on Sora Amakawa",
"titleJa": null,
"releaseDate": "2026-11-06",
"runtimeMins": 84,
"maker": "K M Produce",
"label": "K M Produce",
"series": "pond",
"categories": ["8KVR", "Beautiful Tits", "…"],
"actresses": ["Sora Amakawa"],
"cover": "https://www.javdatabase.com/covers/full/vr/vrkm01944pl.webp",
"rating": null,
"source": "javdatabase",
"url": "https://www.javdatabase.com/movies/vrkm-1944/"
}
}Status: 200, 401, 402, 429.
/discover/calendar
API: /discover/calendar
Rilis antara dua tanggal, per hari. Untuk kalender.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
from | string | hari ini | YYYY-MM-DD |
to | string | hari ini + 30 hari | YYYY-MM-DD |
Harga: $0.40 per 1.000, tetap. Tiap panggilan di loop bawah ditagih terpisah.
Kedua tanggal inklusif. Nilainya independen: from saja tetap berakhir 30 hari dari hari ini, jadi
kirim keduanya untuk masa lalu. Hari kosong dilewati; grup menaik. Tiap rilis adalah kartu penuh.
Rentang panjang berhenti lebih awal
Tiap sumber mengembalikan maksimal 1.000 baris per panggilan, jadi rentang ramai penuh dalam sekitar 5 hari. Hanya hari lengkap yang kembali, dan endpoint menyebut berhenti di mana:
| Field | Arti |
|---|---|
through | Hari terakhir yang tercakup penuh, YYYY-MM-DD. Sama dengan to kecuali jawabannya terpotong. |
truncated | true saat hari-hari setelah through terpotong. |
from=2026-11-01&to=2026-11-14 terlalu panjang untuk satu panggilan:
curl -s 'https://api.javinfo.dev/discover/calendar?from=2026-11-01&to=2026-11-14' \
-H "x-javinfo-key: jvi_your_key_here"{
"from": "2026-11-01",
"to": "2026-11-14",
"through": "2026-11-05",
"truncated": true,
"count": 1011,
"days": [
{
"date": "2026-11-01",
"count": 109,
"releases": [
{
"code": "DANDYA-045",
"title": null,
"titleJa": "母親と行った銭湯でコッソリおちんちんをいじってくるお姉さんに逃げても追いかけられ何度も精子を飲まれてしまいました",
"releaseDate": "2026-11-01",
"runtimeMins": 175,
"maker": "DANDY",
"label": null,
"series": null,
"categories": [
"4K",
"Big Asses",
"Big Tits",
"…"
],
"actresses": [],
"cover": "https://pics.dmm.co.jp/digital/video/1dandya00045/1dandya00045pl.jpg",
"rating": null,
"source": "fanza",
"url": null
},
"…"
]
},
"…"
],
"meta": {
"sources": [
"fanza",
"javdatabase",
"javlibrary",
"javbus",
"missav"
],
"scanned": 3136,
"latencyMs": 352
}
}Jawaban itu berisi 1,011 judul dari 1 sampai 5 November. Rentang yang muat kembali utuh:
from=2026-11-01&to=2026-11-03 mengembalikan "through": "2026-11-03" dan "truncated": false.
Untuk sisanya, panggil lagi dengan from di hari setelah through dan ulangi sampai truncated
false. Panggilan kedua adalah from=2026-11-06&to=2026-11-14:
{
"from": "2026-11-06",
"to": "2026-11-14",
"through": "2026-11-14",
"truncated": false,
"count": 1101,
"days": [
"…"
],
"meta": {
"sources": [
"fanza",
"javdatabase",
"javbus",
"missav"
],
"scanned": 1957,
"latencyMs": 627
}
}Loop yang sama dalam kode:
let from = '2026-11-01';
const to = '2026-11-14';
const days = [];
while (from <= to) {
const res = await fetch(
`https://api.javinfo.dev/discover/calendar?from=${from}&to=${to}`,
{ headers: { 'x-javinfo-key': KEY } },
);
const page = await res.json();
days.push(...page.days);
if (!page.truncated) break;
const next = new Date(`${page.through}T00:00:00Z`);
next.setUTCDate(next.getUTCDate() + 1);
from = next.toISOString().slice(0, 10);
}Jika satu hari melebihi batas, hari itu kembali sebagian, through adalah hari itu, dan loop lanjut.
Status: 200, 400, 401, 402, 429.
/discover/tags
API: /discover/tags
Jumlah tag terbaru, tertinggi dulu. Untuk blok "tag yang sedang tren".
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
range | integer | 30 | 1–365, hari ke belakang |
num | integer | 30 | 1–100 |
Harga: $1.20 per 1.000 pada num=30; num ≤ 10 $0.40.
Hitungan dari facet DMM + FANZA dan javdatabase. Tag dikanonikalisasi sebelum dihitung, jadi varian melebur. Nilainya slug, bukan nama tampilan.
curl -s 'https://api.javinfo.dev/discover/tags?range=7&num=5' \
-H "x-javinfo-key: jvi_your_key_here"{
"source": "discover:tags",
"count": 5,
"results": [
{ "tag": "featured-actress", "count": 3476 },
{ "tag": "hi-def", "count": 2834 },
"…"
],
"meta": {
"sources": ["fanza", "javdatabase"],
"scanned": 0,
"latencyMs": 117
}
}Status: 200, 400, 401, 402, 429.
/discover/studios
API: /discover/studios
Satu rute, dua bentuk. Tanpa q, direktori studio per keluaran dalam range; dengan q, katalog
studio itu, terbaru dulu. kind menyebut yang mana: directory atau catalogue.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
q | string | tidak ada | Nama studio persis; beralih ke mode katalog |
range | integer | 365 | 30–3650, hanya mode direktori |
num | integer | 30 direktori, 20 katalog | 1–100 direktori; katalog dibatasi 50 |
page | integer | 1 | 1 ke atas, hanya mode katalog |
Harga: direktori $1.20 per 1.000 pada num=30; katalog $0.80 pada num=20. Katalog membatasi
num 50, jadi maksimum $2.00.
range diabaikan dengan q; page tanpa. Dalam mode katalog, total memperkirakan judul studio:
berpaginasi dengannya.
curl -s 'https://api.javinfo.dev/discover/studios?num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"kind": "directory",
"source": "discover:studios",
"count": 3,
"results": [
{ "studio": "MOODYZ", "count": 2688 },
{ "studio": "S1 NO.1 STYLE", "count": 2382 },
"…"
],
"meta": {
"sources": ["fanza"],
"scanned": 0,
"latencyMs": 416
}
}curl -s 'https://api.javinfo.dev/discover/studios?q=S1%20NO.1%20STYLE&num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"kind": "catalogue",
"source": "discover:studio",
"studio": "S1 NO.1 STYLE",
"total": 25713,
"count": 3,
"results": [
{
"code": "K9SNOS349",
"title": null,
"titleJa": "【数量限定】特大号新人 希望みう 104cm Iの素顔 濃厚なキスして、本能で交わって、ありのままを曝け出す。 (ブルーレイディスク) 生写真3枚セット",
"releaseDate": "2026-11-25",
"runtimeMins": 120,
"maker": "S1 NO.1 STYLE",
"label": "S1 NO.1 STYLE",
"series": null,
"categories": ["Big Tits", "Featured Actress", "…"],
"actresses": ["希望みう"],
"cover": "https://pics.dmm.co.jp/mono/movie/adult/k9snos349/k9snos349ps.jpg",
"rating": null,
"source": "fanza",
"url": null
},
"…"
],
"meta": {
"sources": ["fanza"],
"scanned": 3,
"latencyMs": 7
}
}Status: 200, 400, 401, 402, 429.
/discover/series
API: /discover/series
Katalog satu seri, terbaru dulu. Untuk mendaftar sisanya saat pemanggil membuka judul.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
q | string | wajib | Nama seri persis |
num | integer | 20 | 1–50 |
page | integer | 1 | 1 ke atas |
Harga: $0.80 per 1.000 pada num=20; num ≤ 10 $0.40.
q adalah kecocokan persis nama seri di indeks DMM + FANZA, bukan pencarian. Kirim string yang
disimpan katalog, bisa dibaca dari series judul mana pun. Nama sebagian atau ejaan lain mengembalikan
200 dengan count: 0, bukan 404. total memperkirakan jumlah judul seri.
curl -s 'https://api.javinfo.dev/discover/series?q=Unfaithful%20Housewife&num=2' \
-H "x-javinfo-key: jvi_your_key_here"{
"source": "discover:series",
"count": 2,
"results": [
{
"code": "JUKD-481",
"title": "Unfaithful Housewife 5",
"titleJa": "不倫妻5",
"releaseDate": "2006-12-25",
"runtimeMins": 87,
"maker": "MADONNA",
"label": "Madonna",
"series": "Unfaithful Housewife",
"categories": ["69", "Adultery", "…"],
"actresses": ["Anna Muto", "Hiromi Yuki", "…"],
"cover": "https://pics.dmm.co.jp/digital/video/jukd00481/jukd00481pl.jpg",
"rating": null,
"source": "fanza",
"url": null
},
"…"
],
"meta": {
"sources": ["fanza"],
"scanned": 2,
"latencyMs": 14
},
"series": "Unfaithful Housewife",
"total": 7
}Status: 200, 400, 401, 402, 429.
/discover/genres
API: /discover/genres
Taksonomi genre dengan hitungan seluruh katalog. Untuk menyiapkan menu filter.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
num | integer | 60 | 1–200 |
Harga: $2.40 per 1.000 pada num=60; num ≤ 10 $0.40; num=200 $8.00.
Nilai di sini label tampilan (Featured Actress), bukan slug seperti /discover/tags. Hitungan hanya
dari DMM + FANZA; sumber lain tidak menambah.
curl -s 'https://api.javinfo.dev/discover/genres?num=5' \
-H "x-javinfo-key: jvi_your_key_here"{
"source": "discover:genres",
"count": 5,
"results": [
{ "genre": "Featured Actress", "count": 589656 },
{ "genre": "Creampie", "count": 438721 },
"…"
],
"meta": {
"sources": ["fanza"],
"scanned": 0,
"latencyMs": 163
}
}Status: 200, 400, 401, 402, 429.
/discover/random
API: /discover/random
Judul acak dengan filter opsional. Untuk tombol "kejutkan saya".
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
genre | string | tidak ada | Nama kategori persis |
performer | string | tidak ada | Nama pemeran persis |
studio | string | tidak ada | Nama studio persis |
censored | string | tidak ada | censored atau uncensored |
num | integer | 10 | 1–50 |
Harga: $0.40 per 1.000 pada num=10; num=50 $2.00.
Filter digabung dengan AND. Undian tidak seragam: handler membaca lima bulan acak, mengambil offset di masing-masing, mengocok kumpulan, dan menambah saat filter sempit membuatnya kurang. Panggilan berurutan mengembalikan judul tak berhubungan.
censored hanya berubah dengan uncensored, yang membaca bagian tanpa sensor javbus alih-alih
DMM + FANZA. Mengirim censored sama dengan menghilangkannya. Tanpa cache, tiap panggilan mengambil
sampel lagi. Respons tanpa meta dan source.
curl -s 'https://api.javinfo.dev/discover/random?num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"count": 3,
"results": [
{
"code": "JUY-689",
"title": "A Former Race Queen Married Woman Ai Izumi 32 Years Old Her Adult Video Debut!!",
"titleJa": "元レースクイーンの人妻 和泉藍 32歳 AVDebut!!",
"releaseDate": "2018-11-25",
"runtimeMins": 120,
"maker": "MADONNA",
"label": "Madonna",
"series": null,
"categories": ["Debut", "Digital Mosaic", "…"],
"actresses": ["Ai Izumi"],
"cover": "https://pics.dmm.co.jp/digital/video/juy00689/juy00689pl.jpg",
"rating": null,
"source": "fanza",
"url": null
},
"…"
]
}Dan dengan filter tanpa sensor:
curl -s 'https://api.javinfo.dev/discover/random?censored=uncensored&num=2' \
-H "x-javinfo-key: jvi_your_key_here"{
"count": 2,
"results": [
{
"code": "KING-1009",
"title": null,
"titleJa": "Computer Fantasy",
"releaseDate": "2004-08-24",
"runtimeMins": 90,
"maker": "POPMedia",
"label": null,
"series": null,
"categories": [],
"actresses": [],
"cover": "https://www.javbus.com/imgs/cover/qq6_b.jpg",
"rating": null,
"source": "javbus",
"url": "https://www.javbus.com/en/KING1009"
},
"…"
]
}Status: 200, 400, 401, 402, 429.
/discover/for-you
API: /discover/for-you
Rekomendasi dari riwayat pencarian akun. Dua kunci satu akun berbagi riwayat: riwayat per pengguna, bukan per kunci.
| Parameter | Tipe | Bawaan | Rentang |
|---|---|---|---|
num | integer | 20 | 1–50 |
lookback | integer | 20 | 1–100, berapa banyak pencarian terakhir yang dibaca |
Harga: $0.80 per 1.000 pada num=20; num ≤ 10 $0.40.
Hanya panggilan sukses ke /movie, /query, dan /idols yang dihitung. Handler membaca lookback
baris terakhir, menyimpan hingga lima kueri berbeda, mengambil tag hasil teratasnya, lalu memilih judul
terbaru yang berbagi tag itu. Skor /discover/trending mengurutkan.
basis menjelaskan pilihan untuk ditampilkan: kueri, tag turunan, dan fallback. Tanpa riwayat,
fallback bernilai true dan jawabannya judul terbaru 30 hari.
curl -s 'https://api.javinfo.dev/discover/for-you?num=3' \
-H "x-javinfo-key: jvi_your_key_here"{
"source": "discover:for-you",
"count": 1,
"results": [
{
"code": "FC2-PPV-4973873",
"title": "FC2-PPV-4973873 [50% OFF for one week] [First time] A 35-year-old married bank employee with a cold demeanor. She's unp…",
"titleJa": "FC2-PPV-4973873 【一週間50%OFF】【初】35歳既婚の塩対応銀行員。近寄りがたいから一転、バキュームフェラで濃厚ザーメンを搾り取る。口内射精、ごっくん合計2発。",
"releaseDate": "2026-09-09",
"runtimeMins": 35,
"maker": "Fc2",
"label": null,
"series": null,
"categories": ["Wife", "Adultery", "…"],
"actresses": [],
"cover": null,
"rating": null,
"source": "missav",
"url": null
}
],
"meta": {
"sources": ["missav"],
"scanned": 1,
"latencyMs": 115
},
"basis": {
"queries": ["JQJ-002", "JUR-851", "…"],
"tags": ["featured-actress", "big-tits", "…"],
"fallback": false
}
}Status: 200, 400, 401, 402, 429.
/discover/stats
API: /discover/stats
Total per sumber, dengan stempel waktu. Tanpa parameter.
Harga: $0.40 per 1.000 panggilan, tetap.
Hitungan adalah dokumen indeks: judul di dua sumber dihitung dua kali. asOf adalah waktu baca.
GET /stats publik tanpa kunci dan di-cache sehari, tetapi melaporkan hitungan penyedia:
FANZA dan DMM dipisah, tanpa total.
curl -s 'https://api.javinfo.dev/discover/stats' \
-H "x-javinfo-key: jvi_your_key_here"{
"total": 3980531,
"sources": {
"fanza": 1759469,
"javdatabase": 505464,
"javlibrary": 430950,
"javbus": 663879,
"missav": 519017,
"idols": 101752
},
"asOf": "2026-11-06T18:30:56.778Z"
}Status: 200, 401, 402, 429.
Error
Masukan divalidasi sebelum handler. Parameter salah mengembalikan 400 dengan code: "BAD_REQUEST",
message: "Input validation failed", dan array issues yang menyebutnya. API ini tidak pernah 422: di
luar rentang atau tipe salah juga 400. range adalah hari, jadi range=7 berfungsi dan range=week
adalah 400 dengan issues[].path ["range"]. Body dari /discover/trending?num=500, di atas 50:
{
"defined": false,
"code": "BAD_REQUEST",
"status": 400,
"message": "Input validation failed",
"data": {
"issues": [
{
"origin": "number",
"code": "too_big",
"maximum": 50,
"inclusive": true,
"path": ["num"],
"message": "Too big: expected number to be <=50"
}
]
}
}Kunci hilang dan kunci ditolak berbeda. Tanpa kunci:
{
"defined": false,
"code": "UNAUTHORIZED",
"status": 401,
"message": "Unauthorized"
}Kunci yang tidak diterima gerbang:
{ "error": "invalid api key" }Kredit kurang. Tidak ada tagihan; Retry-After satu jam:
{
"defined": false,
"code": "PAYMENT_REQUIRED",
"status": 402,
"message": "insufficient balance"
}Melewati batas per menit untuk akun. Retry-After dalam detik:
{ "error": "rate limit exceeded" }404 khusus /discover/similar, seperti di atas. Endpoint jelajah lain tidak mengembalikannya.
Apa yang gratis
Hanya 200 baru yang ditagih. Gratis:
- Cache hit:
X-Cache: HIT, tanpa kredit./discover/randomtanpa cache. 4xxapa pun. Permintaan gagal tidak pernah ditagih.- Jawaban terdegradasi: pembacaan hulu gagal, API menyajikan yang ada, menyetel
X-Degradedke jumlah gagal, dan tidak menagih atau meng-cache. Periksa jika respons tampak tipis.
X-Balance-Remaining adalah sisa kredit setelah panggilan.