Docs / Language and text

Indian classics API

Aathichoodi, the Bhagavad Gita in Sanskrit and Kabir's couplets, a line or verse at a time, with transliteration.

Public domain classics beside the Thirukkural: Avvaiyar's Aathichoodi (109 Tamil maxims), the Bhagavad Gita (700 Sanskrit verses) and 284 of Kabir's sakhis (Hindi couplets) from the Kabir Granthavali, as transcribed on Wikisource. Each line comes with a Roman transliteration (ISO 15919). No translations: those still under copyright are not used.

Base URL https://api.dharun.devNo key needed for most600 units a minute, 3000 with a free keyThis page as Markdown

The texts

GET/v1/classics

curl

curl "https://api.dharun.dev/v1/classics?utm_medium=docs"

JavaScript

const response = await fetch("https://api.dharun.dev/v1/classics?utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);

Python

import requests

response = requests.get("https://api.dharun.dev/v1/classics?utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
    raise RuntimeError(body["error"]["message"])
print(body["data"])
Try it here

Change the values and send the request from your browser. Needs JavaScript.

Response, with lists and long text shortened

{
  "data": [
    {
      "id": "aathichoodi",
      "title": "ஆத்திசூடி",
      "title_en": "Aathichoodi",
      "author": "Avvaiyar",
      "language": "ta",
      "part_name": "section",
      "unit_name": "line",
      "units": 111,
      "note": "109 one-line maxims in the order of the Tamil alphabet, with the two-line invocation as section 0, line 1 and 2.",
      "source": "https://ta.wikisource.org/wiki/ஆத்திசூடி"
    },
    {
      "id": "gita",
      "title": "श्रीमद्भगवद्गीता",
      "title_en": "Bhagavad Gita",
      "author": "Vyasa (attributed)",
      "language": "sa",
      "part_name": "chapter",
      "unit_name": "verse",
      "units": 700,
      "note": "The Sanskrit text, 700 verses in 18 chapters (Mahabharata, Bhishma Parva). Speakers are not marked.",
      "source": "https://sa.wikisource.org/wiki/भगवद्गीता"
    },
    {
      "id": "kabir",
      "title": "कबीर साखी",
      "title_en": "Kabir's sakhis (couplets)",
      "author": "Kabir",
      "language": "hi",
      "part_name": "anga",
      "unit_name": "couplet",
      "units": 284,
      "note": "Sakhis (couplets) of Kabir in the 17 angas (themes) of Kabir Granthavali, ed. Shyamsundar Das (Nagari Pracharini Sabha) that Wikisource has transcribed; numbers…",
      "source": "https://hi.wikisource.org/wiki/कबीर_ग्रंथावली"
    }
  ],
  "meta": {
    "total": 3,
    "source": {
      "name": "Aathichoodi, Bhagavad Gita (Sanskrit) and Kabir's sakhis, as transcribed on Wikisource",
      "url": "https://wikisource.org/",
      "licence": "Public domain texts (Avvaiyar, the Mahabharata, Kabir); Wikisource credited for the transcription",
      "version": "2026-11-12",
      "retrieved": "2026-11-12T15:40:00Z",
      "attribution": "Texts as transcribed on Tamil, Sanskrit and Hindi Wikisource; Kabir from the Kabir Granthavali edited by Shyamsundar Das."
    },
    "note": "Public domain texts as transcribed on Wikisource; the transliteration (ISO 15919) is made by this API from the script and is a guide to reading, not a scholarly…"
  }
}

A text and its parts

GET/v1/classics/{text}

ParameterDescription
textpath, requiredWhich text. One of: aathichoodi, gita, kabir.

curl

curl "https://api.dharun.dev/v1/classics/gita?utm_medium=docs"

JavaScript

const response = await fetch("https://api.dharun.dev/v1/classics/gita?utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);

Python

import requests

response = requests.get("https://api.dharun.dev/v1/classics/gita?utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
    raise RuntimeError(body["error"]["message"])
print(body["data"])
Try it here

Change the values and send the request from your browser. Needs JavaScript.

Response, with lists and long text shortened

{
  "data": {
    "id": "gita",
    "title": "श्रीमद्भगवद्गीता",
    "title_en": "Bhagavad Gita",
    "author": "Vyasa (attributed)",
    "language": "sa",
    "part_name": "chapter",
    "unit_name": "verse",
    "units": 700,
    "note": "The Sanskrit text, 700 verses in 18 chapters (Mahabharata, Bhishma Parva). Speakers are not marked.",
    "source": "https://sa.wikisource.org/wiki/भगवद्गीता",
    "parts": [
      {
        "number": 1,
        "name": "अर्जुनविषादयोगः",
        "units": 47
      },
      {
        "number": 2,
        "name": "साङ्ख्ययोगः",
        "units": 72
      },
      {
        "number": 3,
        "name": "कर्मयोगः",
        "units": 43
      }
    ]
  },
  "meta": {
    "source": {
      "name": "Aathichoodi, Bhagavad Gita (Sanskrit) and Kabir's sakhis, as transcribed on Wikisource",
      "url": "https://wikisource.org/",
      "licence": "Public domain texts (Avvaiyar, the Mahabharata, Kabir); Wikisource credited for the transcription",
      "version": "2026-11-12",
      "retrieved": "2026-11-12T15:40:00Z",
      "attribution": "Texts as transcribed on Tamil, Sanskrit and Hindi Wikisource; Kabir from the Kabir Granthavali edited by Shyamsundar Das."
    },
    "note": "Public domain texts as transcribed on Wikisource; the transliteration (ISO 15919) is made by this API from the script and is a guide to reading, not a scholarly…"
  }
}

A verse, a whole part, or a random one

GET/v1/classics/{text}/{ref}

ref is part.number (gita 2.47, kabir 1.3), a part alone for all of it (gita 2), random, or for Aathichoodi a line number (1 to 109).

ParameterDescription
textpath, requiredWhich text. One of: aathichoodi, gita, kabir.
refpath, required2.47, 2, random, or 7 for Aathichoodi.

curl

curl "https://api.dharun.dev/v1/classics/gita/2.47?utm_medium=docs"

JavaScript

const response = await fetch("https://api.dharun.dev/v1/classics/gita/2.47?utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);

Python

import requests

response = requests.get("https://api.dharun.dev/v1/classics/gita/2.47?utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
    raise RuntimeError(body["error"]["message"])
print(body["data"])
Try it here

Change the values and send the request from your browser. Needs JavaScript.

Response, with lists and long text shortened

{
  "data": {
    "text": "gita",
    "ref": "2.47",
    "part": 2,
    "part_name": "साङ्ख्ययोगः",
    "number": 47,
    "lines": [
      "कर्मण्येवाधिकारस्ते मा फलेषु कदाचन",
      "मा कर्मफलहेतुर्भूर्मा ते सङ्गोऽस्त्वकर्मणि"
    ],
    "transliteration": [
      "karmaṇyēvādhikārastē mā phalēṣu kadācana",
      "mā karmaphalahēturbhūrmā tē saṅgō’stvakarmaṇi"
    ]
  },
  "meta": {
    "source": {
      "name": "Aathichoodi, Bhagavad Gita (Sanskrit) and Kabir's sakhis, as transcribed on Wikisource",
      "url": "https://wikisource.org/",
      "licence": "Public domain texts (Avvaiyar, the Mahabharata, Kabir); Wikisource credited for the transcription",
      "version": "2026-11-12",
      "retrieved": "2026-11-12T15:40:00Z",
      "attribution": "Texts as transcribed on Tamil, Sanskrit and Hindi Wikisource; Kabir from the Kabir Granthavali edited by Shyamsundar Das."
    },
    "note": "Public domain texts as transcribed on Wikisource; the transliteration (ISO 15919) is made by this API from the script and is a guide to reading, not a scholarly…"
  }
}

Data source

Aathichoodi, Bhagavad Gita (Sanskrit) and Kabir's sakhis, as transcribed on Wikisource, 2026-11-12. Retrieved 2026-11-12T15:40:00Z. Licence: Public domain texts (Avvaiyar, the Mahabharata, Kabir); Wikisource credited for the transcription. Texts as transcribed on Tamil, Sanskrit and Hindi Wikisource; Kabir from the Kabir Granthavali edited by Shyamsundar Das.

Using an AI assistant? Connect the MCP server and it can call this API by itself. Want every endpoint on one bench? Open the playground.