SDKs
Python SDK
Install and use the vibzart Python SDK.
Installation
pip install vibzartRequires Python 3.10+.
Quick start
from vibzart import Vibzart
client = Vibzart(api_key="vz_live_...")
# Panchang
result = client.lilavati.panchang(lat=28.61, lng=77.20)
print(result.data.tithi.name) # e.g. "Ashtami"
print(result.data.nakshatra.name) # e.g. "Rohini"
# Festivals
festivals = client.lilavati.festivals(lat=28.61, lng=77.20, year=2026)
for f in festivals.data:
print(f"{f.name}: {f.date}")
# Namakarna (Vedic naming)
naming = client.lilavati.namakarna(
date="2024-01-15", time="14:30", lat=28.61, lng=77.20,
)
print(naming.data.syllable_latin) # e.g. "Vi"
print(naming.data.syllable_devanagari) # e.g. "वि"
# Shraddha (bereavement timeline)
shraddha = client.lilavati.shraddha(date="2024-01-15", lat=28.61, lng=77.20)
print(shraddha.data.terahvin) # Day 13 ceremony dateAsync support
All methods have async counterparts prefixed with a:
import asyncio
from vibzart import Vibzart
async def main():
async with Vibzart(api_key="vz_live_...") as client:
result = await client.lilavati.apanchang(lat=28.61, lng=77.20)
festivals = await client.lilavati.afestivals(lat=28.61, lng=77.20)
naming = await client.lilavati.anamakarna(
date="2024-01-15", lat=28.61, lng=77.20,
)
asyncio.run(main())Configuration
client = Vibzart(
api_key="vz_live_...",
base_url="https://api.vibz.art", # default
timeout=30.0, # seconds, default
max_retries=2, # default
default_headers={"X-Custom": "value"},
)Type safety
All response objects are Pydantic v2 models with full type hints:
from vibzart import PanchangData, TithiInfo, NakshatraInfo
result = client.lilavati.panchang(lat=28.61, lng=77.20)
panchang: PanchangData = result.data
tithi: TithiInfo = panchang.tithi
nakshatra: NakshatraInfo = panchang.nakshatraError handling
from vibzart import AuthenticationError, RateLimitError, APIError
try:
result = client.lilavati.panchang(lat=28.61, lng=77.20)
except AuthenticationError:
print("Check your API key")
except RateLimitError as e:
print(f"Rate limited. Retry after {e.retry_after}s")
except APIError as e:
print(f"[{e.status}] {e.code}: {e.detail}")See Error Handling for the full exception hierarchy.