Lewati ke konten
javinfo

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.

EndpointGunakan untukPer 1.000 pada bawaan
/discover/trendingRilis terbaru, diperingkat$0.80 (num=20)
/discover/underratedJudul lama dengan rating tinggi$0.80 (num=20)
/discover/suggestionTypeahead lintas kode, pemeran, tag, dan studio$0.40 (num=8)
/discover/similarJudul yang mirip dengan satu kode awal$0.48 (num=12)
/discover/duelPasangan A/B dengan seed$0.40
/discover/calendarRilis dikelompokkan per hari$0.40
/discover/tagsJumlah tag dalam jendela waktu$1.20 (num=30)
/discover/studiosDirektori studio, atau katalog satu studio$1.20 / $0.80
/discover/seriesSatu seri, terbaru dulu$0.80 (num=20)
/discover/genresJumlah genre untuk seluruh katalog$2.40 (num=60)
/discover/randomJudul acak yang cocok dengan filter$0.40 (num=10)
/discover/for-youPilihan dari riwayat pencarian akun sendiri$0.80 (num=20)
/discover/statsTotal katalog per sumber$0.40

Kartu film

Setiap judul dalam respons jelajah berbentuk ini. Satu kartu berlaku untuk semua endpoint di bawah.

FieldTipeCatatan
codestringKode judul yang dinormalisasi, mis. ABP-002
titlestring | nullJudul bahasa Inggris saja; null saat sumber tidak memilikinya. Baris javbus sering punya title: null dengan judul bahasa Jepang di titleJa
titleJastring | nullJudul bahasa Jepang
releaseDatestring | nullYYYY-MM-DD
runtimeMinsnumber | nullMenit
makerstring | nullStudio / pembuat
labelstring | nullLabel
seriesstring | nullSeri, seperti ditulis sumbernya
categoriesstring[]Tag genre
actressesstring[]Pemeran, nama bahasa Inggris bila sumber memilikinya
coverstring | nullURL jaket
ratingnumber | nullhanya javlibrary, 1–10; null di sumber lain
sourcestringSumber yang memasok kartu ini: fanza, javdatabase, javlibrary, javbus, atau missav
urlstring | nullHalaman 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:

FieldTipeCatatan
sourcesstring[]Nama sumber publik yang menjawab dengan hasil atau hitungan facet. Array kosong biasanya berarti katalog tidak dapat dijangkau
scannednumberDokumen yang dibaca sebelum peringkat atau pemfilteran. 0 pada endpoint khusus facet
latencyMsnumberWaktu 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".

ParameterTipeBawaanRentang
rangeinteger301–365, hari ke belakang yang diperiksa
numinteger201–50
genrestringtidak adaNama 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".

ParameterTipeBawaanRentang
minAgeDaysinteger36530–3650, usia minimum dalam hari
numinteger201–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.

ParameterTipeBawaanRentang
qstringwajibminimal 1 karakter
numinteger81–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:

kindvaluelabelextra
codeKode judulKode yang samaJudul bahasa Inggris, atau yang bahasa Jepang bila tidak ada judul bahasa Inggris
idolId pemeranNamaURL gambar
tagSlug tagSlug yang samaJumlah
studioNama studioNama yang samaJumlah

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.

ParameterTipeBawaanRentang
qstringwajibSebuah kode judul
numinteger121–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.

ParameterTipeBawaanRentang
seedstringtanggal UTC hari inistring apa pun
genrestringtidak adaNama kategori persis
performerstringtidak adaNama 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.

ParameterTipeBawaanRentang
fromstringhari iniYYYY-MM-DD
tostringhari ini + 30 hariYYYY-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:

FieldArti
throughHari terakhir yang tercakup penuh, YYYY-MM-DD. Sama dengan to kecuali jawabannya terpotong.
truncatedtrue 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".

ParameterTipeBawaanRentang
rangeinteger301–365, hari ke belakang
numinteger301–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.

ParameterTipeBawaanRentang
qstringtidak adaNama studio persis; beralih ke mode katalog
rangeinteger36530–3650, hanya mode direktori
numinteger30 direktori, 20 katalog1–100 direktori; katalog dibatasi 50
pageinteger11 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.

ParameterTipeBawaanRentang
qstringwajibNama seri persis
numinteger201–50
pageinteger11 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.

ParameterTipeBawaanRentang
numinteger601–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".

ParameterTipeBawaanRentang
genrestringtidak adaNama kategori persis
performerstringtidak adaNama pemeran persis
studiostringtidak adaNama studio persis
censoredstringtidak adacensored atau uncensored
numinteger101–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.

ParameterTipeBawaanRentang
numinteger201–50
lookbackinteger201–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/random tanpa cache.
  • 4xx apa pun. Permintaan gagal tidak pernah ditagih.
  • Jawaban terdegradasi: pembacaan hulu gagal, API menyajikan yang ada, menyetel X-Degraded ke jumlah gagal, dan tidak menagih atau meng-cache. Periksa jika respons tampak tipis.

X-Balance-Remaining adalah sisa kredit setelah panggilan.

Di halaman ini