ZeejApi

v1.0.0 · اختصاصی zeejastro.ir

موتور کامل زایچهٔ ودیک (Drik / لاهیری): ۳۳ بخش پاسخ — از پنچانگ و بهاوه‌چارت تا ۲۸ سیستم دشای راشی، ۲۸ سیستم دشای گرهه، آشتاکاوارگا، شادبالا، ترانزیت زحل و پیش‌بینی طول عمر. این صفحه هم مستندات است و هم محیط اجرای زندهٔ همین سرور.

در حال بررسی سرور… افمریس: Swiss Ephemeris 🔒 دسترسی: فقط zeejastro.ir

۱) شروع سریع

آدرس پایهٔ API همین دامنه‌ای است که این صفحه روی آن باز شده؛ اگر سرور جای دیگری است، آن را در کادر زیر بگذارید (در حافظهٔ مرورگر ذخیره می‌شود).

آدرس پایه (Base URL)

POST /horoscope → زایچهٔ کامل (JSON)

لینکی که در اپ خودتان صدا می‌زنید

JavaScript (مرورگر / Next.js)

const res = await fetch(BASE + "/horoscope", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    date: "1992-02-11", time: "17:22:00", place: "Tehran",
    latitude: 35.6892, longitude: 51.389,
    timezone: 3.5, elevation: 0
  })
});
const data = (await res.json()).horoscope;
console.log(data.calendar_info.Lagna);

Python

import requests
r = requests.post(BASE + "/horoscope", json={
  "date": "1992-02-11", "time": "17:22:00", "place": "Tehran",
  "latitude": 35.6892, "longitude": 51.389,
  "timezone": 3.5, "elevation": 0
}, timeout=120)
h = r.json()["horoscope"]
print(h["amsa_rulers"]["Ascendant"])

cURL

curl -X POST BASE/horoscope \
  -H "Content-Type: application/json" \
  -d '{"date":"1992-02-11","time":"17:22:00",
       "place":"Tehran","latitude":35.6892,
       "longitude":51.389,"timezone":3.5,
       "elevation":0}'

۲) اجرای زنده

فرم زیر را پر کنید و «محاسبهٔ زایچه» را بزنید؛ درخواست واقعی به همین سرور ارسال می‌شود و پاسخ کامل (۳۳ بخش) نمایش داده می‌شود.

جست‌وجوی مکان: GET /location/autocomplete?q=tehran · پنچانگ روز: POST /panchang · تطبیق ازدواج: POST /marriage-match

۳) اندپوینت‌ها

همهٔ ورودی‌ها JSON و همهٔ خروجی‌ها JSON هستند (به‌جز مسیر مستندات).

متدمسیرکار
POST/horoscopeزایچهٔ کامل: ۳۳ بخش (پنچانگ، چارت‌ها، دشاها، بال‌ها، ترانزیت‌ها، طول عمر)
POST/panchangپنچانگ روز: تیتی، نَکشَترَه، یوگه، کَرَنَه، طلوع/غروب، راهوکالَه، اَمریت‌کالَم
POST/marriage-matchتطبیق ازدواج: اَشتاکوتَه (۳۶ گونا) و ۱۰ پوروتَم
POST/muhurtaیافتن زمان‌های مناسب برای یک رویداد در بازهٔ تاریخ
GET/muhurta/eventsفهرست انواع رویدادهای پشتیبانی‌شدهٔ مُهورتَه
POST/gocharوضعیت گذر (گوچَر) سیارات نسبت به زایچه
POST/gochar/eventsرویدادهای گذر سیارات در یک بازهٔ تاریخ
POST/gocharaگُوچَرهٔ کامل: موقعیت‌ها و خانه‌ها نسبت به ماه/لگنه
POST/gochara/rangeگُوچَره در بازهٔ تاریخ (گذرهای مهم)
POST/planet-ingressتغییر برج سیارات در بازهٔ تاریخ
POST/saturn-timelineخط زمانی زحل: سادِساتی و ترانزیت‌های درجه‌محور
POST/surya-siddhantaمقایسهٔ موقعیت‌ها بر پایهٔ سوریَه‌سیدهانتَه
GET/location/search?q=جست‌وجوی شهر: عرض/طول/اختلاف زمانی (پایگاه ۱۶۲هزار شهر)
GET/location/autocomplete?q=پیشنهاد خودکار مکان برای فیلد جست‌وجو
GET/healthبررسی سلامت سرویس
GET/docsمستندات تعاملی Swagger (تولیدشدهٔ FastAPI)
🔒 قفل دامنه: این API فقط برای دامنهٔ zeejastro.ir (و www) باز است. هر درخواست از دامنه/مبدأ دیگر — حتی با دانستن آدرس — با خطای 403 رد می‌شود. فراخوانی سروربه‌سرور (بدون Origin) نیازمند هدر X-Api-Key است.

۴) پارامترهای ورودی /horoscope

فیلدنوعتوضیحنمونه
datestringتاریخ تولد میلادی"1992-02-11"
timestringساعت تولد ۲۴ساعته (زمان محلی)"17:22:00"
placestringنام مکان (برای نمایش در گزارش)"Tehran"
latitudenumberعرض جغرافیایی درجه (شمال مثبت)35.6892
longitudenumberطول جغرافیایی درجه (شرق مثبت)51.389
timezonenumberاختلاف زمانی با UTC به ساعت3.5
elevationnumberارتفاع از سطح دریا (متر) — اختیاری0
ayanamsa_modestringحالت آیانَمسه — پیش‌فرض LAHIRI"LAHIRI"

پاسخ: { "horoscope": { … ۳۳ بخش … } }

۵) بخش‌های پاسخ

