Chuyển đến nội dung
javinfo

Lọc

Lọc, sắp xếp và phân trang kết quả /query, kèm mức hỗ trợ của từng nhà cung cấp.

Lọc chỉ áp dụng cho /query. Endpoint kết quả đơn /movie và /random không nhận bộ lọc.


1. Bắt đầu nhanh

/query nhận bốn đầu vào tùy chọn bên cạnh q: filter, sort, page và num (kích thước trang). GET và POST đều hoạt động.

KEY="jvi_..."   # your API key, sent as the x-javinfo-key header

# POST — genre + runtime filter, newest first
curl -s -X POST https://api.javinfo.dev/query \
  -H "x-javinfo-key: $KEY" -H 'content-type: application/json' \
  -d '{
        "q": "ema kisaki",
        "filter": { "genre": "Big Tits", "runtimeMin": 120 },
        "sort": "release",
        "page": 1
      }'

# GET — same thing, flattened into query params
curl -s "https://api.javinfo.dev/query?q=ema%20kisaki&filter[genre]=Big%20Tits&filter[runtimeMin]=120&sort=release" \
  -H "x-javinfo-key: $KEY"

q tùy chọn khi có bộ lọc. Bạn có thể duyệt cả danh mục mà không cần từ khóa:

# All "creampie" titles, no search term
curl -s -X POST https://api.javinfo.dev/query \
  -H "x-javinfo-key: $KEY" -H 'content-type: application/json' \
  -d '{ "filter": { "genre": "creampie" } }'

Không có q lẫn bộ lọc → 400 ("provide a search query or at least one filter").

$0.40 mỗi 1.000 lần gọi ở mức num=10, tăng theo kích thước trang (thanh toán). Bộ lọc không đổi giá. Không có kết quả (200 với count: 0) hoặc lỗi: miễn phí.


2. Các đầu vào

filter

Đối tượng. Mọi trường đều tùy chọn; chỉ đặt trường cần dùng.

TrườngKiểuÝ nghĩa
genrestringDanh mục / thể loại
actressstringNữ diễn viên (người biểu diễn)
makerstringNhà sản xuất / studio
seriesstringLoạt phim
directorstringĐạo diễn
labelstringNhãn (label)
actorstringDiễn viên nam
censored"censored" | "uncensored"Trạng thái che mờ (mosaic)
runtimeMinnumber (phút)Thời lượng tối thiểu
runtimeMaxnumber (phút)Thời lượng tối đa
releaseAfterstring YYYY-MM-DDPhát hành vào/sau
releaseBeforestring YYYY-MM-DDPhát hành vào/trước
availability"playable" | "magnets" | "subtitle" | "single"Có stream / magnet / phụ đề / là tựa đề đơn

sort

relevance (mặc định), release, update, rating, views.

  • relevance — độ liên quan khớp văn bản. Mặc định.
  • release — ngày phát hành mới nhất trước.
  • update — mới thêm hoặc cập nhật gần đây trước.
  • rating — đánh giá cao nhất trước.
  • views — dành riêng. Chưa nhà cung cấp nào hỗ trợ (luôn bị từ chối).

page

Số nguyên từ 1. Bỏ qua = trang 1. Kích thước do num quyết định.

Giới hạn phân trang sâu. Chỉ mục fanza/dmm giới hạn tập kết quả ở 1.000 dòng, nên page × num ≤ 1000: với num: 50, trang 20 là trang cuối. Xa hơn sẽ nhận 404 (không có kết quả), không phải lỗi. Để đi sâu hơn, thu hẹp bằng filter thay vì phân trang tiếp.

num

Số kết quả mỗi trang. Số nguyên, mặc định 10, tối đa 50 (giá trị lớn hơn bị giới hạn, không bị từ chối; num < 1 → 400). missav giới hạn ở số lượng tìm kiếm của chính nó; các nhà cung cấp khác đều phân trang. Độ lệch page tính từ num (trang 2 với num=10 bỏ qua 10 kết quả đầu).

Đầu vào số được ép kiểu trên cả hai phương thức, kể cả page và filter[...] lồng nhau; GET với filter[runtimeMin]=120 vẫn hoạt động.


3. Ma trận khả năng của nhà cung cấp

/query tìm kiếm nhiều nhà cung cấp và không phải nhà nào cũng hỗ trợ mọi bộ lọc. Đọc bảng trước khi xây dựng truy vấn.

Nhà cung cấp (và id): query:fanza, query:dmm (hai cửa hàng DMM + FANZA), query:javdatabase, query:sextb, query:javlibrary, query:javbus, query:missav, query:javdb.

