API Pengembang

API Pencarian AI Quran

API pencarian gratis bertenaga AI untuk Al-Quran Mulia. Jelaskan tema, cerita, atau pertanyaan dalam bahasa sederhana dan dapatkan referensi surah dan ayat yang relevan dengan penjelasan AI singkat dalam format JSON.

POST
/api/ai-search
Respons JSON
Gratis untuk digunakan

Ikhtisar

API pencarian AI mencocokkan kueri bahasa alami dengan surah dan ayat dalam Al-Quran menggunakan AI semantik. Ini dirancang untuk integrator yang menginginkan penemuan berbasis tema tanpa membangun indeks pencarian atau pipeline LLM mereka sendiri.

  • Mengembalikan satu respons JSON yang dapat Anda uraikan dengan klien HTTP apa pun.
  • Menulis ringkasan relevansi setiap hasil dalam bahasa yang Anda berikan, atau mendeteksi bahasa kueri secara otomatis (detectedLanguage) ketika Anda tidak menyertakannya.
  • Mengembalikan nomor surah dan ayat terstruktur yang dapat ditautkan oleh aplikasi Anda.

Mohon tautkan kembali

API ini gratis untuk digunakan. Jika Anda membangun sesuatu dengannya, kami akan sangat berterima kasih jika Anda dapat menautkan kembali ke OpenQuran.app — misalnya di mana pun hasil pencarian muncul, atau di halaman kredit atau tentang Anda.

Contoh tautan yang mungkin Anda gunakan:

HTML
<a href="https://openquran.app" rel="noopener">Pencarian Quran oleh OpenQuran.app</a>

Kami membagikan karya ini secara gratis demi Al-Quran. Tautan balik kecil membantu orang lain menemukan pembaca ini dan sangat berarti bagi kami.

Endpoint

Kirim badan JSON dengan frasa pencarian pengguna. API merespons dengan satu objek JSON yang berisi referensi yang cocok.

URL
POST https://openquran.app/api/ai-search

Header

HeaderNilaiCatatan
Content-Typeapplication/jsonWajib

Permintaan

Isi permintaan adalah objek JSON tunggal:

Isi JSON
{
  "query": "patience in hardship",
  "language": "en"
}

Batasan

  • Kueri harus 2–300 karakter setelah dipangkas.
  • bahasa bersifat opsional: kode ISO 639-1 (misalnya en, ar, fr) untuk penjelasan relevansi. Ketika dihilangkan atau tidak valid, bahasa akan dideteksi secara otomatis dari kueri.
  • Maksimal 12 hasil per kueri.
  • Spasi di awal dan akhir dihilangkan.

Respons

Permintaan yang berhasil mengembalikan HTTP 200 dengan objek JSON.

Tipe Konten: application/json

Contoh respons
{
  "ok": true,
  "results": [
    {
      "type": "surah",
      "surah": 2,
      "relevance": "Covers patience through trials."
    },
    {
      "type": "verse",
      "surah": 2,
      "ayah": 255,
      "relevance": "Ayat al-Kursi speaks of steadfastness in faith."
    }
  ],
  "detectedLanguage": "en"
}

Setiap item dalam hasil menyertakan bidang relevansi. Teks tersebut ditulis dalam bahasa yang Anda minta, atau dalam bahasa kueri yang terdeteksi (detectedLanguage) ketika tidak ada bahasa yang disediakan — misalnya, kueri bahasa Arab menghasilkan ringkasan relevansi bahasa Arab.

Bidang tingkat atas

BidangTipeCatatan
oktrueSelalu benar jika berhasil.
resultsarrayDaftar terurut referensi surah atau ayat (lihat Tipe hasil).
detectedLanguagestring | nullKode ISO 639-1 untuk bahasa yang terdeteksi dari kueri. String relevansi menggunakan bahasa dari permintaan Anda jika disediakan, jika tidak, bahasa yang terdeteksi ini.

Tipe hasil

Setiap hasil adalah objek berlabel — baik surah utuh atau satu ayat:

SemanticSearchResult
// Whole surah reference
{ "type": "surah", "surah": 2, "relevance": "One sentence explaining the match." }

// Single verse reference
{ "type": "verse", "surah": 2, "ayah": 255, "relevance": "One sentence explaining the match." }
  • surahNomor surah, 1–114.
  • ayahNomor ayat berbasis 1 dalam surah (hanya hasil ayat).
  • relevancePenjelasan satu kalimat mengapa referensi cocok, ditulis dalam bahasa yang diminta atau bahasa kueri yang terdeteksi. Null untuk pencarian referensi cepat.

Referensi cepat

Nomor surah dan referensi ayat saja akan melewati model AI dan langsung diselesaikan:

  • 2navigasi ke Surah 2
  • 2:255navigasi ke ayat 255 dari Surah 2

Kueri referensi cepat segera mengembalikan hasil dengan relevansi diatur ke null pada setiap hasil.

Batas laju

Untuk menjaga layanan tetap gratis dan tersedia, setiap IP klien dibatasi hingga 10 permintaan per 60 detik.

  • Batasan dilacak per alamat IP menggunakan header proxy standar (`X-Forwarded-For`, `X-Real-IP`).
  • Ketika dibatasi, API mengembalikan HTTP 429 dengan header `Retry-After` (detik hingga Anda dapat mencoba lagi).
  • Pengambilan data otomatis, kueri massal, atau upaya untuk menghindari batasan dapat mengakibatkan pemblokiran.
429 Too Many Requests
{
  "ok": false,
  "error": "Too many requests. Please slow down."
}

Respons kesalahan

Permintaan yang gagal mengembalikan badan JSON dengan 'ok' diatur ke 'false' dan pesan kesalahan singkat.

StatusArti
400JSON tidak valid, kueri kosong, atau kueri lebih pendek dari panjang minimum.
429Batas laju terlampaui. Periksa header 'Retry-After' (detik).
502Layanan pencarian gagal secara tak terduga.
503Pencarian AI tidak dikonfigurasi pada deployment ini.

Semua respons kesalahan menggunakan bentuk: 'ok': false, 'error': "message".

Contoh kode

cURL

curl
curl -X POST 'https://openquran.app/api/ai-search' \
  -H 'Content-Type: application/json' \
  -d '{"query":"patience in hardship"}'

JavaScript

JavaScript (fetch)
const response = await fetch('https://openquran.app/api/ai-search', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ query: 'patience in hardship' }),
});

if (!response.ok) {
  const error = await response.json();
  throw new Error(error.error ?? response.statusText);
}

const data = await response.json();
console.log(data.results);

Penafian

Hasil dihasilkan oleh model AI dan mungkin tidak lengkap atau tidak sempurna. Ini adalah petunjuk untuk membantu orang menjelajahi Al-Quran — bukan fatwa agama atau tafsir otoritatif. Selalu baca ayat-ayat dalam konteks lengkapnya.

Dengan menggunakan API ini, Anda menyetujui Ketentuan Layanan dan Kebijakan Privasi kami.