کلیدهای زیر داخل horoscope برمی‌گردند.

calendar_infoمکان، تاریخ، روز هفته، طلوع/غروب، تیتی، نَکشَترَه، آیانَمسه، لگنه
bhava_chartچارت ۱۲ بهاوه با مختصات هر سیاره
divisional_charts۲۳ ورگا: D1، D2، D3، D9، D60 و…
nakshatra_padaنَکشَترَه و پادای هر جسم + درجهٔ باقی‌مانده
amsa_rulersحاکم نادی‌آمسه (D‑150) برای ۵۹ نقطه
yogasیوگه‌های زایچه و راجَه‌یوگه‌ها
doshasدوشه‌ها (مانگلیک، کالَه‌سَرپَه، …)
chara_karakasچارَه‌کارَکَه‌های جیمینی (۸ کارَکه)
sahamsسَهَم‌ها (نقاط حساس عربی–ودیک)
upagrahasاوپاگرَه‌های زمانی و خورشیدی (گولیکه، ماندی، …)
special_lagnasلگنه‌های خاص: هورا، گهَتی، ویگهَتی، پرانَه‌پاده، سریه، بی‌ریگو‌بیندو
house_varnadasورنده‌لگنهٔ ۱۲ خانه (V1…V12)
graha_arudhasآرودهَهای گرهه‌محور
surya_arudhas / chandra_arudhasآرودهَهای ۱۲ خانه از خورشید و ماه
house_relationshipsاَرگَلَه و ویرودهاَرگَلَهٔ خانه‌ها
planetary_statesحالت‌های سیاره: بالَدی، دیدبَلَه، شَیَنَه‌دیش، …
shad_bala / shad_bala_requiredشش‌گانهٔ قدرت سیاره و حد لازم هر یک
bhava_balaقدرت ۱۲ بهاوه
other_balaقدرت‌های دیگر (ایسْهْتَه‌بالَه و …)
vimsopaka_bala / vaiseshikamsa_balaقدرت وی‌مشوپَکه و ویشِشیکامسه بر پایهٔ ورگَه‌ها
shashtiamsa_rulersحاکم شَشتی‌آمسه (D‑60) و طبیعت خیر/شر هر یک
ashtakavargaآشتاکاوارگای ۸ منبعی + بَهْوَه‌بِندو
arudha_padhasآروده‌پاده در ۲۳ ورگا
sphutaسپهوتاها: تری، چَتر، پَنچَه، پرانَه، دهَه، مریتیو، بیدجَه، کْشِترَه…
graha_dashas۲۸ سیستم دشای گرهه‌محور (وی‌مشوتَری، اَشتوتَری، …)
rasi_dashas۲۸ سیستم دشای راشی‌محور (ستیرَه، نَوارْنسه، چَکرَه، …)
saturn_transitsسادِساتی (درجه‌محور و برج‌محور) و ترانزیت ماه/لگنه
longevity_predictionپیش‌بینی طول عمر (اَپایو / مَدهْیایو / پورنایو)

۶) نصب و استقرار

اجرای محلی / سرور

pip install -r requirements.txt
python server.py --host 0.0.0.0 --port 8080
# یا
uvicorn server:app --host 0.0.0.0 --port 8080 --workers 2

سپس: http://SERVER:8080/ همین صفحه، و /docs مستندات Swagger.

پشت دامنه (نمونهٔ Nginx)

location /api/ {
    proxy_pass http://127.0.0.1:8080/;
    proxy_set_header Host $host;
    proxy_read_timeout 300s;
}

در این حالت آدرس پایه برای اپ می‌شود https://YOURDOMAIN/api و لینک اجرای زایچه https://YOURDOMAIN/api/horoscope.

🔒 کنترل دسترسی (فقط zeejastro.ir)

متغیر محیطیکار
ZEEJAPI_ALLOWED_ORIGINSفهرست دامنه‌های مجاز با کاما. پیش‌فرض: https://zeejastro.ir,https://www.zeejastro.ir (+ نسخهٔ http)
ZEEJAPI_API_KEYکلید فراخوانی سروربه‌سرور (هدر X-Api-Key). اگر تنظیم نشود، خودکار ساخته و در فایل zeejapi.key ذخیره می‌شود و هنگام اجرا چاپ می‌گردد.
  • کاربرِ مرورگری سایت شما: درخواست با Origin https://zeejastro.ir می‌آید → مجاز ✔
  • هر سایت دیگر، حتی با دانستن آدرس API → 403 ✗
  • اسکریپت/ابزار بیرونی (بدون Origin) → فقط با هدر X-Api-Key ✗/✔
  • درخواست‌های محلی روی همان سرور (loopback) برای تست و پروکسی بک‌اند مجاز است.
  • توجه: هیچ API عمومی روی اینترنت صددرصد پنهان نمی‌شود؛ این قفل جلوی استفادهٔ سایت‌ها و اسکریپت‌های دیگر را می‌گیرد. برای بستن کامل، سرویس را پشت VPN/فایروال IP بگذارید.

نکات عملیاتی

  • هر درخواست /horoscope سنگین است (چند ثانیه)؛ در فرانت‌اند تایم‌اوت ≥ ۱۲۰ ثانیه و کش نتیجه (کلید: تاریخ+ساعت+مختصات).
  • پوشهٔ ephe/ باید کنار server.py بماند (فایل‌های افمریس).
  • cities.db فقط برای جست‌وجوی مکان لازم است؛ اگر مختصات را مستقیم می‌دهید می‌توانید حذفش کنید.
  • اختلاف زمانی تاریخی (DST) ایران/اروپا خودکار اعمال می‌شود؛ در صورت نیاز timezone صریح بدهید.