AstroWay/api v2.102.11 · hi
सभी सिस्टम सामान्य हैं

ज्योतिष ऐप बनाने के लिए गाइड: विकासकर्ता के लिए पूरा मार्गदर्शक

ज्योतिष ऐप बनाने के लिए चरण-दर-चरण मार्गदर्शक - एपीआई का चयन, वास्तुकला, पहला जन्म चार्ट, सिनास्ट्री और ट्रांजिट जोड़ना, डिप्लॉयमेंट।

🕓 पोस्ट 2026-04-14, अंतिम अपडेट 2026-05-09. TS / Python / PHP SDK अब सार्वजनिक रजिस्ट्री में हैं — @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist)। विवरण changelog में देखें।

क्या तू एक एस्ट्रोलॉजी ऐप बनाना चाहता है? शुरुआत कहाँ से करें? इस गाइड में तू समाधान और कोड दोनों पाएगा: API चुनने से लेकर अपने प्रोडक्ट को डिप्लॉय करने तक।

आर्किटेक्चर संबंधी सवाल

Section titled “आर्किटेक्चर संबंधी सवाल”

कोड लिखने से पहले तय कर: क्या कैलकुलेशन क्लाइंट-साइड होगा या सर्वर-साइड?

क्लाइंट-साइड (उदाहरण: ब्राउज़र में Swiss Ephemeris WASM):

  • फ़ायदे: प्रति अनुरोध लागत नहीं, ऑफलाइन काम करता है, पूरा नियंत्रण
  • नुकसान: हर यूज़र के लिए ~2 MB WASM, लाइसेंसिंग जटिल (Swiss Ephemeris का व्यावसायिक इस्तेमाल प्रतिबंधित है), तू खुद कैलकुलेशन कोड का रखरखाव करेगा

सर्वर-साइड API (AstroWay, Prokerala आदि):

  • फ़ायदे: क्लाइंट-साइड निर्भरताएँ नहीं, ऐप का छोटा बंडल, मोबाइल पर तेज़, लाइसेंस संबंधी परेशानियाँ नहीं
  • नुकसान: प्रति अनुरोध क्रेडिट में लागत, “कोल्ड” अनुरोधों में देरी

ज़्यादातर ऐप्स के लिए सर्वर-साइड API बेहतर विकल्प है। मोबाइल यूज़र्स 2 MB WASM के लिए इंतज़ार नहीं करेंगे; लाइसेंस संबंधी झंझटों से बचना चाहिए; और आधुनिक API मुफ़्त में समान अनुरोधों को कैश करते हैं (AstroWay 5-मिनट का कैश X-Cache: HIT हेडर के साथ प्रदान करता है)।

क्या महत्वपूर्ण है:

  • सटीकता — ऐसी API ढूंढ जो Swiss Ephemeris का इस्तेमाल करती हो (±1 आर्क सेकंड)। अगर API सीधे इसकी जानकारी नहीं देती, तो पूछताछ कर।
  • कवरेज — जन्म कुंडली + सिनास्ट्री + ट्रांज़िट न्यूनतम होना चाहिए। प्रोग्रेशन और रिटर्न अगला स्तर है। दुर्लभ तकनीकें (रेक्टिफिकेशन, ह्यूमन डिज़ाइन) एक अलग पहचान होती हैं।
  • SDK की गुणवत्ता — टाइप किए गए TypeScript और Python SDK समय बचाते हैं।
  • टैरिफ मॉडल — प्रति अनुरोध की बजाय क्रेडिट-बेस्ड मॉडल मिश्रित लोड पर बेहतर स्केल करता है।

इस ट्यूटोरियल के लिए हम AstroWay API का इस्तेमाल करेंगे क्योंकि इसमें चारों विशेषताएँ हैं (723 एंडपॉइंट, Swiss Ephemeris, टाइप किए गए SDK, क्रेडिट-बेस्ड)।

चरण 1: बैकएंड सेटअप करें

Section titled “चरण 1: बैकएंड सेटअप करें”

कभी भी एस्ट्रोलॉजी API को सीधे ब्राउज़र से कॉल मत कर — तेरा API की लीक हो जाएगी। हमेशा अपने बैकएंड के माध्यम से कॉल करें।

Terminal window
mkdir my-astrology-app
cd my-astrology-app
npm init -y
npm install express @astroway/sdk zod
npm install -D typescript @types/express @types/node tsx

src/server.ts बनाएं:

