SDKs
TypeScript SDK
Install and use the @vibzart/sdk TypeScript SDK.
Installation
npm install @vibzart/sdkRequires Node.js 18+. Zero runtime dependencies (uses native fetch).
Quick start
import { Vibzart } from "@vibzart/sdk";
const client = new Vibzart({ apiKey: "vz_live_..." });
// Panchang
const { data } = await client.lilavati.panchang({ lat: 28.61, lng: 77.20 });
console.log(data.tithi.name); // e.g. "Ashtami"
console.log(data.nakshatra.name); // e.g. "Rohini"
// Festivals
const festivals = await client.lilavati.festivals({ lat: 28.61, lng: 77.20, year: 2026 });
festivals.data.forEach(f => console.log(`${f.name}: ${f.date}`));
// Namakarna (Vedic naming)
const naming = await client.lilavati.namakarna({
date: "2024-01-15", time: "14:30", lat: 28.61, lng: 77.20,
});
console.log(naming.data.syllable_latin); // e.g. "Vi"
// Shraddha (bereavement timeline)
const shraddha = await client.lilavati.shraddha({
date: "2024-01-15", lat: 28.61, lng: 77.20,
});
console.log(shraddha.data.terahvin); // Day 13 ceremony dateConfiguration
const client = new Vibzart({
apiKey: "vz_live_...",
baseUrl: "https://api.vibz.art", // default
timeout: 30_000, // ms, default
maxRetries: 2, // default
defaultHeaders: { "X-Custom": "value" },
});Type safety
All responses are fully typed via TypeScript interfaces generated from the OpenAPI spec:
import type { PanchangData, TithiInfo, NakshatraInfo } from "@vibzart/sdk";
const result = await client.lilavati.panchang({ lat: 28.61, lng: 77.20 });
const panchang: PanchangData = result.data;
const tithi: TithiInfo = panchang.tithi;
const nakshatra: NakshatraInfo = panchang.nakshatra;Response metadata
Every response includes rate limit info and cache status:
const result = await client.lilavati.panchang({ lat: 28.61, lng: 77.20 });
result.data; // Typed response (PanchangData)
result.cached; // boolean — true if served from cache
result.requestId; // string — unique request ID for debugging
result.rateLimit; // { limit, remaining, reset }Error handling
import { AuthenticationError, RateLimitError, APIError } from "@vibzart/sdk";
try {
const result = await client.lilavati.panchang({ lat: 28.61, lng: 77.20 });
} catch (e) {
if (e instanceof AuthenticationError) {
console.error("Check your API key");
} else if (e instanceof RateLimitError) {
console.error(`Rate limited. Retry after ${e.retryAfter}s`);
} else if (e instanceof APIError) {
console.error(`[${e.status}] ${e.code}: ${e.detail}`);
}
}See Error Handling for the full exception hierarchy.
Dual-format build
The package ships ESM, CommonJS, and TypeScript declarations:
{
"import": "./dist/index.js",
"require": "./dist/index.cjs",
"types": "./dist/index.d.ts"
}Works in any Node.js project regardless of module system.