GurbaniNow API
Free Gurbani API with no key: any ang of the Sri Guru Granth Sahib with Gurmukhi script, transliteration, translations and larivaar rendering. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the GurbaniNow API?
GurbaniNow serves the Sri Guru Granth Sahib and related Sikh scripture as JSON with no API key. Requesting an ang returns every line on that page in Gurmukhi Unicode and ASCII, with larivaar spacing, transliteration and translations.
Sikh scripture presents a specific technical problem: the Gurmukhi script is served two ways, as modern Unicode and as a legacy ASCII encoding used by older fonts still common in gurdwara display software. GurbaniNow returns both on every line — `akhar` for the ASCII form and `unicode` for the Unicode one — so an integration works with either without needing a conversion table.
The `larivaar` field is the second thing that sets it apart. Traditional manuscripts write Gurbani without spaces between words, and larivaar rendering reproduces that using zero-width joiners rather than plain spaces, again in both encodings. That matters to readers who study the text in its traditional form, and it is invisible unless you know to look for it. Scripture is addressed by ang — the page in the standard 1430-page edition — with the `source` block confirming which text and how long it is, and there are separate endpoints for shabads and search.
Quick facts
- Base URL
https://api.gurbaninow.com/v2- Authentication
- No API key and no account.
- Rate limit
- No published limit. Scripture is immutable — cache permanently.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the GurbaniNow API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch a page of Sri Guru Granth Sahib
GET https://api.gurbaninow.com/v2/ang/1
curl 'https://api.gurbaninow.com/v2/ang/1'const res = await fetch("https://api.gurbaninow.com/v2/ang/1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.gurbaninow.com/v2/ang/1", timeout=20)
res.raise_for_status()
print(res.json()){
"pageno": 1,
"source": {
"id": 1,
"akhar": "SRI gurU gRMQ swihb jI",
"unicode": "ਸ਼੍ਰੀ ਗੁਰੂ ਗ੍ਰੰਥ ਸਾਹਿਬ ਜੀ",
"english": "Sri Guru Granth Sahib Ji",
"length": 1430,
"pageName": {
"akhar": "AMg",
"unicode": "ਅੰਗ",
"english": "Ang"
}
},
"count": 23,
"page": [
{
"line": {
"id": "0NVY",
"type": 1,
"shabadid": "DMP",
"gurmukhi": {
"akhar": "<> siq nwmu krqw purKu inrBau inrvYru Akwl mUriq AjUnI sYBM gur pRswid ]",
"unicode": "ੴ ਸਤਿ ਨਾਮੁ ਕਰਤਾ ਪੁਰਖੁ ਨਿਰਭਉ ਨਿਰਵੈਰੁ ਅਕਾਲ ਮੂਰਤਿ ਅਜੂਨੀ ਸੈਭੰ ਗੁਰ ਪ੍ਰਸਾਦਿ ॥"
},
"larivaar": {
"akhar": "<>siqnwmukrqwpurKuinrBauinrvYruAkwlmUriqAjUnIsYBMgurpRswid]",
"unicode": "ੴਸਤਿਨਾਮੁਕਰਤਾਪੁਰਖੁਨਿਰਭਉਨਿਰਵੈਰੁਅਕਾਲਮੂਰਤਿਅਜੂਨੀਸੈਭੰਗੁਰਪ੍ਰਸਾਦਿ॥"
},
"translation": {
"english": {
"default": "One Universal Creator God. The Name Is Truth. Creative Being Personified. No Fear. No Hatred. Image Of The Undying, Beyond Birth, Self-Existent. By Guru's Grace ~"
},
"punjabi": {
"default": {
"akhar": "Akwl purK ie`k hY, ijs dw nwm 'hoNd vwlw' hY jo isRStI dw rcnhwr hY, jo sB ivc ivAwpk hY, BY qoN rihq hY, vYr-rihq hY, ijs dw srUp kwl qoN pry hY, (Bwv, ijs dw srIr nws-rihq hY), jo jUnW ivc nhIN AwauNdw, ijs dw pRkwS Awpxy Awp qoN hoieAw hY Aqy jo siqgurU dI ikrpw nwl imldw hY[",
"unicode": "ਅਕਾਲ ਪੁਰਖ ਇੱਕ ਹੈ, ਜਿਸ ਦਾ ਨਾਮ 'ਹੋਂਦ ਵਾਲਾ' ਹੈ ਜੋ ਸ੍ਰਿਸ਼ਟੀ ਦਾ ਰਚਨਹਾਰ ਹੈ, ਜੋ ਸਭ ਵਿਚ ਵਿਆਪਕ ਹੈ, ਭੈ ਤੋਂ ਰਹਿਤ ਹੈ, ਵੈਰ-ਰਹਿਤ ਹੈ, ਜਿਸParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
(ang) | path | Required | Page number in the standard 1430-page edition. 1 |
/shabad/{id} | path | Optional | One shabad by its identifier. |
/search/{query} | path | Optional | Search the scripture text. |
Response fields
pagenointeger- The ang you requested.
sourceobject- Which scripture this is, with `english`, `unicode` and `akhar` names, its `length` of 1430 pages, and a `pageName` block giving the word for a page in each form.
countinteger- How many lines are on this ang.
pagearray- The lines, each wrapped in a `line` object.
page[].line.idstring- Line identifier.
page[].line.shabadidstring- Which shabad the line belongs to, so you can group lines into complete hymns.
page[].line.gurmukhiobject- The line itself, with `akhar` for legacy ASCII and `unicode` for Gurmukhi Unicode.
page[].line.larivaarobject- The same line in traditional unspaced form, using zero-width joiners, in both encodings.
page[].line.translationobject- Translations in English and Punjabi where available.
page[].line.transliterationobject- Romanised readings for pronunciation.
page[].line.typeinteger- Line type code distinguishing headers from verse lines.
What you can build with the GurbaniNow API
- Build a Gurbani reader that works with modern and legacy fonts
- Display scripture in traditional larivaar form
- Present translations and transliteration alongside the original
- Power gurdwara projection software from a live source
Common errors and how to fix them
Gurmukhi renders as gibberish
You used `akhar` with a Unicode font, or `unicode` with a legacy one.
Fix: Match the field to your font. `unicode` for modern fonts, `akhar` for legacy Gurmukhi ASCII fonts.
Larivaar shows as one unbroken word
Zero-width joiners are not being rendered.
Fix: Use a font with proper Gurmukhi shaping. The joiners are correct; the font is not handling them.
404 on an ang
Valid pages run from 1 to 1430.
Fix: The `source.length` field confirms the total. Anything outside that range does not exist.
Missing translation
Not every line has every translation.
Fix: Check the field before rendering and fall back to transliteration.
GurbaniNow API — frequently asked questions
Is the GurbaniNow API free?
Yes, free with no key or account.
Why is every line given in two scripts?
Because Gurmukhi is served both as modern Unicode and as a legacy ASCII encoding that older gurdwara display fonts still use. Returning both means an integration works either way.
What is larivaar?
The traditional way of writing Gurbani without spaces between words, as it appears in the original manuscripts. The API reproduces it with zero-width joiners, so it needs a font with proper Gurmukhi shaping to display correctly.
What is an ang?
A page in the standard 1430-page edition of the Sri Guru Granth Sahib. It is the canonical way to reference a location in the text, and the `source.length` field confirms the total.
Tools that pair with this API
Unicode Character Inspector
Inspect any text character by character: Unicode code points, UTF-8 bytes, UTF-16 units, HTML entities, CSS and JS escapes, plus NFC, NFD, NFKC and NFKD forms.
Character Counter
Count characters with and without spaces in real time and check limits for Twitter/X, Instagram captions, meta descriptions and SMS messages.
Invisible Character Remover
Remove invisible characters like zero-width spaces, joiners, BOMs, non-breaking spaces and control codes from text. See how many and which types were stripped.
GurbaniNow is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.