AVDB Documentation API

Free REST API with 471,000+ JAV videos. JSON & XML support, multilingual translations in 16 languages, powerful search & filtering.

471K+
VIDÉOS
16
LANGUES
FREE
PAS DE CLÉ API
REST
JSON & XML

Démarrage rapide

Get your first API response in seconds. No registration or API key required.

No Authentication Required — The API is completely free and open. Just send HTTP GET requests to any endpoint.

1. GET LATEST VIDEOS

GET https://avdbapi.com/api.php/provide/vod?ac=detail
▶ Essayez en direct →

2. GET A SPECIFIC VIDEO BY ID

GET https://avdbapi.com/api.php/provide/vod?ac=detail&ids=134
▶ Essayez en direct →

3. SEARCH BY JAV CODE

GET https://avdbapi.com/api.php/provide/vod?ac=detail&wd=miaa-818
▶ Essayez en direct →

🔗 URL de base

All API requests use the following base URLs. We provide two API formats:

Recommended Standard API — Clean key names, modern format
https://avdbapi.com/api.php/provide/vod
Maccms-Compatible API — Raw vod_ field names, for Maccms CMS
https://avdbapi.com/api.php/provide1/vod
💡
Which one to use? If you're building a custom app or website, use the 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.

🔓 Authentification

🆓
Completely Free & Open — No API key, no registration, no rate limit token required. Simply send GET requests to the endpoints. However, please be respectful with request frequency (see Limites de débit).

📡 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

JSON Response
{
    "code": 1,
    "msg": "Data list",
    "page": 1,
    "pagecount": 472,
    "limit": "1000",
    "total": 471707,
    "list": [ ... ],
    "class": [ ... ]        // Only in list mode
}

Video Object Fields (Detail Mode)

FieldTypeDescription
idintUnique video ID
namestringVideo title (English)
slugstringURL-friendly slug (usually the JAV code lowercase)
origin_namestringOriginal title
movie_codestringJAV code (e.g. MIAA-818)
categoryarrayList of categories/tags (e.g. ["Amateur", "Creampie", "HD"])
type_namestringType (Censored / Uncensored / etc.)
actorarrayList of actors
directorarrayList of directors
poster_urlstringFull poster image URL
thumb_urlstringThumbnail image URL
countryarrayCountry of origin (e.g. ["Japan"])
yearstringRelease year
qualitystringVideo quality (HD, 4K, etc.)
statusstringVideo status
timestringDuration
descriptionstringFull description/synopsis
created_atstringPublish date
tagstringTags
episodesobjectEpisode/play data with streaming links

📋 List Videos

Get a paginated list of all videos. Returns basic information (no descriptions or play URLs) with category index.

GET https://avdbapi.com/api.php/provide/vod?ac=list
▶ Essayez en direct →

List Mode Fields

In list mode, each video only contains: id, name, origin_name, type_name, category, actor, director, movie_code, country, vod_time

💡
List + Class — In list mode (not detail), the response includes a class array with all available categories. Use this to build category menus.

Example: List with Category Filter

GET https://avdbapi.com/api.php/provide/vod?ac=list&t=1&pg=2

Get page 2 of Censored videos in list mode.


🎬 Détails vidéo

Get full details of videos including descriptions, streaming URLs, and all metadata.

GET https://avdbapi.com/api.php/provide/vod?ac=detail

Parameters

ParamètreObligatoireDescriptionExemple
acObligatoireAction mode: detail or listdetail
idsOptionnelVideo ID(s), comma-separated for multiple134 or 134,135,136
tOptionnelCategory type ID (see Categories)1
pgOptionnelPage number (default: 1)2
pagesizeOptionnelResults per page (1–100, default: 1000)50
hOptionnelVideos updated in last N hours24
yearOptionnelFilter by year or year range2024 or 2020-2024
sort_directionOptionnelSort order: asc or desc (default: desc)asc
isendOptionnelCompletion status: 1 = completed, 0 = ongoing1

Exemples

Get video by ID:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&ids=134

Get multiple videos:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&ids=134,135,136

Page 2, 50 per page:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&pg=2&pagesize=50

Videos updated in last 24 hours:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&h=24

Videos from 2023–2024:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&year=2023-2024

Oldest first:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&sort_direction=asc


🔧 Filtering & Combining Parameters

You can combine multiple parameters to narrow results. All filters are applied with AND logic.

Combined Examples

Censored videos from 2024, page 3:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&t=1&year=2024&pg=3

Amateur videos updated in last 48h, 20 per page:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&t=4&h=48&pagesize=20

