AVDB APIドキュメント
471,000以上のJAV動画を持つ無料REST API。JSON&XMLサポート、16言語の多言語翻訳、強力な検索とフィルタリング。
⚡ クイックスタート
秒でAPI応答を取得。登録やAPIキーは不要。
1. 最新動画を取得
2. IDで動画を取得
3. JAVコードで検索
🔗 ベースURL
All API requests use the following base URLs. We provide two API formats:
provide API — it has clean, friendly field names like name, actor, category. If you're using Maccms CMS for collection, use provide1 — it matches Maccms's native field names like vod_name, vod_actor.🔓 認証
📡 Standard API — Overview
The Standard API (/provide/vod) returns clean, developer-friendly JSON with simplified field names. This is the recommended API for most integrations.
Response Structure
{
"code": 1,
"msg": "Data list",
"page": 1,
"pagecount": 472,
"limit": "1000",
"total": 471707,
"list": [ ... ],
"class": [ ... ] // Only in list mode
}
Video Object Fields (Detail Mode)
| Field | Type | 説明 |
|---|---|---|
id | int | Unique video ID |
name | string | Video title (English) |
slug | string | URL-friendly slug (usually the JAV code lowercase) |
origin_name | string | Original title |
movie_code | string | JAV code (e.g. MIAA-818) |
category | array | List of categories/tags (e.g. ["Amateur", "Creampie", "HD"]) |
type_name | string | Type (Censored / Uncensored / etc.) |
actor | array | List of actors |
director | array | List of directors |
poster_url | string | Full poster image URL |
thumb_url | string | Thumbnail image URL |
country | array | Country of origin (e.g. ["Japan"]) |
year | string | Release year |
quality | string | Video quality (HD, 4K, etc.) |
status | string | Video status |
time | string | Duration |
description | string | Full description/synopsis |
created_at | string | Publish date |
tag | string | Tags |
episodes | object | Episode/play data with streaming links |
📋 動画一覧
Get a paginated list of all videos. Returns basic information (no descriptions or play URLs) with category index.
List Mode Fields
In list mode, each video only contains: id, name, origin_name, type_name, category, actor, director, movie_code, country, vod_time
class array with all available categories. Use this to build category menus.Example: List with Category Filter
Get page 2 of Censored videos in list mode.
🎬 動画詳細
Get full details of videos including descriptions, streaming URLs, and all metadata.
Parameters
| パラメータ | 必須 | 説明 | 例 |
|---|---|---|---|
ac | 必須 | Action mode: detail or list | detail |
ids | 任意 | Video ID(s), comma-separated for multiple | 134 or 134,135,136 |
t | 任意 | Category type ID (see Categories) | 1 |
pg | 任意 | Page number (default: 1) | 2 |
pagesize | 任意 | Results per page (1–100, default: 1000) | 50 |
h | 任意 | Videos updated in last N hours | 24 |
year | 任意 | Filter by year or year range | 2024 or 2020-2024 |
sort_direction | 任意 | Sort order: asc or desc (default: desc) | asc |
isend | 任意 | Completion status: 1 = completed, 0 = ongoing | 1 |
例
IDで動画を取得:
複数の動画を取得:
2ページ目、50件/ページ:
24時間以内に更新された動画:
Videos from 2023–2024:
古い順:
🔍 検索
Powerful search across multiple fields. Uses FULLTEXT search for fast performance on 471K+ records.
| パラメータ | 説明 | 説明 | 例 |
|---|---|---|---|
wd | Title | Search by keyword in video title. Also matches JAV codes. | wd=beautiful wife |
code | JAV Code | Search by exact JAV code (matches vod_sub and vod_remarks) | code=MIAA-818 |
actor | Actor name | Search by actor/actress name | actor=Yua Mikami |
director | Director name | Search by director name | director=Nagao |
writer | Writer/Studio | Search by writer or production studio | writer=S1 |
category | Category | Search by category tag (e.g. Amateur, Creampie) | category=Amateur |
検索例
Search by JAV code:
Search by actress name:
Search by dedicated code parameter:
カテゴリで検索:
wd for general searches. It uses FULLTEXT indexing for best performance. Use code when you know the exact JAV code. URL-encode spaces as %20.🔧 Filtering & Combining Parameters
You can combine multiple parameters to narrow results. All filters are applied with AND logic.
組合せ例
Censored videos from 2024, page 3:
Amateur videos updated in last 48h, 20 per page:
Search actress in uncensored, oldest first:
📦 レスポンス形式
Here's a complete example response for a detail request:
{
"code": 1,
"msg": "Data list",
"page": 1,
"pagecount": 1,
"limit": "1000",
"total": 1,
"list": [
{
"type_name": "Censored",
"id": 134,
"name": "WPSL-285 A Dirty Mouth Drooling Girl...",
"slug": "wpsl-285",
"origin_name": "WPSL-285 A Dirty Mouth...",
"movie_code": "WPSL-285",
"category": ["Slut", "Cosplay", "Kiss", "HD", "Censored"],
"actor": ["Urara Kanon"],
"director": ["Updating"],
"poster_url": "https://...",
"thumb_url": "https://...",
"country": ["Japan"],
"year": "2025",
"quality": "HD",
"time": "02:19:00",
"description": "Full description text...",
"episodes": {
"server_name": "VIP #1",
"server_data": {
"Full": {
"slug": "full",
"link_embed": "https://..."
}
}
}
}
]
}
🔌 Maccms API — Overview
The Maccms-compatible API (/provide1/vod) returns raw field names that match the Maccms CMS database schema. Use this if you're collecting data into a Maccms-based website.
provide1 API accepts the exact same parameters as provide — ac, ids, t, pg, pagesize, wd, actor, code, category, h, year, sort_direction, isend. The only difference is the response field names.例
Latest videos (Maccms format):
Search by code (Maccms format):
📑 Maccms Field Reference
Key fields returned in the provide1 detail mode:
| Field | Standard API Equivalent | 説明 |
|---|---|---|
vod_id | id | Video ID |
vod_name | name | Video title |
vod_sub | slug | JAV code (lowercase) |
vod_en | origin_name | Original/English title |
vod_class | category | Categories (comma-separated string) |
vod_actor | actor | Actors (comma-separated string) |
vod_director | director | Director |
vod_writer | writer | Writer/Studio |
vod_pic | poster_url | Poster image URL |
vod_remarks | movie_code | JAV code (uppercase) |
vod_area | country | Country |
vod_year | year | Year |
vod_content | description | Full description |
vod_play_url | episodes | Streaming URLs ($$$ delimited) |
vod_play_from | — | Player source names |
vod_duration | time | Video duration |
vod_serial | — | Series title (Japanese) |
vod_tag | tag | Tags |
vod_hits | — | View count |
🌐 Multilingual API New
All API endpoints support 16 languages. Titles, descriptions, categories, and metadata are automatically translated. Simply add the language prefix to the URL.
What the Multilingual API Does
The language API returns the same AVDB video data structure, but with reader-facing text localized for the selected audience. Your integration does not need a different endpoint, API key, or payload parser.
- Translated video text: title, original/title display field, description, and short blurb when available.
- Translated metadata: category/type name, tags, country/area, status labels, and common placeholder text such as "Updating".
- Stable technical fields: IDs, movie codes, slugs, poster URLs, stream URLs, dates, duration, and numeric fields stay unchanged so existing integrations remain compatible.
- Fast cached delivery: translations are served from the AVDB translation cache; if a specific text is not translated yet, the API safely falls back to the original value instead of breaking the response.
How to Use It
Choose a two-letter language code, then place it directly after the domain and before /api.php. All normal API parameters continue to work.
English Default
Thai Response
Indonesian Search
Korean Pagination
Response Shape
The response keeps the standard JSON schema and adds language metadata at the top level. Use lang and lang_name to confirm which language was applied.
{
"lang": "th",
"lang_name": "ไทย",
"total": 1,
"list": [
{
"id": 134,
"name": "Translated video title",
"description": "Translated video description",
"category": ["Translated category"],
"country": ["Translated country"],
"movie_code": "ABCD-123",
"poster_url": "https://...",
"episodes": { "server_name": "VIP #1" }
}
]
}
Supported Languages
| Code | Language | URL Prefix | 例 |
|---|---|---|---|
en | 🇬🇧 English (default) | https://avdbapi.com/api.php/... | No prefix needed |
th | 🇹🇭 ไทย | https://avdbapi.com/th/api.php/... | Try → |
id | 🇮🇩 Indonesia | https://avdbapi.com/id/api.php/... | Try → |
ko | 🇰🇷 한국어 | https://avdbapi.com/ko/api.php/... | Try → |
vi | 🇻🇳 Tiếng Việt | https://avdbapi.com/vi/api.php/... | Try → |
zh | 🇨🇳 中文 | https://avdbapi.com/zh/api.php/... | Try → |
ja | 🇯🇵 日本語 | https://avdbapi.com/ja/api.php/... | Try → |
fr | 🇫🇷 Français | https://avdbapi.com/fr/api.php/... | Try → |
de | 🇩🇪 Deutsch | https://avdbapi.com/de/api.php/... | Try → |
es | 🇪🇸 Español | https://avdbapi.com/es/api.php/... | Try → |
pt | 🇵🇹 Português | https://avdbapi.com/pt/api.php/... | Try → |
ru | 🇷🇺 Русский | https://avdbapi.com/ru/api.php/... | Try → |
ar | 🇸🇦 العربية | https://avdbapi.com/ar/api.php/... | Try → |
tr | 🇹🇷 Türkçe | https://avdbapi.com/tr/api.php/... | Try → |
hi | 🇮🇳 हिन्दी | https://avdbapi.com/hi/api.php/... | Try → |
ms | 🇲🇾 Malay | https://avdbapi.com/ms/api.php/... | Try → |
tl | 🇵🇭 Filipino | https://avdbapi.com/tl/api.php/... | Try → |
lang and lang_name metadata fields.📂 カテゴリ
Use the t parameter to filter videos by category type ID:
| ID | カテゴリ | Example URL |
|---|---|---|
1 | 🎬 Censored | Try → |
2 | 🔓 Uncensored | Try → |
3 | 💥 Uncensored Leaked | Try → |
4 | 🎥 Amateur | Try → |
5 | 🇨🇳 Chinese AV | Try → |
6 | 🎨 Hentai | Try → |
7 | 🔤 English Subtitle | Try → |
📄 ページネーション
The API returns paginated results. Use pg and pagesize to control pagination.
| Response Field | 説明 |
|---|---|
page | Current page number |
pagecount | Total number of pages available |
limit | Results per page (default 1000) |
total | Total number of matching videos |
Pagination Example — Iterate All Pages
async function fetchAllVideos() {
let page = 1, allVideos = [];
while (true) {
const url = `https://avdbapi.com/api.php/provide/vod?ac=detail&pg=${page}&pagesize=100`;
const res = await fetch(url);
const data = await res.json();
allVideos.push(...data.list);
if (page >= data.pagecount) break;
page++;
}
return allVideos; // 471K+ videos
}
📦 XML形式
Both APIs support XML output format. Add at=xml to the URL or use the /at/xml path suffix.
Standard API - XML:
Maccms API - XML:
💻 コード例
Ready-to-use code snippets in popular languages.
# Get latest videos
curl "https://avdbapi.com/api.php/provide/vod?ac=detail"
# Search by JAV code
curl "https://avdbapi.com/api.php/provide/vod?ac=detail&wd=miaa-818"
# Get Thai translation
curl "https://avdbapi.com/th/api.php/provide/vod?ac=detail&ids=134"
# Get Censored videos, page 2, 50 per page
curl "https://avdbapi.com/api.php/provide/vod?ac=detail&t=1&pg=2&pagesize=50"
# Get XML format
curl "https://avdbapi.com/api.php/provide/vod/at/xml"
// Search for a specific JAV code
async function searchByCode(code) {
const url = `https://avdbapi.com/api.php/provide/vod?ac=detail&wd=${code}`;
const response = await fetch(url);
const data = await response.json();
if (data.list.length > 0) {
const video = data.list[0];
console.log(`Title: ${video.name}`);
console.log(`Code: ${video.movie_code}`);
console.log(`Actor: ${video.actor.join(', ')}`);
console.log(`Categories: ${video.category.join(', ')}`);
console.log(`Poster: ${video.poster_url}`);
}
}
searchByCode('MIAA-818');
// Get Thai translations
const thUrl = 'https://avdbapi.com/th/api.php/provide/vod?ac=detail&ids=134';
fetch(thUrl).then(r => r.json()).then(data => {
console.log(data.list[0].name); // Thai title
console.log(data.lang); // "th"
});
import requests
# Search by actress
url = "https://avdbapi.com/api.php/provide/vod"
params = {
"ac": "detail",
"actor": "Yua Mikami",
"pagesize": 20
}
response = requests.get(url, params=params)
data = response.json()
for video in data["list"]:
print(f"{video['movie_code']} - {video['name']}")
print(f" Categories: {', '.join(video['category'])}")
print(f" Poster: {video['poster_url']}")
print()
print(f"Total results: {data['total']}")
print(f"Pages: {data['pagecount']}")
<?php
// Fetch latest censored videos
$url = 'https://avdbapi.com/api.php/provide/vod?ac=detail&t=1&pagesize=20';
$json = file_get_contents($url);
$data = json_decode($json, true);
echo "Total: " . $data['total'] . " videos\n";
foreach ($data['list'] as $video) {
echo $video['movie_code'] . " - " . $video['name'] . "\n";
echo " Actor: " . implode(', ', $video['actor']) . "\n";
echo " Poster: " . $video['poster_url'] . "\n\n";
}
// Maccms format for collection
$maccmsUrl = 'https://avdbapi.com/api.php/provide1/vod?ac=detail&h=24';
$maccmsData = json_decode(file_get_contents($maccmsUrl), true);
echo "Updated in 24h: " . $maccmsData['total'] . " videos\n";
?>
⚙️ Maccms CMSセットアップ
Step-by-step guide for adding this API as a collection source in Maccms CMS.
ステップ1:カスタム収集ソースを追加
- Login to your Maccms admin panel
- Go to Collection → Custom Resources
- Click Add
- Enter the API URL:
ステップ2:パラメータの設定
- Data format: JSON (default)
- If using XML, add
&at=xmlparameter - Collection interval: Set to 1–6 hours for automatic updates
- Incremental mode: Use
&h=24to only collect videos updated in the last 24 hours
provide1 (not provide) for Maccms collection. The provide1 API returns raw vod_* field names that Maccms expects.ステップ3:増分収集
For daily updates, use the hours parameter to only fetch recently updated videos:
This fetches only videos added or updated in the last 24 hours, making collection faster and more efficient.
🎬 Maccms API — 動画詳細
Full detail mode returns all vod_* fields including descriptions, play URLs, and metadata. Same parameters as Standard API.
Parameters (same as Standard API)
| パラメータ | 必須 | 説明 | 例 |
|---|---|---|---|
ac | 必須 | detail = full info, list = basic info | detail |
ids | 任意 | Video ID(s), comma-separated | 134 or 134,135 |
t | 任意 | Category type ID (1–7) | 1 |
pg | 任意 | Page number | 2 |
pagesize | 任意 | Results per page (1–100) | 50 |
wd | 任意 | Keyword search | miaa-818 |
h | 任意 | Videos updated in last N hours | 24 |
year | 任意 | Year or year range | 2024 |
sort_direction | 任意 | asc or desc | asc |
isend | 任意 | Completion: 1 or 0 | 1 |
例
🔍 Maccms API — 検索
All search parameters from the Standard API work with provide1 too.
| パラメータ | 説明 | 例 |
|---|---|---|
wd | Title (vod_name) — keyword/JAV code | wd=miaa-818 |
code | vod_sub / vod_remarks — exact JAV code | code=FNS-053 |
actor | vod_actor — actor/actress name | actor=Yua Mikami |
director | vod_director — director name | director=Nagao |
writer | vod_writer — writer/studio | writer=S1 |
category | vod_class — category tag | category=Amateur |
検索例
🔧 Maccms API — 組合せフィルター
Combine parameters for precise results. All filters are AND logic.
組合せ例
モザイク+2024年+2ページ目:
女優+カテゴリ+古い順:
タイプ別カテゴリ+年範囲+50件/ページ:
/at/xml to any provide1 URL for XML output:/api.php/provide1/vod/at/xml?ac=detail&t=1📦 Maccms API — レスポンス形式
Example response showing the raw vod_* field names used by Maccms CMS:
{
"code": 1,
"msg": "Data list",
"page": 1,
"pagecount": 1,
"limit": "1000",
"total": 1,
"list": [
{
"vod_id": 134,
"type_id": 1,
"type_name": "Censored",
"vod_name": "WPSL-285 A Dirty Mouth...",
"vod_sub": "wpsl-285",
"vod_en": "WPSL-285 A Dirty Mouth...",
"vod_remarks": "WPSL-285",
"vod_class": "Slut,Individual,Cosplay,Kiss,...",
"vod_actor": "Urara Kanon",
"vod_director": "",
"vod_writer": "Waap Entertainment",
"vod_area": "Japan",
"vod_year": "2025",
"vod_serial": "接吻しまくり淫口よだれ女",
"vod_pic": "https://cdn-poster.avdb.pro/...",
"vod_pic_thumb": "https://cdn-poster.avdb.pro/...",
"vod_duration": "02:19:00",
"vod_content": "Full description...",
"vod_play_from": "VIP",
"vod_play_url": "Full$https://surrit.com/...",
"vod_hits": 85,
"vod_time": "2025-04-08 03:38:35",
// ... 60+ more vod_* fields
}
]
}
category→vod_class(comma-separated string, not array)actor→vod_actor(comma-separated string, not array)episodes→vod_play_url($$$ delimited format)- All fields prefixed with
vod_
⏱️ レート制限
To ensure fair usage for all users, the following rate limits apply:
| パラメータ | 制限 | 詳細 |
|---|---|---|
wd (search) | 45 req/min | Keyword search requests |
actor | 30 req/min | Actor search requests |
director | 30 req/min | Director search requests |
code | 45 req/min | Code search requests |
category | 30 req/min | Category search requests |
| Pagination | No limit | Browsing pages by ID or page number |
ids, t, pg) are not rate-limited. Only text-based search parameters have rate limits to prevent abuse.❓ よくある質問
provideとprovide1の違いは?
同じデータ、異なるフィールド名。provideはクリーンな名前(name, actor)、provide1はMaccms形式(vod_name, vod_actor)。
このAPIは無料ですか?
はい、完全無料。登録、APIキー、隠れたコストは一切ありません。
Is there a maximum page size?
Yes, maximum 100 results per page. Default is 1000 if not specified.
データはどのくらいの頻度で更新されますか?
データベースは毎日複数回新作がリリースされ更新されます。
How do I get translated content?
Add the language prefix to the URL. For example, /vi/api.php/... for Vietnamese.
Do you support CORS?
Yes, CORS is enabled for all origins.
商用プロジェクトに使えますか?
はい、個人・商用問わず無料です。
Can I combine multiple search filters?
Yes, all parameters can be combined. They use AND logic.
AVDB API — 471K+ Videos • 16 Languages • Free Forever