API Pembangun

API Carian AI Quran

API carian percuma berkuasa AI untuk Al-Quran yang Mulia. Huraikan tema, cerita, atau soalan dalam bahasa biasa dan dapatkan rujukan surah dan ayat yang relevan dengan penjelasan AI ringkas dalam format JSON.

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

Gambaran Keseluruhan

API carian AI memadankan pertanyaan bahasa semula jadi dengan surah dan ayat dalam Al-Quran menggunakan AI semantik. Ia direka untuk pengintegrasi yang mahukan penemuan berasaskan tema tanpa membina indeks carian atau saluran paip LLM mereka sendiri.

  • Mengembalikan satu respons JSON yang boleh anda huraikan dengan mana-mana klien HTTP.
  • Menulis ringkasan relevansi setiap hasil dalam bahasa yang anda berikan, atau mengesan bahasa pertanyaan secara automatik (detectedLanguage) apabila anda tidak menyertakannya.
  • Mengembalikan nombor surah dan ayat berstruktur yang boleh dipautkan oleh aplikasi anda.

Sila berikan pautan kembali

API ini percuma untuk digunakan. Jika anda membina sesuatu dengannya, kami amat berbesar hati jika anda dapat memberikan pautan kembali ke OpenQuran.app — contohnya di mana sahaja hasil carian muncul, atau di halaman kredit atau tentang anda.

Contoh pautan yang mungkin anda gunakan:

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

Kami berkongsi hasil kerja ini secara percuma demi Al-Quran. Pautan kecil kembali membantu orang lain menemui pembaca ini dan amat bermakna bagi kami.

Titik Akhir

Hantar badan JSON dengan frasa carian pengguna. API akan membalas dengan satu objek JSON yang mengandungi rujukan yang sepadan.

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

Pengepala

PengepalaNilaiNota
Content-Typeapplication/jsonDiperlukan

Permintaan

Badan permintaan adalah satu objek JSON:

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

Batasan

  • Pertanyaan mestilah 2–300 aksara selepas pemangkasan.
  • language adalah pilihan: kod ISO 639-1 (cth. en, ar, fr) untuk penjelasan relevansi. Apabila diabaikan atau tidak sah, bahasa akan dikesan secara automatik daripada pertanyaan.
  • Maksimum 12 hasil setiap pertanyaan.
  • Ruang kosong di hadapan dan belakang akan dibuang.

Respons

Permintaan yang berjaya mengembalikan HTTP 200 dengan objek JSON.

Jenis Kandungan: 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 termasuk medan relevansi. Teks tersebut ditulis dalam bahasa yang anda minta, atau dalam bahasa pertanyaan yang dikesan (detectedLanguage) apabila tiada bahasa disediakan — contohnya, pertanyaan Arab menghasilkan ringkasan relevansi Arab.

Medan peringkat atas

MedanJenisNota
oktrueSentiasa benar apabila berjaya.
resultsarraySenarai rujukan surah atau ayat yang tersusun (lihat Jenis hasil).
detectedLanguagestring | nullKod ISO 639-1 untuk bahasa yang dikesan daripada pertanyaan. Rentetan relevansi menggunakan bahasa daripada permintaan anda jika disediakan, jika tidak, bahasa yang dikesan ini.

Jenis hasil

Setiap hasil adalah objek bertanda — sama ada surah penuh 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." }
  • surahNombor surah, 1–114.
  • ayahNombor ayat berasaskan 1 dalam surah (hasil ayat sahaja).
  • relevancePenjelasan satu ayat mengapa rujukan sepadan, ditulis dalam bahasa yang diminta atau bahasa pertanyaan yang dikesan. Null untuk carian rujukan pantas.

Rujukan pantas

Nombor surah dan rujukan ayat kosong melangkau model AI dan diselesaikan serta-merta:

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

Pertanyaan rujukan pantas dikembalikan serta-merta dengan relevansi ditetapkan kepada null pada setiap hasil.

Had kadar

Untuk memastikan perkhidmatan percuma dan tersedia, setiap IP klien dihadkan kepada 10 permintaan setiap 60 saat.

  • Had dijejak mengikut alamat IP menggunakan pengepala proksi standard (`X-Forwarded-For`, `X-Real-IP`).
  • Apabila dihadkan, API mengembalikan HTTP 429 dengan pengepala `Retry-After` (saat sehingga anda boleh mencuba semula).
  • Pengikisan automatik, pertanyaan pukal, atau percubaan untuk mengelak had boleh mengakibatkan penyekatan.
429 Too Many Requests
{
  "ok": false,
  "error": "Too many requests. Please slow down."
}

Respons ralat

Permintaan yang gagal mengembalikan badan JSON dengan 'ok' ditetapkan kepada 'false' dan mesej ralat ringkas.

StatusMaksud
400JSON tidak sah, pertanyaan kosong, atau pertanyaan lebih pendek daripada panjang minimum.
429Had kadar melebihi. Semak pengepala 'Retry-After' (saat).
502Perkhidmatan carian gagal secara tidak dijangka.
503Carian AI tidak dikonfigurasi pada penggunaan ini.

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

Contoh kod

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 dijana oleh model AI dan mungkin tidak lengkap atau tidak sempurna. Ia adalah petunjuk untuk membantu orang ramai meneroka Al-Quran — bukan fatwa agama atau tafsiran berwibawa. Sentiasa baca ayat-ayat dalam konteks penuhnya.

Dengan menggunakan API ini, anda bersetuju dengan Syarat Perkhidmatan dan Dasar Privasi kami.