Search actress in uncensored, oldest first:

GEThttps://avdbapi.com/api.php/provide/vod?ac=detail&actor=Yua Mikami&t=2&sort_direction=asc

📦 Format de réponse

Here's a complete example response for a detail request:

GET /api.php/provide/vod?ac=detail&ids=134
{
    "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.

GET https://avdbapi.com/api.php/provide1/vod?ac=detail
ℹ️
The provide1 API accepts the exact same parameters as provideac, ids, t, pg, pagesize, wd, actor, code, category, h, year, sort_direction, isend. The only difference is the response field names.

Exemples

Latest videos (Maccms format):

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&pg=1

Search by code (Maccms format):

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&wd=fc2-ppv-1766968

📑 Maccms Field Reference

Key fields returned in the provide1 detail mode:

FieldStandard API EquivalentDescription
vod_ididVideo ID
vod_namenameVideo title
vod_subslugJAV code (lowercase)
vod_enorigin_nameOriginal/English title
vod_classcategoryCategories (comma-separated string)
vod_actoractorActors (comma-separated string)
vod_directordirectorDirector
vod_writerwriterWriter/Studio
vod_picposter_urlPoster image URL
vod_remarksmovie_codeJAV code (uppercase)
vod_areacountryCountry
vod_yearyearYear
vod_contentdescriptionFull description
vod_play_urlepisodesStreaming URLs ($$$ delimited)
vod_play_fromPlayer source names
vod_durationtimeVideo duration
vod_serialSeries title (Japanese)
vod_tagtagTags
vod_hitsView 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.

Supported Languages

CodeLanguageURL PrefixExemple
en🇬🇧 English (default)https://avdbapi.com/api.php/...No prefix needed
th🇹🇭 ไทยhttps://avdbapi.com/th/api.php/...Try →
id🇮🇩 Indonesiahttps://avdbapi.com/id/api.php/...Try →
ko🇰🇷 한국어https://avdbapi.com/ko/api.php/...Try →
vi🇻🇳 Tiếng Việthttps://avdbapi.com/vi/api.php/...Try →
zh🇨🇳 中文https://avdbapi.com/zh/api.php/...Try →
ja🇯🇵 日本語https://avdbapi.com/ja/api.php/...Try →
fr🇫🇷 Françaishttps://avdbapi.com/fr/api.php/...Try →
de🇩🇪 Deutschhttps://avdbapi.com/de/api.php/...Try →
es🇪🇸 Españolhttps://avdbapi.com/es/api.php/...Try →
pt🇵🇹 Portuguêshttps://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çehttps://avdbapi.com/tr/api.php/...Try →
hi🇮🇳 हिन्दीhttps://avdbapi.com/hi/api.php/...Try →
ms🇲🇾 Malayhttps://avdbapi.com/ms/api.php/...Try →
tl🇵🇭 Filipinohttps://avdbapi.com/tl/api.php/...Try →
🌍
How it works: When you use a language prefix, the API translates the video title, description, categories, director, country, and type_name. The response also includes lang and lang_name metadata fields.

📂 Catégories

Use the t parameter to filter videos by category type ID:

IDCatégorieExample URL
1🎬 CensoredTry →
2🔓 UncensoredTry →
3💥 Uncensored LeakedTry →
4🎥 AmateurTry →
5🇨🇳 Chinese AVTry →
6🎨 HentaiTry →
7🔤 English SubtitleTry →


📦 XML Format

Both APIs support XML output format. Add at=xml to the URL or use the /at/xml path suffix.

Standard API - XML:

GET https://avdbapi.com/api.php/provide/vod/at/xml Try →

Maccms API - XML:

GET https://avdbapi.com/api.php/provide1/vod/at/xml Try →

💻 Exemples de code

Ready-to-use code snippets in popular languages.

cURL
# 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 Vietnamese translation
curl "https://avdbapi.com/vi/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"
JavaScript (fetch)
// 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 Vietnamese translations
const viUrl = 'https://avdbapi.com/vi/api.php/provide/vod?ac=detail&ids=134';
fetch(viUrl).then(r => r.json()).then(data => {
    console.log(data.list[0].name);  // Vietnamese title
    console.log(data.lang);              // "vi"
});
Python (requests)
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
<?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 Setup

Step-by-step guide for adding this API as a collection source in Maccms CMS.

Step 1: Add Custom Collection Source

  1. Login to your Maccms admin panel
  2. Go to Collection → Custom Resources
  3. Click Add
  4. Enter the API URL:
https://avdbapi.com/api.php/provide1/vod

Step 2: Configure Parameters

  • Data format: JSON (default)
  • If using XML, add &at=xml parameter
  • Collection interval: Set to 1–6 hours for automatic updates
  • Incremental mode: Use &h=24 to only collect videos updated in the last 24 hours
⚠️
Important: Use provide1 (not provide) for Maccms collection. The provide1 API returns raw vod_* field names that Maccms expects.

Step 3: Incremental Collection

For daily updates, use the hours parameter to only fetch recently updated videos:

GET https://avdbapi.com/api.php/provide1/vod?ac=detail&h=24

This fetches only videos added or updated in the last 24 hours, making collection faster and more efficient.


🎬 Maccms API — Video Details

Full detail mode returns all vod_* fields including descriptions, play URLs, and metadata. Same parameters as Standard API.

GET https://avdbapi.com/api.php/provide1/vod?ac=detail
▶ Essayez en direct →

Parameters (same as Standard API)

ParamètreObligatoireDescriptionExemple
acObligatoiredetail = full info, list = basic infodetail
idsOptionnelVideo ID(s), comma-separated134 or 134,135
tOptionnelCategory type ID (1–7)1
pgOptionnelPage number2
pagesizeOptionnelResults per page (1–100)50
wdOptionnelKeyword searchmiaa-818
hOptionnelVideos updated in last N hours24
yearOptionnelYear or year range2024
sort_directionOptionnelasc or descasc
isendOptionnelCompletion: 1 or 01

Exemples

Get video by ID:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&ids=134
▶ Try →

Get multiple videos:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&ids=134,135,136
▶ Try →

Page 2, 50 per page:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&pg=2&pagesize=50
▶ Try →

Videos updated in last 24h:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&h=24
▶ Try →

Censored category only:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&t=1
▶ Try →

Year filter (2024 only):

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&year=2024
▶ Try →

Year range (2020–2024):

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&year=2020-2024
▶ Try →

Oldest first:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&sort_direction=asc
▶ Try →

Completed videos only:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&isend=1
▶ Try →

List mode (basic info):

GEThttps://avdbapi.com/api.php/provide1/vod?ac=list
▶ Try →


🔧 Maccms API — Combined Filters

Combine parameters for precise results. All filters are AND logic.

Combined Examples

Censored + year 2024 + page 2:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&t=1&year=2024&pg=2&pagesize=20
▶ Try →

Uncensored + updated in 48h:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&t=2&h=48&pagesize=20
▶ Try →

Actress + category + oldest first:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&actor=Yua Mikami&t=1&sort_direction=asc
▶ Try →

Category by type + year range + 50 per page:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&t=3&year=2022-2024&pagesize=50
▶ Try →

Search code + completed only:

GEThttps://avdbapi.com/api.php/provide1/vod?ac=detail&code=MIAA&isend=1
▶ Try →
💡
XML Format: Add /at/xml to any provide1 URL for XML output:
/api.php/provide1/vod/at/xml?ac=detail&t=1

📦 Maccms API — Response Format

Example response showing the raw vod_* field names used by Maccms CMS:

GET /api.php/provide1/vod?ac=detail&ids=134
{
    "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
        }
    ]
}
💡
Key differences from Standard API:
  • categoryvod_class (comma-separated string, not array)
  • actorvod_actor (comma-separated string, not array)
  • episodesvod_play_url ($$$ delimited format)
  • All fields prefixed with vod_

⏱️ Limites de débit

To ensure fair usage for all users, the following rate limits apply:

ParamètreLimiteDétails
wd (search)45 req/minKeyword search requests
actor30 req/minActor search requests
director30 req/minDirector search requests
code45 req/minCode search requests
category30 req/minCategory search requests
PaginationNo limitBrowsing pages by ID or page number
💡
Tip: Pagination and ID-based requests (ids, t, pg) are not rate-limited. Only text-based search parameters have rate limits to prevent abuse.

Questions fréquemment posées

What's the difference between provide and provide1?

Same data, different field names. provide uses clean names (name, actor), provide1 uses Maccms format (vod_name, vod_actor).

Is this API free?

Yes, completely free. No registration, no API keys, no hidden costs.

Is there a maximum page size?

Yes, maximum 100 results per page. Default is 1000 if not specified.

How often is data updated?

The database is updated multiple times daily with new releases.

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 use this for commercial projects?

Yes, the API is free for both personal and commercial use.

Can I combine multiple search filters?

Yes, all parameters can be combined. They use AND logic.


AVDB API — 471K+ Videos • 16 Languages • Free Forever

📱 Telegram✉️ Email