Reference
API documentation
All endpoints are static JSON files. No authentication, no rate limiting, no SDK required. Fetch them with anything that speaks HTTP.
Endpoints
| Path | Returns | Sample |
|---|---|---|
| /ragas/<SLUG>.json | One raga record (e.g. yaman, bhairavi, shankarabharanam). | /ragas/yaman.json |
| /index.json | Compact array of every raga slug. Use for autocomplete. | /index.json |
| /all.json | Every full record in one file. | /all.json |
| /by-system.json | { hindustani: [slugs], carnatic: [slugs] } map. | /by-system.json |
| /thaats.json | The 10 Hindustani thaats with descriptions. | /thaats.json |
| /melakartas.json | The 72 Carnatic melakarta ragas (parent scales). | /melakartas.json |
Base URL: https://ragas.oriz.in · also available at https://cdn.jsdelivr.net/gh/oriz-org/ragas-api@main
Record schema
Each /ragas/<SLUG>.json file returns one record:
type Raga = {
slug: string; // e.g. "yaman", "shankarabharanam"
name: string; // canonical name in Latin script
alt_names: string[]; // alternate spellings / regional names
system: "hindustani" | "carnatic";
thaat: string | null; // Hindustani parent thaat, null for Carnatic
melakarta: number | null; // Carnatic parent melakarta (1..72), null for Hindustani
arohana: string; // ascending scale, sargam notation
avarohana: string; // descending scale, sargam notation
vadi: string | null; // most-emphasized note
samvadi: string | null; // second-most-emphasized note
time: string | null; // performance time (mostly Hindustani)
rasa: string | null; // dominant emotional mood
notes: string; // free-text description (may be empty)
} Hindustani vs Carnatic
Indian classical music has two major systems, and they classify ragas differently:
- Hindustani (North Indian) uses the thaat system: 10 parent scales (Bilawal, Khamaj, Kafi, Asavari, Bhairavi, Kalyan, Marwa, Poorvi, Todi, Bhairav). Each raga is assigned a thaat. Time of day matters: morning, evening, night ragas. Set
system: "hindustani",thaat: <name>,melakarta: null. - Carnatic (South Indian) uses the melakarta system: 72 parent scales numbered 1–72. Janya ragas (derived) inherit the parent melakarta number. Time-of-day is less rigid. Set
system: "carnatic",melakarta: <1..72>,thaat: null.
See /thaats.json for the 10 thaats and /melakartas.json for the 72 melakartas.
Sargam notation
Arohana and avarohana use the 7-svara sargam: S R G M P D N (Sa Re Ga Ma Pa Dha Ni). Komal (flat) notes are marked with a trailing lowercase letter or symbol; tivra (sharp) Ma is sometimes M' or Ṃ. Higher-octave notes are marked with ' or a dot above (rendered as Ṡ). Spacing is preserved as in the source.
Errors
The only possible error is 404 — unknown slug. There is no authentication, no rate limit, and no quota, so 401/403/429 cannot occur. CORS is wide open on both origins.
License
- Code (
scripts/, build tooling): MIT - Data (
ragas/,*.json): CC BY-SA 4.0 (Wikipedia) and MIT (OpenRaga seed schema)
Attribution: "Source: Wikipedia List of Hindustani / Carnatic ragas; OpenRaga/ragajson."