Quran Foundation Documentation Portal
Create your app in Developer Console, pick the right integration path, and build with Quran Foundation APIs using the official docs, SDK, and starter app.
Next.js starter
Production-shaped app in one command
Before you run this: create a Backend/server app in Developer Console and save its one-time client secret. Search requires separate pre-live permission before the included search surface works.
npx @quranjs/create-app@latest my-quran-app --template next --package-manager npm --install --git --sdk-source npm --yesIncludes OAuth2, reader, a permission-gated search surface, notes, bookmarks, and SDK wiring. Use this for the fastest working app. If you already have your own UI, start with the JavaScript SDK path below.
Pick your path
Start with the route that matches your app
Create your app in Developer Console first. Then choose the path that matches what you need: content without login, typed SDK clients, signed-in user data, or manual OAuth2.
Start here
Create your API app
Register your app to receive pre-live credentials, configure redirect URIs, request scopes, and request production permissions when you are ready.
Need Quran data without login?
Content APIs
Read verses, chapters, translations, tafsir, audio, and search with app credentials. No Quran.com user account or OAuth user session is involved.
Call from your backend with the SDK or raw HTTP.
GET /content/api/v4/chaptersStart Content QuickstartPrefer typed clients over raw HTTP?
JavaScript SDK
Use the SDK when you are building in JavaScript or TypeScript and want typed clients for Content, Search, OAuth helpers, and User APIs.
Use the server entrypoint for backend/API calls and the public entrypoint only for browser or mobile-safe OAuth helpers.
import { createServerClient } from "@quranjs/api/server";Open JavaScript SDKNeed signed-in user data?
User APIs
Add Quran.com user features to an existing app: bookmarks, collections, notes, reading progress, goals, and preferences.
Requires OAuth login/session; call from your backend with the SDK or raw HTTP.
GET /auth/v1/bookmarksOpen User APIs QuickstartNeed to implement auth yourself?
Manual OAuth2
Use this for custom token handling, non-JS stacks, mobile apps, or debugging OAuth2/OIDC behavior.
Protocol guide for PKCE, token exchange, refresh, scopes, and OIDC validation.
POST /oauth2/tokenOpen OAuth2 Tutorial