Hymnal API

A free, open API serving hymnal data across 7 collections. Browse online or integrate into your app.

Browse Hymns View API Docs
4,485 Hymns
7 Collections
3 Languages
Free Forever

Browse Hymns

Search by title or lyrics across all collections.

Loading hymns...

Collections

7 hymnal collections spanning Malagasy, French, and English.

API Documentation

Free static JSON API. No authentication required. Fetch directly from GitHub Pages.

GET /api/hymns.json All hymns (without lyrics)

Returns an array of all 4,485 hymns. Lyrics are excluded to keep the response lightweight. Use the individual hymn endpoint to fetch lyrics.

Example Response
[ { "ID": 0, "Number": 1, "Title": "Vous, qui sur la terre habitez", "Author": null, "Key": "", "Category": 2, "CategoryName": "Hymne et Louange", "Active": 1 }, ... ]
GET /api/hymns/{id}.json Single hymn with lyrics

Returns a single hymn by its ID, including the full lyrics broken into labeled verses. Each verse's text uses \n for line breaks.

Example: /api/hymns/1.json
{ "ID": 1, "Number": 1, "Title": "Praise to the Lord", "Category": 3, "CategoryName": "SDA Hymnal", "Lyrics": [ { "label": "1", "text": "Praise to the Lord, the Almighty,\nthe King of creation!..." }, ... ] }
GET /api/categories.json All collections

Returns a list of all hymnal collections with their ID, name, and hymn count.

Response
[ { "ID": 1, "Name": "Fihirana Advantista (Malagasy)", "count": 802 }, { "ID": 2, "Name": "Hymne et Louange", "count": 650 }, { "ID": 3, "Name": "SDA Hymnal", "count": 695 }, { "ID": 4, "Name": "Chant Jeunesse", "count": 6 }, { "ID": 5, "Name": "J'aime l'Eternel (JEM)", "count": 998 }, { "ID": 6, "Name": "Fihirana Fanampiny (FFPM)", "count": 814 }, { "ID": 7, "Name": "Donnez-Lui gloire", "count": 520 } ]
GET /api/categories/{id}.json Hymns by collection

Returns all hymns belonging to a specific collection (without lyrics). Use category IDs 1 through 7.

Example: /api/categories/3.json
// Returns 695 SDA Hymnal entries [ { "ID": 1, "Number": 1, "Title": "Praise to the Lord", "CategoryName": "SDA Hymnal", ... }, ... ]
Quick start: Fetch all hymns in JavaScript:
// Fetch all hymns const res = await fetch('https://<username>.github.io/hymnal-api/api/hymns.json'); const hymns = await res.json(); // Fetch a single hymn with lyrics const hymn = await fetch(`https://<username>.github.io/hymnal-api/api/hymns/${id}.json`) .then(r => r.json());