Skip to content

gadingnst/quran-api

Repository files navigation

Quran - API

Quran API with media audio Syekh. Mishary Rashid Al-Afasy murrotal.

Deployment

This API has lived at: https://api.quran.gading.dev

Terms of using Live API that hosted in https://api.quran.gading.dev

FYI, this Live API already has a rate limiter of 10req/5min/address and 150req/5min for the whole server. So, you can't rely on this Live API for continuous use. But, you can cache the API result into local/client storage, and your app doesn't need to request the API frequently.

On the other side, it's highly recommended to deploy this API with yourself, just click the Deploy button below, or clone this repository and deploy it wherever cloud/server you want.

Deploy your own!

Deploy with Vercel Deploy

What is the reason behind I limit the incoming requests in this Live API?

Yeah, of course I'm glad that this API is known and used by many people. But unfortunately, Vercel Team noticed that my Personal Account has reached its limit. So, that the reason is.


Introduction

This API data source comes from the combination of several parameters from api.alquran.cloud and quran.kemenag.go.id by merging its data to one JSON file with new structure for the better use and performance. Futhermore, this api uses indexed querying techniques with 0(1) access time which is greatly affects performance.

Features

  • Arabic Transliteration
  • English and Indonesia translation
  • Verses meta (juz, sajda, manzil, etc)
  • Tafsir surahs and verses (for now, only Bahasa Indonesia)
  • Audio (Syekh. Mishary Rashid Al-Afasy murrotal edition)
  • Your requests ?

Data Source

  • api.alquran.cloud = Quran, Meta Verses, Audio.
  • quran.kemenag.go.id = Indonesia translations and tafsir verses (short/long).
  • Al-Quran-ID-API = Indonesia tafsir surah [note: ambiguous revelation type on surah 13 and 55 in this source. So, I changed it to medinan (according to sahih international data)]

Endpoint usage

  • /surah = Returns the list of surahs in Al-Quran.
  • /surah/{surah} = Returns spesific surah. Example: /surah/110
  • /surah/{surah}/{ayah} = Returns spesific ayah with requested surah. Example: /surah/2/255
  • /juz/{juz} = Returns spesific juz with all ayah.Example: /juz/2

Recommended fonts for Al-qur'an

Available Commands

  • npm start = run server.
  • npm run dev = run develop server.
  • npm run crawl = collect new data from the data source, then unifying it in one JSON file.

Performance Measurement & Comparison

Fetching on Surah 7 with audio, en translation & transliteration, id translation . Result: 1200++ ms

api.alquran.cloud

Fetching on Surah 7 with audio, en translation & transliteration, id translation & tafsir (a lot more data and hosted on free serverless). Result: 400++ ms

api.quran.gading.dev

LICENSE

MIT

Support Me

Global

ko-fi

Indonesia


Copyright © 2020 by Sutan Gading Fadhillah Nasution