Dokumentasi API Hadis Indonesia
Panduan lengkap integrasi REST API Hadis Bahasa Indonesia & Teks Arab untuk aplikasi Web, Mobile, dan Bot.
Base URL Server
Semua response API dikembalikan dalam format JSON dengan encoding UTF-8.
/hadith
Mengambil seluruh daftar perawi (9 Kitab Imam Hadis) beserta nama lengkap, slug resmi, dan total jumlah hadits yang tersedia di dalam database.
Parameter Requests
Endpoint ini tidak memerlukan query atau path parameter khusus.
Struktur JSON Response (200 OK)
{
"status": 200,
"message": "Success",
"data": [
{
"name": "HR. Abu Dawud",
"slug": "abu-dawud",
"total": 4590
},
{
"name": "HR. Ahmad",
"slug": "ahmad",
"total": 4305
},
{
"name": "HR. Bukhari",
"slug": "bukhari",
"total": 6638
},
{
"name": "HR. Darimi",
"slug": "darimi",
"total": 3367
},
{
"name": "HR. Ibnu Majah",
"slug": "ibnu-majah",
"total": 4285
},
{
"name": "HR. Malik",
"slug": "malik",
"total": 1587
},
{
"name": "HR. Muslim",
"slug": "muslim",
"total": 4930
},
{
"name": "HR. Nasai",
"slug": "nasai",
"total": 5364
},
{
"name": "HR. Tirmidzi",
"slug": "tirmidzi",
"total": 3625
}
]
}
/hadith/{perawiSlug}
Mengambil daftar hadits terpaginasi dari perawi tertentu berdasarkan slug perawi. Dilengkapi pagination otomatis.
1. Path Parameters
| Parameter | Tipe | Wajib | Keterangan | Contoh |
|---|---|---|---|---|
| perawiSlug | string | Ya | Slug perawi (contoh: bukhari, muslim, abu-dawud) | abu-dawud |
2. Query Parameters
| Parameter | Tipe | Wajib | Default | Keterangan |
|---|---|---|---|---|
| page | integer | Tidak | 1 | Nomor halaman paginasi yang ingin diambil |
| limit | integer | Tidak | 20 | Jumlah item hadis per halaman (maksimal disarankan: 100) |
Struktur JSON Response (200 OK)
{
"status": 200,
"message": "Success",
"data": {
"name": "HR. Abu Dawud",
"slug": "abu-dawud",
"total": 4590,
"pagination": {
"totalItems": 4590,
"currentPage": 1,
"pageSize": 2,
"totalPages": 2295,
"startPage": 1,
"endPage": 10,
"startIndex": 0,
"endIndex": 1,
"pages": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
},
"items": [
{
"number": 1,
"arab": "حَدَّثَنَا عَبْدُ اللَّهِ بْنُ مَسْلَمَةَ القَعْنَبِيُّ ...",
"id": "Telah menceritakan kepada kami Abdullah bin Maslamah Al Qa'nabi ..."
},
{
"number": 2,
"arab": "حَدَّثَنَا مُسَدَّدُ بْنُ مُسَرْهَدٍ ...",
"id": "Telah menceritakan kepada kami Musaddad bin Musarhad ..."
}
]
}
}
/hadith/{perawiSlug}/{nomorHadis}
Mengambil detail tunggal dari sebuah hadis berdasarkan slug perawi dan nomor spesifik hadis.
Path Parameters
| Parameter | Tipe | Wajib | Keterangan | Contoh |
|---|---|---|---|---|
| perawiSlug | string | Ya | Slug perawi (misal: bukhari, muslim, abu-dawud) | abu-dawud |
| nomorHadis | integer | Ya | Nomor spesifik hadis yang dicari | 1 |
Struktur JSON Response (200 OK)
{
"status": 200,
"message": "Success",
"data": {
"name": "HR. Abu Dawud",
"slug": "abu-dawud",
"total": 4590,
"contents": {
"number": 1,
"arab": "حَدَّثَنَا عَبْدُ اللَّهِ بْنُ مَسْلَمَةَ القَعْنَبِيُّ ، عَنْ مَالِكٍ ...",
"id": "Telah menceritakan kepada kami Abdullah bin Maslamah Al Qa'nabi, dari Malik ..."
}
}
}
Kode HTTP Status & Penanganan Error
Standar format respon saat terjadi kesalahan atau data tidak ditemukan.
Permintaan berhasil diproses dan data dikembalikan secara lengkap.
Perawi atau nomor hadis yang dicari tidak ditemukan dalam database.
Contoh JSON Response Error (404 Not Found)
{
"status": 404,
"message": "Hadis tidak ditemukan"
}
Contoh Integrasi Kode
Cuplikan kode berbagai bahasa pemrograman untuk langsung memanggil API Hadis.
1. cURL / Terminal
2. JavaScript (Fetch API)
fetch('https://hadis-api.aktif.my.id/hadith/bukhari?page=1&limit=5')
.then(res => res.json())
.then(data => {
console.log('Daftar Hadis Bukhari:', data.data.items);
})
.catch(err => console.error('Error:', err));
3. Python (Requests)
import requests url = "https://hadis-api.aktif.my.id/hadith/muslim/1" response = requests.get(url) data = response.json() print(data['data']['contents']['id'])
4. PHP (file_get_contents)
<?php
$json = file_get_contents('https://hadis-api.aktif.my.id/hadith/abu-dawud/1');
$data = json_decode($json, true);
echo $data['data']['contents']['id'];
?>