Khả năngfanza / dmmmissavjavdbjavdatabasesextbjavlibraryjavbus
genre✅✅❌✅✅✅✅
actress✅✅❌✅✅✅✅
maker✅✅❌✅✅✅✅
series✅✅❌✅✅✅✅
director✅✅❌✅✅✅✅
label✅✅❌✅✅✅✅
actor✅✅❌✅✅✅❌
censored: censored✅✅✅✅✅✅✅
censored: uncensored❌✅✅✅✅❌✅
runtimeMin / runtimeMax✅✅❌✅✅✅✅
releaseAfter / releaseBefore✅✅❌✅✅✅✅
availability❌❌✅❌❌❌❌
Kết hợp nhiều bộ lọcbất kỳ tổ hợp nàobất kỳ tổ hợp nào❌ khôngbất kỳ tổ hợp nàobất kỳ tổ hợp nàobất kỳ tổ hợp nàobất kỳ tổ hợp nào
sort: relevance✅✅✅✅✅✅✅
sort: release✅❌✅✅✅✅✅
sort: update❌❌✅❌❌❌❌
sort: rating❌❌✅❌❌❌❌
sort: views❌❌❌❌❌❌❌
page✅❌ (luôn trang 1)✅✅✅✅✅

Chú thích: ✅ được hỗ trợ · ❌ không được hỗ trợ.

Ghi chú:

  • fanza/dmm chỉ có nội dung che mờ. Bộ lọc uncensored loại trừ chúng.
  • javdb không có bộ lọc theo trường. Chỉ tab censored thô, availability và sắp xếp phong phú; yêu cầu một chiều có tên sẽ loại trừ nó.
  • javlibrary chỉ có nội dung che mờ. Bộ lọc uncensored loại trừ nó.
  • javbus không có chiều actor. filter.actor bị ghim trả về 422. Nó cũng chỉ sắp xếp theo relevance hoặc release; sort: rating bị từ chối.
  • javbus nhận tên tiếng Nhật hoặc tiếng Anh. Các mệnh đề diễn viên, nhà sản xuất và thể loại đọc cả hai trường, nên 三上悠亜 và Yua Mikami đều khớp. Thể loại là tên tiếng Anh kèm tương đương tiếng Nhật.
  • javdatabase chỉ có tiếng Anh. Kho ngữ liệu là trang tiếng Anh; truy vấn tiếng Nhật (巨乳) không khớp và bị bỏ qua. Truyền romaji hoặc tiếng Anh.
  • missav bỏ qua page và sort. Luôn trả trang đầu tiên, xếp theo độ liên quan.
  • javdatabase, sextb, javlibrary và javbus đến từ danh mục của chúng tôi. Lọc và phân trang nhanh, đầy đủ, không có giới hạn từ nguồn.

4. Cách chọn nhà cung cấp

/query thử các nhà cung cấp theo thứ tự; kết quả hợp lệ đầu tiên thắng:

FANZA → DMM → javdatabase → sextb → javlibrary → javbus → missav → javdb

Bảy nhà đầu tiên (đến missav) phục vụ từ chỉ mục của chúng tôi. javdb lấy trực tiếp làm tầng dự phòng.

Bộ lọc không thể đáp ứng được xử lý tùy vào việc bạn có ghim nhà cung cấp hay không.

Không ghim (mặc định) — bỏ qua và tiếp tục

Không gửi providers thì mọi nhà cung cấp đã đăng ký đều là ứng viên. Nhà nào không đáp ứng đầy đủ bộ lọc sẽ bị bỏ qua âm thầm và thác nước chuyển tiếp. Nhà đầu tiên đáp ứng toàn bộ yêu cầu sẽ trả lời.

# sort=rating is javdb-only → every other provider is skipped, javdb answers.
curl -s -X POST https://api.javinfo.dev/query \
  -H "x-javinfo-key: $KEY" -H 'content-type: application/json' \
  -d '{ "q": "ABP", "sort": "rating" }'
# → { "source": "javdb", ... }

Nếu không nhà nào đáp ứng được → 422 kèm lý do.

Đã ghim — lỗi cứng

Gửi providers để buộc một nhà cung cấp hoặc một tập hợp. Nếu nhà đã ghim không đáp ứng được, yêu cầu thất bại với 422 và message nêu lý do; không bao giờ bị bỏ qua âm thầm.

# Pin javdb, ask for a genre it can't filter → 422
curl -s -X POST https://api.javinfo.dev/query \
  -H "x-javinfo-key: $KEY" -H 'content-type: application/json' \
  -d '{ "q": "x", "providers": ["query:javdb"], "filter": { "genre": "creampie" } }'
