Phân tích API
Thống kê diễn viên, nến, bạn diễn, bảng xếp hạng và khối lượng thị trường hàng tuần.
/analytics biến danh mục thành con số: sản lượng, đánh giá và độ trải studio, bạn diễn, bảng
xếp hạng và khối lượng phát hành hàng tuần. Mọi thứ tính từ ngày phát hành, đánh giá
javlibrary và số facet đã có. Không đọc lượt xem, không bịa series.
Sáu endpoint GET cần khóa. Từ $0.60 mỗi 1.000 lần gọi; bảng xếp hạng và đồ thị bạn diễn tốn
hơn khi num tăng.
Id diễn viên
Bốn endpoint nhận q: thống kê, nến, dòng thời gian và bạn diễn. q là id từ
/idols: slug javdatabase như yua-mikami, hoặc dmm-1005467 chỉ có trên DMM.
q là tra cứu tài liệu, không phải tìm kiếm. Tên tiếng Nhật như 三上悠亜 trả về 404: không
khớp tên hay bí danh. Tìm trong /idols rồi truyền id:
curl -s -X POST https://api.javinfo.dev/idols \
-H "x-javinfo-key: $KEY" -H 'content-type: application/json' \
-d '{ "q": "yua" }'Thống kê — /analytics/idols/stats
Thẻ hồ sơ một lần gọi: sản lượng, khoảng hoạt động, đánh giá, độ trải thể loại và studio, điểm sao 0–1. Cho đầu trang diễn viên hoặc xếp hạng danh sách ngắn.
| Tham số | Kiểu | Bắt buộc | Ghi chú |
|---|---|---|---|
q | string | có | id hoặc slug từ /idols |
curl -s 'https://api.javinfo.dev/analytics/idols/stats?q=yua-mikami' \
-H "x-javinfo-key: jvi_your_key_here"Phản hồi 200 (mảng đã rút gọn):
{
"idol": {
"id": "yua-mikami",
"name": "Yua Mikami",
"nameJa": "三上悠亜",
"image": "https://pics.dmm.co.jp/mono/actjpgs/mikami_yua.jpg",
"tags": [
"Twenties",
"Big Tits"
],
"age": 33,
"heightCm": 159,
"cup": "G",
"debut": null,
"birthplace": "Aichi",
"aliases": [
"みかみゆあ"
]
},
"works": 1127,
"worksBySource": {
"fanza": 1127,
"javdatabase": 365,
"javlibrary": 457,
"javbus": 417,
"missav": 358
},
"firstRelease": "2015-06-01",
"lastRelease": "2026-11-20",
"releasesLast90": 30,
"avgRating": 8.02,
"ratedTitles": 168,
"studioCount": 8,
"topGenres": [
{
"genre": "Big Tits",
"count": 765
},
{
"genre": "Over 4 Hours",
"count": 610
},
"…"
],
"topStudios": [
{
"studio": "S1 NO.1 STYLE",
"count": 991
},
{
"studio": "ROOKIE",
"count": 48
},
"…"
],
"cadenceDays": 115,
"starPower": 0.885,
"starPower100": 88,
"asOf": "2026-11-08T07:34:17.700Z"
}works là số đếm lớn nhất từ một nguồn, không phải tổng. Cùng một tựa nằm trong fanza,
javdatabase, javlibrary, javbus và missav; cộng nguồn sẽ thổi phồng khoảng bốn lần.
worksBySource cho thấy phần chồng lấp: số đếm theo nguồn, không cộng thành works.
avgRating là trung bình javlibrary trên thang 1–10, trên tối đa 200 tựa có đánh giá;
ratedTitles cho biết bao nhiêu đánh giá đã vào đó.
studioCount, topGenres và topStudios đếm tựa đã khử trùng lặp, không cộng dồn qua nguồn,
nên không số nào lớn hơn works. Yua Mikami: works 1127, studioCount 8, thể loại đầu "Big
Tits" với 765 tựa, studio đầu "S1 NO.1 STYLE" với 991.
cadenceDays là khoảng cách dài nhất tính bằng ngày giữa hai lần phát hành liên tiếp, không
phải trung bình. starPower tổng hợp khối lượng, đánh giá, sản lượng 90 ngày, độ trải studio,
thời gian hoạt động và độ mới của lần cuối trên thang 0–1; starPower100 là cùng số trên
thang 0–100.
Trượt: 404.
curl -s 'https://api.javinfo.dev/analytics/idols/stats?q=nobody-zzzz-qq' \
-H "x-javinfo-key: jvi_your_key_here"{
"defined": false,
"code": "NOT_FOUND",
"status": 404,
"message": "idol not found"
}Chi phí: $0.60 mỗi 1.000 lần gọi. Mã: 200, 400, 401, 402, 404, 429.
Tham khảo: idolStats.
Nến — /analytics/idols/ohlc
Chuỗi nến sự nghiệp: số lần phát hành lũy kế, gom theo ngày, tuần hoặc tháng. Đóng cửa phẳng nghĩa là không có phát hành trong khung; tăng là có sản lượng mới.
Không phải giá, không có lịch sử lượt xem phía sau. Thứ duy nhất quan sát được là thời điểm phát hành, và đó là thứ nến biểu diễn.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
q | string | bắt buộc | id hoặc slug từ /idols |
bucket | "day" | "week" | "month" | "week" | |
limit | integer | 500 | 10–2000 |
limit là số nến tối đa. Nếu sự nghiệp có nhiều khung hơn, nến mới nhất được giữ, nến cũ
nhất bị bỏ. limit dưới 10 hoặc bucket khác day, week, month là 400.
curl -s 'https://api.javinfo.dev/analytics/idols/ohlc?q=yua-mikami&bucket=month&limit=12' \
-H "x-javinfo-key: jvi_your_key_here"Phản hồi 200. Mười hai nến tháng phủ năm gần nhất; nến cũ hơn bị bỏ (nến và ema đã rút
gọn):
{
"id": "yua-mikami",
"metric": "cumulative_releases",
"source": "catalogue",
"bucket": "month",
"candles": [
{
"t": "2025-12-01",
"o": 1075,
"h": 1083,
"l": 1075,
"c": 1083,
"v": 9
},
{
"t": "2026-01-01",
"o": 1084,
"h": 1091,
"l": 1084,
"c": 1091,
"v": 8
},
"…",
{
"t": "2026-11-01",
"o": 1125,
"h": 1127,
"l": 1125,
"c": 1127,
"v": 3
}
],
"changePct": 4.84,
"ema": [
1083,
1085,
"…"
],
"totalReleases": 1127,
"truncated": true,
"asOf": "2026-11-08T07:34:17.117Z"
}Trường của nến:
| Trường | Ý nghĩa |
|---|---|
t | Ngày bắt đầu khung, YYYY-MM-DD. Tuần bắt đầu thứ Hai, tháng bắt đầu ngày 1. |
o | Số lần phát hành lũy kế tại lần phát hành đầu tiên trong khung. |
h | Số lũy kế cao nhất đạt được trong khung. |
l | Số lũy kế thấp nhất trong khung. |
c | Số lũy kế tại lần phát hành cuối trong khung. |
v | Số quan sát trong khung. |
Với chuỗi danh mục, một quan sát là một dòng phát hành, nên v đếm số bản trong khung. Khung
có hai bản mở sau lần đầu, đóng sau lần thứ hai và báo v: 2.
metric và source cho biết chuỗi nhận được. Khi tác vụ snapshot đã ghi ít nhất hai ngày,
endpoint chuyển sang metric: "star_power" và source: "snapshots": nến đo điểm sao theo
thời gian, nhân 1.000, với totalReleases: 0 và truncated: false.
changePct là thay đổi từ giá mở đầu đến giá đóng cuối, trên các nến nhận được. ema là
trung bình động lũy thừa 7 kỳ của giá đóng, cùng độ dài với candles.
truncated: true nghĩa là nến cũ bị bỏ để vừa limit; nến mới nhất luôn có. totalReleases
là tổng cả sự nghiệp, bất kể limit. Tăng limit đến 2000 nến để lấy toàn bộ đường cong.
Chi phí: $0.60 mỗi 1.000 lần gọi. Mã: 200, 400, 401, 402, 404, 429.
Tham khảo: idolOhlc.
Dòng thời gian — /analytics/idols/timeline
Số lần phát hành theo tháng và bốn giá trị hồ sơ: ra mắt, mới nhất, tháng đỉnh, khoảng cách dài nhất. Tất cả từ ngày phát hành.
| Tham số | Kiểu | Bắt buộc | Ghi chú |
|---|---|---|---|
q | string | có | id hoặc slug từ /idols |
curl -s 'https://api.javinfo.dev/analytics/idols/timeline?q=yua-mikami' \
-H "x-javinfo-key: jvi_your_key_here"Phản hồi 200 (months đã rút gọn):
{
"id": "yua-mikami",
"debut": "2015-06-01",
"latest": "2026-11-24",
"peakMonth": "2023-07",
"longestGapDays": 115,
"months": [
{ "month": "2015-06", "releases": 2 },
{ "month": "2015-09", "releases": 2 }
],
"truncated": false,
"asOf": "2026-11-06T18:31:34.750Z"
}months tăng dần, YYYY-MM, chỉ tháng có phát hành. peakMonth là tháng nhiều nhất;
longestGapDays là khoảng cách lớn nhất giữa hai ngày liên tiếp.
latest đến từ truy vấn mới-nhất-trước riêng, nên vẫn chính xác khi truncated là true.
Cờ đó nghĩa là trang tăng dần chạm 10.000 dòng; danh sách tháng dừng trước các bản mới nhất.
Chi phí: $0.60 mỗi 1.000 lần gọi. Mã: 200, 400, 401, 402, 404, 429.
Tham khảo: idolTimeline.
Bạn diễn — /analytics/idols/costars
Bạn diễn, xếp theo số tựa chung. Một truy vấn facet trên filmography dựng danh sách; chính diễn viên bị loại.
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
q | string | bắt buộc | id hoặc slug từ /idols |
num | integer | 15 | 1–50 |
curl -s 'https://api.javinfo.dev/analytics/idols/costars?q=yua-mikami&num=3' \
-H "x-javinfo-key: jvi_your_key_here"Phản hồi 200 (results đã rút gọn):
{
"id": "yua-mikami",
"count": 3,
"results": [
{ "name": "Aika Yumeno", "sharedTitles": 771 },
{ "name": "Miharu Usa", "sharedTitles": 675 }
],
"asOf": "2026-11-06T18:31:34.119Z"
}sharedTitles đếm tựa có cả hai tên trong danh mục.
Chi phí: $0.90 mỗi 1.000 lần gọi ở num=15. num đến 10 tốn $0.60; trên đó tăng đến $3.00 ở
num=50. Mã: 200, 400, 401, 402, 404, 429. Tham khảo:
idolCostars.
Bảng xếp hạng — /analytics/leaderboard
Xếp hạng diễn viên trong khoảng theo ba chỉ số.
metric | Xếp theo | score |
|---|---|---|
releases | Sản lượng trong khoảng | Số phát hành của cô ấy ÷ số phát hành của người dẫn đầu, 0–1 |
rating | Trung bình javlibrary đã điều chỉnh | 0–1 |
momentum | Khoảng này so với khoảng trước | Tỷ lệ ÷ 3, tối đa 1 |
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
range | integer | 90 | 7–365, số ngày |
metric | "releases" | "rating" | "momentum" | "releases" | |
num | integer | 20 | 1–100 |
curl -s 'https://api.javinfo.dev/analytics/leaderboard?range=30&metric=releases&num=3' \
-H "x-javinfo-key: jvi_your_key_here"Phản hồi 200 (results đã rút gọn):
{
"metric": "releases",
"range": 30,
"count": 3,
"truncated": false,
"results": [
{
"name": "Yui Hatano",
"nameJa": null,
"releases": 67,
"avgRating": null,
"studios": 10,
"lastRelease": "2026-11-06",
"score": 1
},
{
"name": "Yui Tenma",
"nameJa": null,
"releases": 55,
"avgRating": null,
"studios": 4,
"lastRelease": "2026-11-06",
"score": 0.821
}
],
"asOf": "2026-11-06T18:31:35.824Z"
}releases là số facet chính xác. studios và lastRelease đến từ 1.000 kết quả mới nhất,
nên có thể đếm thiếu khi range dài.
avgRating là trung bình 1–10 của javlibrary cho tựa có đánh giá trong khoảng, hoặc null
khi không có. rating chỉ xếp hạng diễn viên có ít nhất một tựa được đánh giá và kéo trung
bình về tiên nghiệm 3.5/5 theo tỷ lệ số tựa, nên một 10/10 không chiếm được vị trí đầu.
momentum chia số phát hành khoảng này cho khoảng trước cùng độ dài. Không có phát hành
trước, tỷ lệ 2, tức 0.667 điểm. Điểm bằng nhau phá bằng số phát hành.
name là khóa facet: tên Latin khi chỉ mục có, ngược lại tên tiếng Nhật. nameJa luôn là
null.
truncated: true nghĩa là facet tên chạm giới hạn của chỉ mục: số đếm chỉ phủ các tên hàng
đầu.
Một enum sai là 400, với tham số lỗi trong data.issues[].path:
curl -s 'https://api.javinfo.dev/analytics/leaderboard?metric=views' \
-H "x-javinfo-key: jvi_your_key_here"{
"defined": false,
"code": "BAD_REQUEST",
"status": 400,
"message": "Input validation failed",
"data": {
"issues": [
{
"code": "invalid_value",
"values": ["releases", "rating", "momentum"],
"path": ["metric"],
"message": "Invalid option: expected one of \"releases\"|\"rating\"|\"momentum\""
}
]
}
}Cùng dạng đó bao phủ các tham số khác: range ngoài phạm vi, num trên 100, bucket sai.
Issue nêu tên tham số.
Chi phí: $1.20 mỗi 1.000 lần gọi ở num=20. num đến 10 tốn $0.60; trên đó tăng đến $6.00 ở
num=100. Mã: 200, 400, 401, 402, 429. Tham khảo:
leaderboard.
Thị trường — /analytics/market
Khối lượng phát hành hàng tuần của danh mục DMM + FANZA, cùng thể loại tăng và giảm trong khoảng. Cho biểu đồ trang chủ hoặc bảng "cái gì đang chuyển động".
| Tham số | Kiểu | Mặc định | Phạm vi |
|---|---|---|---|
weeks | integer | 12 | 2–52 |
movers | integer | 10 | 1–50 |
curl -s 'https://api.javinfo.dev/analytics/market?weeks=4&movers=3' \
-H "x-javinfo-key: jvi_your_key_here"Phản hồi 200 (đã rút gọn):
{
"weeks": 4,
"volume": [
{ "week": "2026-10-09", "releases": 1319 },
{ "week": "2026-10-16", "releases": 1421 }
],
"totalReleases": 5740,
"changePct": 1,
"truncated": false,
"genres": {
"gainers": [
{ "genre": "Knee-High Socks", "changePct": 700, "current": 8, "previous": 1 },
{ "genre": "Widow", "changePct": 700, "current": 16, "previous": 2 }
],
"losers": [
{ "genre": "Female Soldier", "changePct": -100, "current": 0, "previous": 19 },
{ "genre": "Fisting", "changePct": -100, "current": 0, "previous": 5 }
]
},
"asOf": "2026-11-06T18:31:37.397Z"
}volume có một mục mỗi cửa sổ 7 ngày, cũ nhất trước; week là ngày bắt đầu. Cửa sổ trượt
lùi từ hôm nay, không phải tuần theo lịch.
weeks đặt số cửa sổ; totalReleases là tổng. changePct so cửa sổ mới nhất với cũ nhất,
một chữ số thập phân.
genres so floor(weeks ÷ 2) tuần gần nhất với khoảng trước đó. Thể loại dưới 5 bản trong cả
hai khoảng bị bỏ qua, nên thể loại nhỏ không tạo nhiễu. changePct là current so với
previous; không có phát hành trong nửa trước hiển thị 100. gainers và losers mỗi bên
cắt còn movers.
truncated: true nghĩa là facet thể loại chạm giới hạn: danh sách chỉ phủ các thể loại hàng
đầu.
Chi phí: $0.60 mỗi 1.000 lần gọi. weeks và movers không đổi giá. Mã:
200, 400, 401, 402, 429. Tham khảo: market.
Chi phí
| Endpoint | Trang mặc định | Mỗi 1.000 lần gọi |
|---|---|---|
/analytics/idols/stats | $0.60 | |
/analytics/idols/ohlc | limit=500 | $0.60 |
/analytics/idols/timeline | $0.60 | |
/analytics/idols/costars | num=15 | $0.90 |
/analytics/leaderboard | num=20 | $1.20 |
/analytics/market | $0.60 |
Kích thước ở endpoint khác không ảnh hưởng giá: limit, weeks và movers tăng miễn phí.
Chỉ 200 mới bị tính phí; lượt trúng bộ nhớ đệm, lỗi và câu trả lời suy giảm đều miễn phí.
Phản hồi cache 30 đến 60 phút, nên gọi lại trong khoảng đó là một lượt trúng. Xem giới hạn
tốc độ và thanh toán.
Lỗi thường gặp
401 không có khóa. Cổng cho qua; handler từ chối:
curl -s 'https://api.javinfo.dev/analytics/leaderboard'{
"defined": false,
"code": "UNAUTHORIZED",
"status": 401,
"message": "Unauthorized"
}401 khóa sai. Bị cổng từ chối sớm hơn, nội dung ngắn hơn:
curl -s 'https://api.javinfo.dev/analytics/leaderboard' \
-H "x-javinfo-key: jvi_not_a_real_key"{ "error": "invalid api key" }Cùng trạng thái, hai nội dung. Rẽ nhánh theo mã trạng thái, không theo code.
402 không đủ tín dụng. Không gì bị tính phí. Retry-After: 3600 chỉ là gợi ý; nạp tiền
mở khóa ngay:
{
"defined": false,
"code": "PAYMENT_REQUIRED",
"status": 402,
"message": "insufficient balance"
}429 vượt giới hạn mỗi phút. Áp dụng trước handler, với Retry-After tính bằng giây:
{ "error": "rate limit exceeded" }Theo tài khoản, không theo khóa. Xem giới hạn tốc độ.