REST API Al-Quran Indonesia (Kemenag), Dzikir Harian, Kumpulan Doa, Hadits Arba'in
Dibangun dengan Cloudflare Workers + Hono + D1 Database
REST API ini menyediakan data Al-Quran Indonesia, kumpulan doa, dzikir harian, dan hadits arba'in dari berbagai sumber terpercaya.
Fork dari Otang45/muslim-api - Refactored untuk Cloudflare Workers
- Al-Quran: Surah, Ayat, Juz, Halaman, Asbab Nuzul, Asmaul Husna, Tafsir Kemenag, Kata per kata
- Doa: Kumpulan doa dari Al-Quran, Hadits, dan doa harian
- Dzikir: Dzikir pagi, sore, dan setelah sholat
- Hadits: Hadits Arba'in An-Nawawi
- Audio: Murottal Shaykh Mishari Alafasy
https://your-worker.your-subdomain.workers.dev
| Endpoint | Deskripsi | Parameter |
|---|---|---|
GET /v1/quran/surah |
Daftar semua surah | id (opsional) |
GET /v1/quran/ayah |
Semua ayat | - |
GET /v1/quran/ayah/surah |
Ayat per surah | id (wajib) |
GET /v1/quran/ayah/specific |
Ayat spesifik | surahId, ayahId (wajib) |
GET /v1/quran/ayah/range |
Rentang ayat | surahId, start, end (wajib) |
GET /v1/quran/ayah/juz |
Ayat per juz | id (wajib) |
GET /v1/quran/ayah/page |
Ayat per halaman | id (wajib) |
GET /v1/quran/ayah/find |
Cari ayat | query (wajib, min 3 karakter) |
GET /v1/quran/juz |
Daftar juz | id (opsional) |
GET /v1/quran/tafsir |
Tafsir | id (opsional) |
GET /v1/quran/asbab |
Asbab Nuzul | id (opsional) |
GET /v1/quran/asma |
Asmaul Husna | - |
GET /v1/quran/theme |
Tema Al-Quran | id (opsional) |
GET /v1/quran/word |
Kata per kata | - |
GET /v1/quran/word/surah |
Kata per kata (surah) | id (wajib) |
GET /v1/quran/word/ayah |
Kata per kata (ayat) | surahId, ayahId (wajib) |
| Endpoint | Deskripsi | Parameter |
|---|---|---|
GET /v1/doa |
Semua doa | source (opsional): quran, hadits, pilihan, harian, ibadah, haji, lainnya |
GET /v1/doa/find |
Cari doa | query (wajib) |
| Endpoint | Deskripsi | Parameter |
|---|---|---|
GET /v1/dzikir |
Semua dzikir | type (opsional): pagi, sore, solat |
| Endpoint | Deskripsi | Parameter |
|---|---|---|
GET /v1/hadits |
Semua hadits | nomor (opsional) |
GET /v1/hadits/find |
Cari hadits | query (wajib) |
{
"status": 200,
"data": {
"number": "1",
"name_short": "الفاتحة",
"name_long": "سُورَةُ ٱلْفَاتِحَةِ",
"name_id": "Al-Fatihah",
"translation_id": "Pembukaan",
"number_of_verses": "7",
"revelation_id": "Makkiyyah"
}
}- Bun atau Node.js v18+
- Akun Cloudflare (gratis)
- Wrangler CLI
git clone https://github.com/username/muslim-api.git
cd muslim-apibun install
# atau
npm installbunx wrangler loginbunx wrangler d1 create muslim-api-dbCatat database_id dari output, lalu update wrangler.toml:
[[d1_databases]]
binding = "DB"
database_name = "muslim-api-db"
database_id = "your-database-id-here" # Ganti dengan ID dari langkah sebelumnya# Local development
bunx wrangler d1 migrations apply muslim-api-db --local
# Production
bunx wrangler d1 migrations apply muslim-api-db --remote# Local development
bunx wrangler d1 execute muslim-api-db --local --file=migrations/0002_seed_data.sql
# Production
bunx wrangler d1 execute muslim-api-db --remote --file=migrations/0002_seed_data.sqlCatatan: File seed data cukup besar (~24MB). Jika timeout, coba split file atau import per tabel.
bun run dev
# API berjalan di http://localhost:8787bun run deploySetelah deploy, API akan tersedia di:
https://muslim-api.<your-subdomain>.workers.dev
| Command | Deskripsi |
|---|---|
bun run dev |
Jalankan development server |
bun run deploy |
Deploy ke Cloudflare Workers |
bun run db:create |
Buat database D1 baru |
bun run db:migrate:local |
Jalankan migration (local) |
bun run db:migrate:prod |
Jalankan migration (production) |
bun run db:seed:local |
Import data (local) |
bun run db:seed:prod |
Import data (production) |
muslim-api/
├── src/
│ ├── index.ts # Entry point & routing
│ └── routes/ # API route handlers
│ ├── surah.ts
│ ├── ayah.ts
│ ├── juz.ts
│ ├── tafsir.ts
│ ├── asbab.ts
│ ├── asma.ts
│ ├── theme.ts
│ ├── word.ts
│ ├── doa.ts
│ ├── dzikir.ts
│ └── hadits.ts
├── migrations/
│ ├── 0001_init.sql # Database schema
│ └── 0002_seed_data.sql # Data seed
├── database/
│ └── alquran.db # SQLite source (backup)
├── wrangler.toml # Cloudflare config
├── tsconfig.json
└── package.json
- Runtime: Cloudflare Workers
- Framework: Hono
- Database: Cloudflare D1 (SQLite)
- Language: TypeScript
- Original project by Otang45
- Data Al-Quran dari Kemenag RI
MIT License - Silakan fork dan gunakan untuk keperluan apapun.