# → 422 { "message": "does not support filter \"genre\"" }

# Pin fanza, ask for uncensored → 422
#   → { "message": "does not support uncensored content" }

providers nhận danh sách phân tách bằng dấu phẩy hoặc mảng, có hoặc không có tiền tố query:: "providers": ["fanza","missav"] hoặc "providers": "javdb".


5. Giá trị truyền nguyên văn

Truyền thẳng v1: giá trị bộ lọc được gửi đến backend của nhà cung cấp nguyên trạng. Không có phân loại chung hay khớp mờ. Một giá trị hoạt động ở nhà này thường không khớp ở nhà khác, vì mỗi nguồn lưu metadata theo cách riêng.

Cần lường trước:

  • Thể loại khác nhau theo nhà cung cấp.

    • fanza/dmm, javdatabase và sextb dùng tiếng Anh ("Big Tits", "creampie").
    • missav dùng tiếng Nhật ("巨乳", "フィスト"). Thể loại tiếng Anh không trả về gì.
    • javbus nhận cả hai ngôn ngữ và khớp với cả hai.
  • Tên phải khớp chính xác. Không phải chuỗi con. Chỉ mục DMM + FANZA lưu bí danh trong tên, ví dụ "Ema Kisaki (HARUKI, Haruki Kato)"; actress: "Ema Kisaki" trả về không dòng nào. Bạn cần nguyên chuỗi đã lưu. (Điểm hạn chế đã biết của v1.)

  • censored mang nghĩa khác theo nguồn. missav không có cờ theo nghĩa đen; API ánh xạ censored sang tựa đề che mờ phổ thông và uncensored sang mọi thứ còn lại (Caribbeancom, 10musume, Tokyo-Hot, 1pondo, FC2, bản rò rỉ không che, …).

  • javdatabase chỉ có tiếng Anh. Truyền tiếng Anh hoặc romaji; q hay giá trị tiếng Nhật không khớp và nhà cung cấp bị bỏ qua.

Nếu giá trị không khớp, bạn chỉ nhận ít dòng hơn hoặc không có dòng nào từ nhà đó (và nếu không ghim, thác nước tiếp tục). Không có lỗi: khớp rỗng không phải lỗi.


6. Định dạng phản hồi

Nội dung là tập kết quả của nhà cung cấp thắng:

{
  "q": "ema kisaki",        // your query, echoed
  "source": "fanza",        // which provider answered
  "count": 10,              // page size (default 10, set by num)
  "results": [
    {
      "id": "118abp00999",          // stable id (content id or dvd id)
      "dvdId": "ABP-999",
      "title": "…",
      "cover": "https://…/…ps.jpg",
      "releaseDate": "2019-01-04",
      "extra": {                    // provider-specific, keys vary by source
        "runtimeMins": 130,
        "maker": "…",
        "categories": ["Big Tits", "…"],
        "actresses": [{ "name": "…", "image": "https://…|null" }],
        "duration": 7800,           // missav (seconds)
        "genres": ["巨乳"],          // missav
        "studio": "…", "url": "…"   // javdatabase
        // …
      }
    }
  ]
}

extra là tập cha: chỉ có khóa từ nhà cung cấp trả lời. Các trường cốt lõi (id, dvdId, title, cover, releaseDate) giống nhau ở mọi nhà.

Header phản hồi mang metadata: X-Response-Time-Ms, X-Balance-Remaining.


7. Bảng tra cứu theo nhà cung cấp

fanza / dmm (DMM + FANZA) — bộ lọc có cấu trúc phong phú nhất.

  • Mọi chiều có tên, kết hợp tự do. Genre và tên bằng tiếng Anh.
  • runtimeMin/runtimeMax tính bằng phút. sort: release. Có phân trang.
  • Chỉ danh mục censored. Không uncensored, không availability.
# Big-tits titles over 120 min, newest first
-d '{ "filter": { "genre": "Big Tits", "runtimeMin": 120 }, "sort": "release" }'

Tìm theo tên. Tiêu đề tiếng Anh chỉ có đến giữa năm 2022; bản mới hơn chỉ có tiếng Nhật. Tên diễn viên (romaji) được lập chỉ mục riêng, nên q với "Yua Mikami" vẫn tìm được bản phát hành gần đây. Thêm "sort": "release" để bản mới lên đầu: với relevance mặc định, phim cũ có tên trong tiêu đề tiếng Anh xếp trên.

# Newest Yua Mikami titles first
-d '{ "q": "Yua Mikami", "providers": ["fanza"], "sort": "release" }'
# Exact-match browse (see §5 on stored name strings)
-d '{ "filter": { "actress": "Yua Mikami" }, "sort": "release" }'