import express from 'express';
import { Astroway } from '@astroway/sdk';
import { z } from 'zod';
const app = express();
app.use(express.json());
const client = new Astroway({
apiKey: process.env.ASTROWAY_API_KEY!,
});
const BirthInput = z.object({
date: z.string(),
time: z.string(),
timezoneOffset: z.number(),
latitude: z.number(),
longitude: z.number(),
});
app.post('/api/chart', async (req, res) => {
const parsed = BirthInput.safeParse(req.body);
if (!parsed.success) return res.status(400).json({ error: parsed.error });
try {
const chart = await client.chart({
...parsed.data,
houseSystem: 'P',
});
res.json(chart);
} catch (err) {
res.status(500).json({ error: String(err) });
}
});
app.listen(3000, () => console.log('http://localhost:3000'));

चलाएं:

Terminal window
ASTROWAY_API_KEY=aw_test_... npx tsx src/server.ts

curl से जांचें:

Terminal window
curl -X POST http://localhost:3000/api/chart \
-H "Content-Type: application/json" \
-d '{"date":"1990-07-14","time":"14:30:00","timezoneOffset":3,"latitude":50.4501,"longitude":30.5234}'

तुम्हें पूरी JSON जन्म कुंडली मिल जाएगी।

कोई भी फ्रेमवर्क काम करेगा। उदाहरण के लिए, साधारण फॉर्म के साथ React:

import { useState } from 'react';
type Chart = {
planets: { name: string; longitude: number; sign: string; house: number }[];
aspects: { planet1: string; planet2: string; type: string; orb: number }[];
};
export function NatalForm() {
const [chart, setChart] = useState<Chart | null>(null);
async function handleSubmit(formData: FormData) {
const body = Object.fromEntries(formData.entries());
const res = await fetch('/api/chart', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
date: body.date,
time: body.time + ':00',
timezoneOffset: Number(body.tz),
latitude: Number(body.lat),
longitude: Number(body.lng),
}),
});
setChart(await res.json());
}
return (
<div>
<form action={handleSubmit}>
<input name="date" type="date" required />
<input name="time" type="time" required />
<input name="tz" type="number" placeholder="टाइमज़ोन ऑफसेट (उदाहरण: 3)" required />
<input name="lat" type="number" step="0.0001" placeholder="अक्षांश" required />
<input name="lng" type="number" step="0.0001" placeholder="देशांतर" required />
<button>कुंडली बनाएं</button>
</form>
{chart && (
<div>
<h2>ग्रह</h2>
<ul>
{chart.planets.map(p => (
<li key={p.name}>{p.name}: {p.sign} (गृह {p.house})</li>
))}
</ul>
<h2>एस्पेक्ट</h2>
<ul>
{chart.aspects.map((a, i) => (
<li key={i}>{a.planet1} {a.type} {a.planet2} (ऑर्ब {a.orb.toFixed(2)}°)</li>
))}
</ul>
</div>
)}
</div>
);
}

चरण 3: सिनास्ट्री

Section titled “चरण 3: सिनास्ट्री”

संगतता अगली स्पष्ट सुविधा है। src/server.ts में जोड़ें:

const SynastryInput = z.object({
chart1: BirthInput,
chart2: BirthInput,
});
app.post('/api/synastry', async (req, res) => {
const parsed = SynastryInput.safeParse(req.body);
if (!parsed.success) return res.status(400).json({ error: parsed.error });
const result = await client.synastry(parsed.data);
res.json({
score: result.compatibility.score,
label: result.compatibility.label,
aspects: result.crossAspects,
});
});

बस हो गया। एक एंडपॉइंट, प्रति कॉल 50 क्रेडिट, 0–100 तक का स्कोर और क्रॉस-एस्पेक्ट लौटाता है।

चरण 4: दैनिक राशिफल

Section titled “चरण 4: दैनिक राशिफल”

कंटेंट एंगेजमेंट के लिए दैनिक राशिफल ज़रूरी है। AstroWay वास्तविक ट्रांज़िट डेटा से उन्हें जनरेट करता है:

app.post('/api/horoscope/daily', async (req, res) => {
const parsed = BirthInput.safeParse(req.body);
if (!parsed.success) return res.status(400).json({ error: parsed.error });
const horoscope = await client.horoscopeDaily(parsed.data);
res.json({
text: horoscope.text,
disclaimer: horoscope.disclaimer, // UI में ज़रूर दिखाएं!
});
});

