Dokumentasi API Hadis Indonesia

Panduan lengkap integrasi REST API Hadis Bahasa Indonesia & Teks Arab untuk aplikasi Web, Mobile, dan Bot.

Base URL Server

https://hadis-api.aktif.my.id

Semua response API dikembalikan dalam format JSON dengan encoding UTF-8.

GET

/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
    }
  ]
}
GET

/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 ..."
      }
    ]
  }
}
GET

/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.

200 OK Request Berhasil

Permintaan berhasil diproses dan data dikembalikan secara lengkap.

404 Not Found Data Tidak Ditemukan

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

curl -X GET "https://hadis-api.aktif.my.id/hadith/abu-dawud/1"

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'];
?>