BS in, BS out
Send and receive Bikram Sambat dates on every endpoint. No separate converter, no months off by one.
Worked example
BS
2082-01-01
AD
2025-04-14
Baisakh 1, 2082 fell on Monday, 14 April 2025: Nepali New Year.
A full kundali in one call, daily panchang for any place and Bikram Sambat dates built in. Output in English, Nepali or Hindi, with published accuracy tests.
Sample chart
BS 2050-05-12, 14:35, Pokhara
Request for this chart
POST /v1/charts/svg
{
"chart": "D1",
"style": "north",
"lang": "en",
"numerals": "latin",
"birth": {
"calendar": "BS", "date": "2050-05-12", "time": "14:35:00",
"place": { "lat": 28.2096, "lng": 83.9856 }
}
}POST /v1/charts/svg
{
"chart": "D1",
"style": "north",
"lang": "ne",
"numerals": "devanagari",
"birth": {
"calendar": "BS", "date": "2050-05-12", "time": "14:35:00",
"place": { "lat": 28.2096, "lng": 83.9856 }
}
}POST /v1/charts/svg
{
"chart": "D1",
"style": "south",
"lang": "en",
"numerals": "latin",
"birth": {
"calendar": "BS", "date": "2050-05-12", "time": "14:35:00",
"place": { "lat": 28.2096, "lng": 83.9856 }
}
}POST /v1/charts/svg
{
"chart": "D1",
"style": "south",
"lang": "ne",
"numerals": "devanagari",
"birth": {
"calendar": "BS", "date": "2050-05-12", "time": "14:35:00",
"place": { "lat": 28.2096, "lng": 83.9856 }
}
}Built for Nepal and India
Nepal keeps its own calendar, its own tithi rulings and its own clock, and the API handles all three. For Indian panchangs, choose amanta or purnimanta months and the Lahiri, Raman or KP ayanamsha.
Send and receive Bikram Sambat dates on every endpoint. No separate converter, no months off by one.
Worked example
BS
2082-01-01
AD
2025-04-14
Baisakh 1, 2082 fell on Monday, 14 April 2025: Nepali New Year.
Where the tithi published by the Nepal Panchang Samiti differs from pure computation, we apply its ruling and flag it in the response.
"overrideApplied": true
Nepal ran on UTC+05:30 until 1986, then moved to +05:45. Births on either side get the right offset.
Until 1986
+05:30
From 1 January 1986
+05:45
Labels, numerals and naming syllables in Nepali or Hindi. Neither costs extra credits.
POST /v1/kundali returns D1 and D9, nakshatra and pada, the Vimshottari timeline and birth panchang. One request costs one credit.
curl https://api.navapatra.com/v1/kundali \
-H "Authorization: Bearer $NAVAPATRA_API_KEY" \
-H "Navapatra-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"birth": {
"calendar": "BS", "date": "2050-05-12", "time": "14:35:00",
"place": { "lat": 28.2096, "lng": 83.9856 }
},
"options": { "ayanamsha": "lahiri", "sensitivityMinutes": 10 },
"include": ["panchang"],
"lang": "ne"
}'const res = await fetch('https://api.navapatra.com/v1/kundali', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.NAVAPATRA_API_KEY}`,
'Navapatra-Version': '2026-11-01',
'Content-Type': 'application/json',
},
body: JSON.stringify({
birth: {
calendar: 'BS', date: '2050-05-12', time: '14:35:00',
place: { lat: 28.2096, lng: 83.9856 },
},
options: { ayanamsha: 'lahiri', sensitivityMinutes: 10 },
include: ['panchang'],
lang: 'ne',
}),
});
const kundali = await res.json();import os, requests
res = requests.post(
"https://api.navapatra.com/v1/kundali",
headers={
"Authorization": f"Bearer {os.environ['NAVAPATRA_API_KEY']}",
"Navapatra-Version": "2026-11-01",
},
json={
"birth": {
"calendar": "BS", "date": "2050-05-12", "time": "14:35:00",
"place": {"lat": 28.2096, "lng": 83.9856},
},
"options": {"ayanamsha": "lahiri", "sensitivityMinutes": 10},
"include": ["panchang"],
"lang": "ne",
},
)
kundali = res.json()<?php
$client = new GuzzleHttp\Client();
$res = $client->post('https://api.navapatra.com/v1/kundali', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('NAVAPATRA_API_KEY'),
'Navapatra-Version' => '2026-11-01',
],
'json' => [
'birth' => [
'calendar' => 'BS', 'date' => '2050-05-12', 'time' => '14:35:00',
'place' => ['lat' => 28.2096, 'lng' => 83.9856],
],
'options' => ['ayanamsha' => 'lahiri', 'sensitivityMinutes' => 10],
'include' => ['panchang'],
'lang' => 'ne',
],
]);
$kundali = json_decode($res->getBody(), true);{
"subject": {
"instantUtc": "1993-08-28T08:50:00Z",
"place": { "lat": 28.2096, "lng": 83.9856 },
"tzid": "Asia/Kathmandu",
"utcOffset": "+05:45",
"offsetSource": "tzdb",
"birth": { "ad": "1993-08-28", "bs": "2050-05-12" }
},
"lagna": {
"sign": { "index": 9, "name": "धनु" },
"longitude": 245.8854,
"nakshatra": { "index": 19, "name": "मूल" },
"pada": 2
},
"grahas": [
{
"id": "sun",
"name": "सूर्य",
"sign": { "index": 5, "name": "सिंह" },
"longitude": 131.2923,
"house": 9,
"retrograde": false,
"nakshatra": { "index": 10, "name": "मघा" },
"pada": 4
},
{
"id": "moon",
"name": "चन्द्र",
"sign": { "index": 9, "name": "धनु" },
"longitude": 269.0004,
"house": 1,
"retrograde": false,
"nakshatra": { "index": 21, "name": "उत्तराषाढा" },
"pada": 1
}
],
"moon": {
"rashi": { "index": 9, "name": "धनु" },
"nakshatra": { "index": 21, "name": "उत्तराषाढा" },
"pada": 1,
"syllable": { "index": 81, "en": "Bhe", "ne": "भे", "hi": "भे" }
},
"dashas": {
"vimshottari": {
"system": { "id": "vimshottari", "index": 1, "name": "विंशोत्तरी" },
"balanceAtBirth": { "lord": { "id": "sun", "index": 1, "name": "सूर्य" }, "years": 4.9498 }
}
},
"panchang": {
"tithi": {
"index": 12,
"name": "द्वादशी",
"start": "1993-08-27T21:04:12Z",
"end": "1993-08-28T21:54:23Z",
"paksha": { "id": "shukla", "index": 1, "name": "शुक्ल" }
}
},
"sensitivity": [
{
"field": "lagnaD9",
"from": { "index": 2, "name": "वृष" },
"to": { "index": 3, "name": "मिथुन" },
"changesAt": "1993-08-28T08:53:24Z"
}
],
"meta": {
"engineVersion": "0.1.0",
"apiVersion": "2026-11-01",
"ayanamsha": { "id": "lahiri", "degrees": 23.773159 },
"nodeType": "mean",
"tzdbVersion": "unknown",
"bsTableVersion": "2026.10.1",
"overridesVersion": null
}
}The engine is tested against Swiss Ephemeris on 5,433 births, including edge cases near sign and nakshatra boundaries. 500 of them are public as a test corpus, and every response says how it was computed.
How we test accuracy"meta": {
"engineVersion": "0.1.0",
"apiVersion": "2026-11-01",
"ayanamsha": { "id": "lahiri", "degrees": 23.773159 },
"nodeType": "mean",
"tzdbVersion": "unknown",
"bsTableVersion": "2026.10.1",
"overridesVersion": null
}Moon longitude
4.2″
Sun and planets
20.2″
Lagna
4.7″
Dasha boundaries
0.56 days
Sunrise and sunset
4.8 s
Birth-time sensitivity
Ask for ±10 minutes and the response lists any lagna, nakshatra or pada change inside that window.
Largest difference from Swiss Ephemeris in the latest test run, engine 0.1.0. Every value is inside its release hard limit.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| १14 | २15 | ३16 | ४17 | ५18 | ६19 | |
| ७20 | ८21 | ९22 | १०23 | ११24 | १२25 | १३26 |
| १४27 | १५28 | १६29 | १७30 | १८1 | १९2 | २०3 |
| २१4 | २२5 | २३6 | २४7 | २५8 | २६9 | २७10 |
| २८11 | २९12 | ३०13 | ३१14 |
Calendar API
BS and AD conversion with optional Nepal Sambat, month grids and daily panchang for any latitude and longitude.
Paid credit packs open soon, and you can reserve one by email now. Credits last 12 months, and every successful request costs one credit. Indian customers: email us for invoicing.
Invoices carry both AD and BS dates.
Guna milan, all three dashas, Nepali and Hindi output and SVG charts cost the same single credit.
Free
NPR 0
2,000 credits every month
Starter
NPR 2,000
50,000 credits
40 NPR per 1k calls
Growth
NPR 6,000
200,000 credits
30 NPR per 1k calls
Scale
NPR 18,000
1,000,000 credits
18 NPR per 1k calls
Volume
NPR 60,000
5,000,000 credits
12 NPR per 1k calls
Paid packs open soon. Email us to reserve one now. No VAT is added: the listed price is what you pay.
See pricingSDKs and MCP
A typed TypeScript SDK generated from the OpenAPI 3.1 spec, with Python, PHP and Dart examples in the docs. A remote MCP server gives AI agents the same tools, billed like REST calls.
MCP tools
No card needed. Sign up and get your test key in a minute.
We use privacy-friendly analytics to learn which pages help. Birth details and form contents are never sent. Privacy