महत्वपूर्ण: AI-जेनरेटेड कंटेंट में एक disclaimer होता है जिसे तू यूज़र्स को दिखाने के लिए बाध्य है (टर्म्स ऑफ सर्विस के अनुसार)। इसे हटाना मत।

दैनिक राशिफल एक ही जन्म तिथि और समान जन्म कुंडली वाले सभी यूज़र्स के लिए समान होते हैं। आक्रामक तरीके से कैश करें:

import { LRUCache } from 'lru-cache';
const cache = new LRUCache<string, any>({ max: 1000, ttl: 86400 * 1000 });
app.post('/api/horoscope/daily', async (req, res) => {
const key = JSON.stringify(req.body);
const cached = cache.get(key);
if (cached) return res.json(cached);
const horoscope = await client.horoscopeDaily(req.body);
cache.set(key, horoscope);
res.json(horoscope);
});

AstroWay में भी अंतर्निहित 5-मिनट का सर्वर-साइड कैशिंग (X-Cache: HIT) है, लेकिन लंबे समय तक रहने वाले कंटेंट के लिए खुद का कैश ज़रूरी है।

चरण 6: डिप्लॉयमेंट

Section titled “चरण 6: डिप्लॉयमेंट”

कोई भी प्लेटफ़ॉर्म काम करेगा। जल्दी शुरुआत के लिए Vercel या Railway:

Terminal window
# vercel.json
{ "functions": { "src/server.ts": { "runtime": "@vercel/node" } } }

प्लेटफ़ॉर्म के डैशबोर्ड में ASTROWAY_API_KEY env वेरिएबल सेट करें।

बजट की योजना बनाएं

Section titled “बजट की योजना बनाएं”

अगर तू यहाँ तक पहुँच गया है, तो लॉन्च से पहले मासिक क्रेडिट खपत का अनुमान लगा ले:

क्रेडिट/माह = DAU × (औसत_कुंडलियाँ_प्रति_यूज़र × 20
+ औसत_सिनास्ट्री × 50
+ औसत_राशिफल × 20) × 30

100 DAU के लिए, प्रति यूज़र प्रति दिन 1 कुंडली + 1 राशिफल + 0.3 सिनास्ट्री के साथ:

100 × (20 + 20 + 0.3 × 50) × 30 = 165,000 क्रेडिट / माह

यह Starter प्लान है जो $19/माह (200K क्रेडिट) का है।

उन्नत सुविधाएँ जिन्हें तू बढ़ने के साथ जोड़ सकता है:

  • ट्रांज़िट ओवरले/v1/transits वर्तमान ग्रह स्थितियाँ जन्म कुंडली पर दिखाता है
  • प्रोग्रेशन/v1/progressions मनोवैज्ञानिक विकास के चाप के लिए
  • सोलर रिटर्न/v1/solar-return “जन्मदिन से एक साल का पूर्वानुमान”
  • ह्यूमन डिज़ाइनHuman Design API एक नया फ़ंक्शनल डोमेन खोलता है
  • एस्ट्रोकार्टोग्राफी/v1/acg दिखाता है कि यूज़र को कहाँ रहना चाहिए

हर सुविधा शून्य से शुरू करने में मुश्किल है, लेकिन AstroWay के साथ यह सिर्फ एक API कॉल है।

AstroWay team

AstroWay API की इंजीनियरिंग टीम। हम Swiss Ephemeris को साफ REST में लपेटते हैं और उन 'न boring' विवरणों के बारे में लिखते हैं जो असल में मायने रखते हैं।

// इस पर बनाएं

वही Swiss Ephemeris जो Solar Fire में है — बस 4 लाइनों के कोड में।

कार्ड के बिना मुफ्त कुंजी। पहले भुगतान तक 5,000 कॉल प्रति माह।

ब्लॉग से और सभी पोस्ट →

Engineering 2026-06-05

Natal Chart API in TypeScript: SDK + React Example

Compute a natal chart in TypeScript with the AstroWay SDK — typed responses, a React component, and where it beats a local ephemeris library.

Ephemeris 2026-06-05

How Accurate Is the Swiss Ephemeris? Verified Benchmarks

Swiss Ephemeris accuracy in numbers — planetary positions under 0.1 arcsecond, exact house cusps, eclipses within a minute — and how AstroWay verifies it.

Ephemeris 2026-06-05

Swiss Ephemeris: REST API vs pyswisseph (When to Use Which)

pyswisseph vs a REST API for Swiss Ephemeris calculations — C dependencies, data files, licensing and deployment compared, with a decision guide.