Endpoint khám phá
Duyệt danh mục không cần mã khởi đầu: thịnh hành, tựa tương tự, phát hành theo ngày, studio, series, thể loại và lựa chọn ngẫu nhiên.
Mười ba endpoint GET trên danh mục, không phải một mã. Tất cả dùng x-javinfo-key và đều tính
phí. Hầu hết trả về meta: nguồn trả lời, số tài liệu đã quét, thời gian gọi.
Giá cơ bản $0.40 mỗi 1.000 lần gọi. Với num, giá tăng theo kích thước trang khi vượt 10: num=20
tốn $0.80. Công thức ở Giới hạn tốc độ & thanh toán.
| Endpoint | Dùng để | Mỗi 1.000 lần gọi ở mức mặc định |
|---|---|---|
/discover/trending | Bản phát hành gần đây, có xếp hạng | $0.80 (num=20) |
/discover/underrated | Tựa đề cũ có đánh giá cao | $0.80 (num=20) |
/discover/suggestion | Gợi ý tự động cho mã, diễn viên, thẻ và studio | $0.40 (num=8) |
/discover/similar | Tựa đề giống một mã gốc | $0.48 (num=12) |
/discover/duel | Cặp A/B theo seed | $0.40 |
/discover/calendar | Phát hành gom theo ngày | $0.40 |
/discover/tags | Số lượng thẻ trong một khoảng thời gian | $1.20 (num=30) |
/discover/studios | Danh sách studio, hoặc danh mục của một studio | $1.20 / $0.80 |
/discover/series | Một series, mới nhất trước | $0.80 (num=20) |
/discover/genres | Số lượng thể loại cho toàn bộ danh mục | $2.40 (num=60) |
/discover/random | Tựa đề ngẫu nhiên khớp bộ lọc | $0.40 (num=10) |
/discover/for-you | Lựa chọn từ lịch sử tìm kiếm của chính tài khoản | $0.80 (num=20) |
/discover/stats | Tổng số danh mục theo từng nguồn | $0.40 |
Thẻ tựa đề
Mọi tựa đề trong phản hồi khám phá đều có dạng này. Một thẻ dùng cho tất cả endpoint bên dưới.
| Trường | Kiểu | Ghi chú |
|---|---|---|
code | string | Mã tựa đề đã chuẩn hóa, ví dụ ABP-002 |
title | string | null | Chỉ tiêu đề tiếng Anh; null khi nguồn không có. Hàng javbus thường có title: null với tiêu đề tiếng Nhật trong titleJa |
titleJa | string | null | Tiêu đề tiếng Nhật |
releaseDate | string | null | YYYY-MM-DD |
runtimeMins | number | null | Số phút |
maker | string | null | Studio / nhà sản xuất |
label | string | null | Nhãn |
series | string | null | Series, đúng như nguồn ghi |
categories | string[] | Thẻ thể loại |
actresses | string[] | Dàn diễn viên, tên tiếng Anh khi nguồn có |
cover | string | null | URL ảnh bìa |
rating | number | null | chỉ javlibrary, 1–10; null ở mọi nguồn khác |
source | string | Nguồn đã cung cấp thẻ này: fanza, javdatabase, javlibrary, javbus hoặc missav |
url | string | null | Trang trên site nguồn, khi nguồn có lưu |
Các thẻ gộp theo code; chỉ mục đầu theo thứ tự ưu tiên giữ metadata. rating là ngoại lệ: chỉ
javlibrary có đánh giá, nên thẻ từ nguồn khác là null kể cả khi tựa đề được đánh giá ở nơi khác.
meta mô tả lần gọi:
| Trường | Kiểu | Ghi chú |
|---|---|---|
sources | string[] | Tên các nguồn công khai đã trả lời bằng kết quả khớp hoặc số facet. Mảng rỗng thường nghĩa là không truy cập được danh mục |
scanned | number | Số tài liệu đã đọc trước khi xếp hạng hoặc lọc. 0 ở các endpoint chỉ trả facet |
latencyMs | number | Thời gian phía máy chủ |
Ví dụ đã rút gọn: mục đầu, "…" cho mục lặp, tiêu đề dài bị cắt. Giá trị còn lại từ phản hồi thật.
/discover/trending
API: /discover/trending
Bản phát hành gần đây xếp theo chất lượng và ngày. Cho trang chủ hoặc dải "mới trong tuần này".
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
range | integer | 30 | 1–365, số ngày nhìn lại |
num | integer | 20 | 1–50 |
genre | string | không có | Tên thể loại chính xác |
Giá: $0.80 mỗi 1.000 ở num=20 mặc định; $0.40 khi num ≤ 10.
Handler đọc các bản phát hành trong range ngày gần nhất, mới nhất trước, rồi xếp lại theo độ mới,
đánh giá, gallery, bản xem trước và dàn diễn viên. Không có cận trên ngày, nên tựa đề công bố với
ngày phát hành tương lai cũng lọt vào.
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
}
}Trạng thái: 200, 400, 401, 402, 429.
/discover/underrated
API: /discover/underrated
Tựa đề đủ cũ để bị bỏ lỡ, xếp theo đánh giá nhiều hơn ngày. Cho kệ "bị lãng quên".
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
minAgeDays | integer | 365 | 30–3650, số ngày tuổi tối thiểu |
num | integer | 20 | 1–50 |
Giá: $0.80 mỗi 1.000 ở num=20 mặc định; $0.40 khi num ≤ 10.
Chỉ javlibrary có đánh giá, nên nhóm ứng viên chỉ từ chỉ mục đó: tám lát 30 ngày ngẫu nhiên trên 12 năm trước mốc. Tựa đề không có đánh giá bị loại; điểm ưu tiên bản ghi cũ hơn, điểm cao hơn, đầy đủ hơn.
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
}
}Trạng thái: 200, 400, 401, 402, 429.
/discover/suggestion
API: /discover/suggestion
Gợi ý tự động cho ô tìm kiếm: mã, diễn viên, thẻ, studio trộn lẫn, khử trùng lặp, mã đứng đầu.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
q | string | bắt buộc | ít nhất 1 ký tự |
num | integer | 8 | 1–20 |
Giá: $0.40 mỗi 1.000 ở num=8; $0.80 khi num=20.
Mỗi mục cho biết nó là gì và hiển thị gì bên cạnh:
kind | value | label | extra |
|---|---|---|---|
code | Mã tựa đề | Cùng mã | Tiêu đề tiếng Anh, hoặc tiếng Nhật khi không có tiêu đề tiếng Anh |
idol | id diễn viên | Tên | URL hình ảnh |
tag | slug thẻ | Cùng slug | Số lượng |
studio | Tên studio | Cùng tên | Số lượng |
extra có thể null. Tìm kiếm dùng khớp tiền tố như các chỉ mục phim; không có chỉ mục n-gram.
Gợi ý dựng theo loại rồi cắt còn 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"
},
"…"
]
}Thiếu q sẽ bị từ chối trước khi handler chạy:
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"
}
]
}
}Trạng thái: 200, 400, 401, 402, 429.
/discover/similar
API: /discover/similar
"Giống cái này hơn." Một mã, các lân cận đã xếp hạng, thẻ gốc và điểm số. Cho trang chi tiết.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
q | string | bắt buộc | Một mã tựa đề |
num | integer | 12 | 1–50 |
Giá: $0.48 mỗi 1.000 ở num=12; $0.40 khi num ≤ 10.
Mã gốc được phân giải qua các chỉ mục phim. Ứng viên chia sẻ diễn viên đầu hoặc một trong ba thẻ
đầu, rồi xếp theo dàn diễn viên, thẻ, nhà sản xuất, nhãn, series, thời lượng và ngày phát hành. Mã
gốc bị loại khỏi results; scores khớp results theo mã, thang 0–1, ba chữ số thập phân.
Một mã không chỉ mục nào biết là 404, không phải 200 rỗng. Lỗi gõ không bao giờ bị
tính phí.
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 },
"…"
]
}Cùng yêu cầu với một mã không tồn tại:
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\""
}Trạng thái: 200, 400, 401, 402, 404, 429.
/discover/duel
API: /discover/duel
Cặp A/B cho trò "chọn cái nào". Cùng seed cho mọi người thấy cùng hai thẻ.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
seed | string | ngày UTC hôm nay | chuỗi bất kỳ |
genre | string | không có | Tên thể loại chính xác |
performer | string | không có | Tên diễn viên chính xác |
Giá: $0.40 mỗi 1.000, cố định. Không có nút chỉnh kích thước trang.
Nhóm là 40 tựa đề mới nhất từ DMM + FANZA, javdatabase và javlibrary, khử trùng lặp theo mã, đã phát
hành và có dàn diễn viên. genre và performer thu hẹp. PRNG có seed chọn hai và sắp theo mã, nên
a và b ở cùng phía với mọi người gọi. Nhóm đổi khi có bản phát hành mới, nên seed chỉ ổn định
trong cửa sổ đó. a và b có thể null nếu ít hơn hai ứng viên.
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/"
}
}Trạng thái: 200, 401, 402, 429.
/discover/calendar
API: /discover/calendar
Phát hành giữa hai ngày, gom theo ngày. Cho giao diện lịch.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
from | string | hôm nay | YYYY-MM-DD |
to | string | hôm nay + 30 ngày | YYYY-MM-DD |
Giá: $0.40 mỗi 1.000, cố định. Mỗi lần gọi trong vòng lặp bên dưới tính riêng.
Cả hai ngày đều bao gồm. Hai giá trị độc lập: chỉ from vẫn kết thúc 30 ngày kể từ hôm nay, nên
truyền cả hai cho khoảng trong quá khứ. Ngày trống bị bỏ qua; nhóm tăng dần. Mỗi bản phát hành là
một thẻ đầy đủ.
Khoảng dài dừng sớm
Mỗi nguồn trả tối đa 1.000 dòng mỗi lần gọi, nên khoảng nhiều bản phát hành đầy trong khoảng 5 ngày. Chỉ ngày trọn vẹn được trả về, và endpoint cho biết đã dừng ở đâu:
| Trường | Ý nghĩa |
|---|---|
through | Ngày cuối cùng được bao trọn, YYYY-MM-DD. Bằng to trừ khi câu trả lời bị cắt. |
truncated | true khi các ngày sau through bị cắt. |
from=2026-11-01&to=2026-11-14 là quá dài cho một lần gọi:
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
}
}Phản hồi đó có 1,011 tựa từ 1 đến 5 tháng 11. Khoảng vừa đủ trả về nguyên vẹn:
from=2026-11-01&to=2026-11-03 trả "through": "2026-11-03" và "truncated": false.
Phần còn lại: gọi lại với from là ngày sau through, lặp đến khi truncated là false. Lần
gọi thứ hai là 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
}
}Vòng lặp tương tự bằng mã:
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);
}Nếu riêng một ngày vượt giới hạn, ngày đó trả về một phần, through là ngày đó, và vòng lặp sang
ngày kế.
Trạng thái: 200, 400, 401, 402, 429.
/discover/tags
API: /discover/tags
Số lượng thẻ trong khoảng gần đây, cao nhất trước. Cho khối "thẻ thịnh hành".
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
range | integer | 30 | 1–365, số ngày nhìn lại |
num | integer | 30 | 1–100 |
Giá: $1.20 mỗi 1.000 ở num=30; $0.40 khi num ≤ 10.
Số lượng từ facet DMM + FANZA và javdatabase. Thẻ được chuẩn hóa trước khi đếm, nên các cách viết gộp thành một. Giá trị là slug, không phải tên hiển thị.
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
}
}Trạng thái: 200, 400, 401, 402, 429.
/discover/studios
API: /discover/studios
Một route, hai dạng. Không có q: danh sách studio xếp theo sản lượng trong range. Có q: danh
mục của studio đó, mới nhất trước. kind cho biết dạng: directory hoặc catalogue.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
q | string | không có | Tên studio chính xác; chuyển sang chế độ danh mục |
range | integer | 365 | 30–3650, chỉ ở chế độ danh sách |
num | integer | 30 danh sách, 20 danh mục | danh sách 1–100; danh mục tối đa 50 |
page | integer | 1 | từ 1 trở lên, chỉ ở chế độ danh mục |
Giá: danh sách $1.20 mỗi 1.000 ở num=30; danh mục $0.80 ở num=20. Danh mục giới hạn num ở
50, nên tối đa $2.00.
range bị bỏ qua khi có q, page khi không có. Ở chế độ danh mục, total là số tựa ước tính của
studio: phân trang theo đó.
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
}
}Trạng thái: 200, 400, 401, 402, 429.
/discover/series
API: /discover/series
Danh mục một series, mới nhất trước. Để liệt kê phần còn lại khi người gọi mở một tựa.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
q | string | bắt buộc | Tên series chính xác |
num | integer | 20 | 1–50 |
page | integer | 1 | từ 1 trở lên |
Giá: $0.80 mỗi 1.000 ở num=20 mặc định; $0.40 khi num ≤ 10.
q khớp chính xác tên series trên DMM + FANZA, không phải tìm kiếm. Truyền đúng chuỗi danh mục
lưu, đọc được từ series của bất kỳ tựa nào. Tên một phần hoặc cách viết khác trả 200 với
count: 0, không phải 404. total là số tựa ước tính trong series.
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
}Trạng thái: 200, 400, 401, 402, 429.
/discover/genres
API: /discover/genres
Phân loại thể loại kèm số lượng toàn danh mục. Để tạo menu lọc.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
num | integer | 60 | 1–200 |
Giá: $2.40 mỗi 1.000 ở num=60; $0.40 khi num ≤ 10; $8.00 khi num=200.
Ở đây là nhãn hiển thị (Featured Actress), không phải slug như /discover/tags. Số lượng chỉ từ
DMM + FANZA; nguồn khác không cộng vào.
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
}
}Trạng thái: 200, 400, 401, 402, 429.
/discover/random
API: /discover/random
Tựa đề ngẫu nhiên khớp bộ lọc tùy chọn. Cho nút "làm tôi bất ngờ".
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
genre | string | không có | Tên thể loại chính xác |
performer | string | không có | Tên diễn viên chính xác |
studio | string | không có | Tên studio chính xác |
censored | string | không có | censored hoặc uncensored |
num | integer | 10 | 1–50 |
Giá: $0.40 mỗi 1.000 ở num=10; $2.00 khi num=50.
Bộ lọc kết hợp bằng AND. Cách rút không quét đều: handler đọc năm tháng ngẫu nhiên, lấy offset trong mỗi tháng, xáo trộn nhóm và bù khi bộ lọc hẹp làm thiếu. Các lần gọi liên tiếp trả tựa không liên quan.
censored chỉ đổi khi đặt uncensored: lúc đó đọc mục uncensored của javbus thay vì DMM + FANZA.
Truyền censored giống như bỏ qua. Không có bộ nhớ đệm, nên mỗi lần gọi lấy mẫu lại. Phản hồi
không có meta và 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
},
"…"
]
}Và với bộ lọc uncensored:
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"
},
"…"
]
}Trạng thái: 200, 400, 401, 402, 429.
/discover/for-you
API: /discover/for-you
Gợi ý từ lịch sử tìm kiếm của tài khoản. Hai khóa cùng tài khoản chia sẻ lịch sử: lịch sử theo người dùng, không theo khóa.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
num | integer | 20 | 1–50 |
lookback | integer | 20 | 1–100, số lần tìm kiếm gần đây cần đọc |
Giá: $0.80 mỗi 1.000 lần gọi ở mức mặc định num=20; $0.40 khi num ≤ 10.
Chỉ các lần gọi thành công tới /movie, /query và /idols được tính. Handler đọc lookback dòng
gần nhất, giữ tối đa năm truy vấn khác nhau, lấy thẻ của kết quả hàng đầu, rồi chọn tựa gần đây
chia sẻ các thẻ đó. Điểm thịnh hành của /discover/trending sắp thứ tự.
basis giải thích lựa chọn để hiển thị: truy vấn đã dùng, thẻ rút ra và fallback. Chưa có lịch
sử thì fallback là true và câu trả lời là tựa mới nhất trong 30 ngày.
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
}
}Trạng thái: 200, 400, 401, 402, 429.
/discover/stats
API: /discover/stats
Tổng theo nguồn, kèm dấu thời gian. Không có tham số.
Giá: $0.40 mỗi 1.000, cố định.
Số lượng là tài liệu chỉ mục: tựa trên hai nguồn được đếm hai lần. asOf là thời điểm đọc.
GET /stats công khai không cần khóa và cache một ngày, nhưng báo số theo nhà cung
cấp: FANZA và DMM tách riêng, không có tổng.
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"
}Trạng thái: 200, 401, 402, 429.
Lỗi
Đầu vào được kiểm tra trước handler. Tham số sai là 400 với code: "BAD_REQUEST",
message: "Input validation failed" và mảng issues nêu tên tham số. Bề mặt này không bao giờ trả
422: ngoài phạm vi cũng 400, sai kiểu cũng vậy. range là số ngày, nên range=7 chạy còn
range=week là 400 với issues[].path ["range"]. Nội dung từ /discover/trending?num=500,
vượt tối đa 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"
}
]
}
}Khóa thiếu và khóa bị từ chối khác nội dung. Không có khóa:
{
"defined": false,
"code": "UNAUTHORIZED",
"status": 401,
"message": "Unauthorized"
}Khóa mà cổng không chấp nhận:
{ "error": "invalid api key" }Không đủ tín dụng. Không tính phí; Retry-After một giờ:
{
"defined": false,
"code": "PAYMENT_REQUIRED",
"status": 402,
"message": "insufficient balance"
}Vượt giới hạn mỗi phút của tài khoản. Retry-After tính bằng giây:
{ "error": "rate limit exceeded" }404 chỉ có ở /discover/similar, như trên. Endpoint khám phá khác không trả về nó.
Những gì miễn phí
Chỉ 200 mới bị tính phí. Miễn phí:
- Trúng bộ nhớ đệm:
X-Cache: HIT, không trừ tín dụng./discover/randomkhông có bộ nhớ đệm. - Mọi
4xx. Yêu cầu thất bại không bao giờ bị tính phí. - Câu trả lời suy giảm: đọc chỉ mục phía trên thất bại, API phục vụ những gì có, đặt
X-Degradedthành số lượt thất bại và không tính phí hay cache. Kiểm tra nếu phản hồi có vẻ mỏng.
X-Balance-Remaining là tín dụng còn lại sau lần gọi.