GET / https://quranenc.com/api/v1/translations/list/[[{language}]]/?localization={language_iso_code}
Description: Lists available translations. If the optional path param {language} is provided (ISO code) the list is filtered to that language only.
language (optional path): Filter by a specific language ISO code (see available languages / iso codes). If omitted, all translations are returned.
localization (optional query): Defaults to en. Localizes "title" & "description" into the specified locale (see available locales)
Returns: JSON array of objects. Each object: "key", "language_iso_code", "version", "last_update" (timestamp), "title", "description" (localized).
Examples:
/api/v1/translations/list
/api/v1/translations/list/es
(Spanish only, default English localization)
/api/v1/translations/list/es?localization=es
(Spanish list localized in Spanish)
GET / https://quranenc.com/api/v1/translation/sura/{translation_key}/{sura_number}
Description: Returns all ayat of a sura for the specified translation.
translation_key: Translation key (e.g. english_saheeh)
sura_number: 1–114
Returns: JSON array: each item has "sura", "aya", "translation", "footnotes".
GET / https://quranenc.com/api/v1/translation/aya/{translation_key}/{sura_number}/{aya_number}
Description: Returns a single aya translation.
translation_key: Translation key
sura_number: 1–114
aya_number: 1–… (within sura)
Returns: JSON object: "sura", "aya", "translation", "footnotes".
Base URL / https://d.quranenc.com/data/audio/{translation_key}/{sura_3digits}{aya_3digits}.mp3
Description: Audio files for each aya are served as static MP3 files. The URL is constructed from the translation key and the sura/aya numbers each zero-padded to 3 digits.
translation_key: One of the keys listed above.
sura_3digits: Sura number zero-padded to 3 digits (001–114)
aya_3digits: Aya number zero-padded to 3 digits (001–…)
Returns: MP3 audio file (audio/mpeg). Returns HTTP 404 if the file does not exist for the given translation/sura/aya.
URL construction example (JavaScript):
function audioUrl(translationKey, sura, aya) {
const s = String(sura).padStart(3, '0');
const a = String(aya).padStart(3, '0');
return `https://d.quranenc.com/data/audio/${translationKey}/${s}${a}.mp3`;
}
// Sura 1, Aya 1 — Chinese Suliman
audioUrl('chinese_suliman', 1, 1);
// → "https://d.quranenc.com/data/audio/chinese_suliman/001001.mp3"
// Sura 18, Aya 110
audioUrl('chinese_suliman', 18, 110);
// → "https://d.quranenc.com/data/audio/chinese_suliman/018110.mp3"
Example URLs:
https://d.quranenc.com/data/audio/chinese_suliman/001001.mp3
(Sura 1, Aya 1)
https://d.quranenc.com/data/audio/chinese_suliman/002255.mp3
(Sura 2, Aya 255 — Ayat Al-Kursi)
POST / https://quranenc.com/api/v1/translations/note
Description: Submit a user note / feedback on a specific Aya translation.
translation_key*: string
sura*: 1–114
aya*: 1–…
note*: string (content)
version: optional translation version
suggested_translation: optional alternative text
name: optional author name
email: optional author email
source: optional app name or domain name
* required
Returns:
201: {"status":1}
400: {"status":0,"error":"Missing required parameters"}
500: {"status":0,"error":"Failed to save note"}
Example (JSON):
{
"translation_key":"english_saheeh",
"sura":1,
"aya":7,
"note":"This is my note",
"version":"1.0.9",
"name":"Mostafa",
"email":"[email protected]",
"source":"MyQuranApp"
}
Example (form-data):
translation_key=english_saheeh sura=1 aya=7 note=This is my note version=1.0.9 name=Mostafa [email protected] source=MyQuranApp