A comprehensive open-source Quran API providing easy access to Quranic content
β’ π Website β’ π οΈ Developer Portal β’ π Test api in browser β’ π¦ SDK β’ π Issues
Natiq Quran API is a powerful, open-source RESTful API designed to provide developers with seamless access to the Holy Quran's contentβincluding full Arabic text, multilingual translations, and audio recitations.
This API is at the heart of the Natiq ecosystem, powering various digital Islamic tools such as:
- β Natiq SDKs for effortless integration into your mobile, web, or backend apps
- π natiq.net β our fully-featured platform built on top of this API
- βοΈ Conversion and content tools to help you extend and customize Quranic data
- π± Frontend apps using Next.js and PWA technologies
Whether you're building an educational platform, a personal Quran app, or integrating spiritual content into your existing products, nq-api
provides a fast, developer-friendly, and scalable foundation.
If you're looking to get started quickly, consider using our nq-sdk or ready-to-use hosted services at api.natiq.net.
- π Complete Quranic Text - Access all 114 Surahs with original Arabic text
- π Multi-language Support - Translations in multiple languages
- π Audio Integration - Links to recitation files
- π Tafsir Support - Commentary and explanations
- π Word-by-Word Data - Get detailed information for each word in an Ayah
- β‘ High Performance - Fast response times with optimized data structure
- π Open Source - Free to use and contribute
- π± Developer Friendly - Simple REST endpoints with JSON responses
- π‘οΈ Reliable - Stable API with consistent uptime
developer.natiq.net - Test all endpoints directly in your browser!
- π― Zero Setup Required - Start testing immediately
- π Live API Testing - Interactive playground for all endpoints
- π Real-time Documentation - See responses as you explore
- π‘ Code Examples - Copy-paste ready code snippets
- π§ Request Builder - Visual interface for API calls
nq-sdk - Official SDK for faster development
- β‘ Quick Integration - Get started in minutes, not hours
- π Auto-completion - Full TypeScript support
The following are the main API endpoints available:
/users/
: User management./groups/
: Group management./mushafs/
: Mushaf (Quran version) information./surahs/
: List of Surahs./ayahs/
: List of Ayahs./words/
: List of words./translations/
: Available translations./ayah-translations/
: Ayah translations./recitations/
: Recitation information./auth/
: Authentication endpoints./profile/
: User profiles./phrases/
: Quranic phrases.
nq-api/
βββ π account/ # User management app
βββ π api/ # Core API configuration and routing
βββ π core/ # Core functionalities
βββ π data/ # Data files
βββ π quran/ # Quran-related app (Surahs, Ayahs, etc.)
βββ π .dockerignore
βββ π .gitignore
βββ π Dockerfile # Docker image configuration
βββ π LICENSE # project license
βββ π README.md # This file
βββ π docker-compose.yaml # Docker orchestration
βββ π entrypoint.prod.sh
βββ π manage.py # Django management script
βββ π nginx.conf # Django management script
βββ π requirements.txt # Python dependencies
sudo apt update
If Docker is not already installed, you can install it with the official script:
curl -fsSL https://get.docker.com | sh
You can verify the installation with:
docker --version
mkdir -p nq-api
cd nq-api
curl -fsSL https://raw.githubusercontent.com/NatiqQuran/nq-api/refs/heads/main/docker-compose.yaml -o docker-compose.yaml
curl -fsSL https://raw.githubusercontent.com/NatiqQuran/nq-api/refs/heads/main/nginx.conf -o nginx.conf
Make sure the following values are properly set inside the environment:
section under the api
service:
SECRET_KEY
: Generate one using:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 40 | head -n 1
DJANGO_ALLOWED_HOSTS
: Get your public IP:
curl -s https://api.ipify.org
You can now edit the file and insert these values as shown below:
api:
image: natiqquran/nq-api:main
environment:
SECRET_KEY: your-generated-secret
DJANGO_ALLOWED_HOSTS: your-ip-address
Open the file with:
nano docker-compose.yaml
Or use any other editor you prefer.
From inside the nq-api
folder:
docker compose up -d
After a few seconds, the API should be up and running.
You can now access it at:
http://<your-server-ip>
Replace <your-server-ip>
with your actual server IP or Domain address .