missav — bề mặt lọc rộng nhất, chỉ xếp theo độ liên quan.

  • Mọi chiều có tên (thể loại tiếng Nhật), khoảng thời lượng và phát hành, censored cả hai chiều.
  • Không sort, không phân trang thực (chỉ trang 1), không availability.
# Uncensored titles matching "caribbean"
-d '{ "q": "caribbean", "filter": { "censored": "uncensored" } }'
# Japanese genre browse
-d '{ "q": "SSIS", "filter": { "genre": "巨乳" } }'

javdb — không lọc theo trường, nhưng sắp xếp và availability tốt nhất.

  • Chỉ censored (cả hai), availability và sort (relevance/release/update/rating).
  • Có phân trang. Không genre/actress/maker.
# Playable, highest rated
-d '{ "q": "ABP", "filter": { "availability": "playable" }, "sort": "rating" }'

javdatabase — danh mục tiếng Anh đầy đủ. Censored và uncensored, mọi chiều có tên, cả hai khoảng. Chỉ giá trị tiếng Anh (q tiếng Nhật bị bỏ qua). sort: release. Có phân trang. Không availability.

# Creampie titles from S1
-d '{ "filter": { "genre": "creampie", "maker": "S1 NO.1 STYLE" } }'

sextb — gồm stream, từ danh mục của chúng tôi. Mọi chiều có tên, cả hai khoảng, censored cả hai chiều. sort: release. Có phân trang. Không availability.

javlibrary — chỉ censored, từ danh mục của chúng tôi. Mọi chiều có tên, cả hai khoảng. sort: release. Có phân trang. Không availability.

javbus — torrent và danh mục tiếng Nhật rộng, từ chỉ mục của chúng tôi. Mọi chiều có tên trừ actor, cả hai khoảng, censored cả hai chiều. Diễn viên, nhà sản xuất và thể loại nhận tiếng Nhật hoặc tiếng Anh. sort: relevance / release. Có phân trang. Không availability. Torrent đi kèm trên /movie dưới dạng extra.downloadLinks.

# Japanese actress, newest first (POST)
-d '{ "providers": ["javbus"], "filter": { "actress": "三上悠亜" }, "sort": "release", "num": 2 }'

# Japanese genre + runtime, over GET
curl -s 'https://api.javinfo.dev/query?providers=javbus&filter%5Bgenre%5D=%E5%B7%A8%E4%B9%B3&filter%5BruntimeMin%5D=120&num=2' \
  -H "x-javinfo-key: $KEY"

# Uncensored releases since 2026, newest first (POST)
-d '{ "providers": ["javbus"], "filter": { "censored": "uncensored", "releaseAfter": "2026-01-01" }, "sort": "release", "num": 2 }'

Ghim javbus và hỏi điều nó không làm được → 422 thật:

# No male-actor dimension → 422
-d '{ "providers": ["javbus"], "filter": { "actor": "Shimiken" } }'
# → { "defined": false, "code": "BAD_REQUEST", "status": 422, "message": "does not support filter \"actor\"" }

# No rating sort → 422
-d '{ "providers": ["javbus"], "q": "ABP", "sort": "rating" }'
# → { "defined": false, "code": "BAD_REQUEST", "status": 422, "message": "does not support sort \"rating\"" }

Kết quả là body /query chuẩn ở §6. Bản ghi /movie và danh sách torrent xem ở phần javbus.

8. Giới hạn của v1

  • Chuẩn hóa giá trị giữa các nhà cung cấp. Không có từ vựng thống nhất; dùng phương ngữ của từng nhà (tiếng Anh vs tiếng Nhật, chuỗi chính xác).
  • sort: views — dành riêng, chưa triển khai.
  • Nhiều giá trị mỗi chiều. Một giá trị mỗi trường (genre: ["a","b"] không được).
  • Khoảng trên javdb. Hoạt động ở mọi nơi khác.
  • availability ngoài javdb.
  • Kết hợp bộ lọc tùy ý trên javdb. Không có bộ lọc theo trường.
  • actor trên javbus. Không có chiều diễn viên nam.
  • sort: update, rating hoặc views trên javbus. Chỉ relevance và release.
  • Phân trang hoặc sắp xếp trên missav.
  • Phân trang quá 1.000 kết quả trên fanza/dmm (page × num ≤ 1000).
  • Lọc /movie hoặc /random.

Tổ hợp bất khả thi: đã ghim → 422 kèm lý do; không ghim → bỏ qua và thử nhà tiếp theo.

Tiếp theo

Trong trang này