AstroWay/api v2.180.1 · ar
جميع الأنظمة تعمل بشكل طبيعي

بدء سريع مع API الفلك: TypeScript و Python في 5 دقائق

تثبيت SDK، الحصول على مفتاح API، إجراء طلب الخارطة Natal الأولى. 5 دقائق - و JSON يعمل في يديك (TypeScript و Python).

🕓 تاريخ الإدخال 2026-04-14، تحديث 2026-05-09. أصبحت حزم SDK لـ TS / Python / PHP متاحة الآن على السجلات العامة - @astroway/sdk (npm)، astroway (PyPI)، astroway/sdk (Packagist). التفاصيل في سجل التغييرات.

إذا كنت ترغب في حساب خريطة فلكية من الكود، فإليك أقصر طريق - في 5 دقائق من الصفر إلى JSON جاهز للعمل.

الخطوة 1: احصل على مفتاح API (30 ثانية)

Section titled “الخطوة 1: احصل على مفتاح API (30 ثانية)”

سجل الآن على api.astroway.info/dashboard/sign-up. الخطة المجانية: 10,000 رصيد / شهر. لا تتطلب بطاقة ائتمان.

في لوحة التحكم اضغط على «إنشاء مفتاح» (Create key) ← «الإنتاج» (Production) ← ثم انسخ. المفاتيح تبدو كالتالي aw_live_aB3xY7pQ9rN2mK4jH8vC5tL6wZ1fD0eR.

تلميح: توجد أيضًا مفاتيح sandbox ذات البادئة aw_test_ - لا تستهلك أرصدة. استخدمها أثناء التطوير.

Terminal window
npm install @astroway/sdk
Terminal window
pip install astroway

يغطي كلا SDK جميع 758 نقاط النهاية (endpoints) مع طلبات واستجابات مُحددة النوع (typed requests and responses).

الخطوة 3: أول خريطة فلكية

Section titled “الخطوة 3: أول خريطة فلكية”
import { Astroway } from '@astroway/sdk';
const aw = new Astroway({
apiKey: process.env.ASTROWAY_API_KEY!,
});
const chart = await aw.chart.compute({
date: '1990-07-14',
time: '14:30:00',
timezoneOffset: 3, // UTC+3, літо в Києві
latitude: 50.4501,
longitude: 30.5234,
houseSystem: 'P', // Placidus
});
const SIGNS = ['Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo',
'Libra', 'Scorpio', 'Sagittarius', 'Capricorn', 'Aquarius', 'Pisces'];
const sun = chart.planets.find((p) => p.name === 'Sun')!;
console.log(`Sun: ${SIGNS[Math.floor(sun.longitude / 30)]} at ${sun.longitude.toFixed(2)}°`);
console.log(`ASC: ${chart.houses.ascendant.toFixed(2)}°`);
console.log(`Aspects: ${chart.aspects.length}`);

شغّل:

Terminal window
ASTROWAY_API_KEY=aw_live_... npx tsx chart.ts

يستخدم الملف top-level await، لذلك يجب أن يكون في package.json "type": "module". وإلا سيتعطل tsx مع رسالة Top-level await is currently not supported with the "cjs" output format.

from astroway import Astroway, BirthData
aw = Astroway(api_key="aw_live_your_key_here")
chart = aw.chart.compute(BirthData(
date="1990-07-14",
time="14:30:00",
timezone_offset=3,
latitude=50.4501,
longitude=30.5234,
house_system="P",
))
SIGNS = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo",
"Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"]
sun = next(p for p in chart["planets"] if p["name"] == "Sun")
print(f"Sun: {SIGNS[int(sun['longitude'] // 30)]} at {sun['longitude']:.2f}°")
print(f"ASC: {chart['houses']['ascendant']:.2f}°")
print(f"Aspects: {len(chart['aspects'])}")

شغّل:

Terminal window
ASTROWAY_API_KEY=aw_live_... python3 chart.py

يتم إرجاع كائن JSON بأربعة أجزاء رئيسية:

مصفوفة من 13 كائنًا. يحتوي name على اسم الجسم الفلكي من Swiss Ephemeris: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, true Node (العقدة الشمالية), mean Apogee (ليليث), Chiron.

{
"id": 0,
"name": "Sun",
"longitude": 354.702, // еклiптична довгота у градусах
"latitude": -0.00016,
"distance": 0.9945, // в астрономічних одиницях
"speedLong": 0.9971, // градусів на день (від'ємне = ретроград)
"speedLat": 0.00003,
"speedDist": 0.00019,
"isRetrograde": false,
"declination": -1.4159,
"rightAscension": 355.437
}

لا يتم إرجاع البرج والبيت هنا: احسب البرج كـ Math.floor(longitude / 30)، والبيت بناءً على الكاسبات (cusps) من houses.

كاسبات البيوت (12 كاسبًا)، بالإضافة إلى asc و MC:

{
"system": "P",
"cusps": [118.18, 138.27, ...], // 12 значень
"ascendant": 118.18,
"mc": 12.708,
"armc": 11.69,
"vertex": 253.97,
"equatorialAsc": 100.75,
"coAscWK": 81.13,
"coAscMunkasey": 123.7,
"polarAsc": 261.13
}

مصفوفة من الجوانب (aspects) بين الكواكب:

{
"planet1": "Sun",
"planet2": "Mercury",
"planet1Id": 0,
"planet2Id": 2,
"type": { // об'єкт, не рядок
"name": "Conjunction",
"i18nKey": "aspect_conjunction",
"angle": 0,
"orb": 12,
"symbol": "",
"isMajor": true,
"color": "#660480"
},
"exactAngle": 3.365,
"orb": 3.365, // відхилення від точного у градусах
"isApplying": true
}

"diurnal" (الشمس فوق الأفق لحظة الولادة) أو "nocturnal" (تحت الأفق). يستخدم في علم التنجيم الكلاسيكي.

ماذا يمكنك أن تجرب أيضًا:

التوافق الفلكي (Synastry): توافق شخصين:

const synastry = await client.synastry({
chart1: { date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.45, longitude: 30.52 },
chart2: { date: '1992-03-22', time: '09:15:00', timezoneOffset: 2, latitude: 48.85, longitude: 2.35 },
});
console.log(`Compatibility score: ${synastry.compatibility.score}/100`);

العبور الفلكي الحالي على الخريطة الفلكية:

const transits = await client.transits({
// дані народження
date: '1990-07-14', time: '14:30:00', timezoneOffset: 3,
latitude: 50.4501, longitude: 30.5234,
// дата транзиту
transitDate: '2026-04-14',
});

برجك اليومي من العبور الفلكي الحقيقي:

const horoscope = await client.horoscopeDaily({
date: '1990-07-14', time: '14:30:00', timezoneOffset: 3,
latitude: 50.4501, longitude: 30.5234,
});
console.log(horoscope.text);

خريطة التصميم البشري الكاملة (Human Design):

const hd = await client.humanDesign({
date: '1990-07-14', time: '14:30:00', timezoneOffset: 3,
latitude: 50.4501, longitude: 30.5234,
});
console.log(`${hd.type} - ${hd.strategy} - Profile ${hd.profile}`);
  • الخريطة الفلكية (/chart): 20 رصيدًا
  • التوافق الفلكي: 50 رصيدًا
  • العبور الفلكي: 50 رصيدًا
  • البرج اليومي: 20 رصيدًا
  • التصميم البشري: 50 رصيدًا

الخطة المجانية: 10,000 رصيد / شهر = 500 خريطة فلكية، أو 200 توافق فلكي، أو حمولة مختلطة.

تحتوي كل استجابة على رؤوس (headers) تتضمن معلومات الأرصدة:

X-Credits-Used: 20
X-Credits-Remaining: 4980
X-Credits-Reset: 2026-05-01T00:00:00Z

عندما تنفد الأرصدة - ستتلقى 402 Payment Required. عندما تصل إلى حد المعدل (rate-limit) (المجاني: 10 طلبات / دقيقة) - 429 Too Many Requests مع الرأس Retry-After.

يرمي SDK أخطاءً مُحددة النوع (typed errors) يمكنك التقاطها:

import { QuotaExceededError, RateLimitError } from '@astroway/sdk';
try {
const chart = await aw.chart.compute(birth);
} catch (err) {
if (err instanceof QuotaExceededError) {
console.log('Upgrade plan or wait for reset');
} else if (err instanceof RateLimitError) {
console.log(`Retry in ${err.retryAfterSeconds ?? 60} seconds`);
} else {
throw err;
}
}

يجب التقاط الأخطاء من الأكثر تحديدًا إلى الأقل تحديدًا: جميعها ترث ApiError، لذا فإن التحقق منه أولاً سيلتقط البقية.

الآن لديك:

  • مفتاح API جاهز للعمل
  • SDK مثبت
  • أول خريطة فلكية
  • أمثلة كافية لإضافة التوافق الفلكي، العبور الفلكي، والأبراج

اقرأ المزيد:

MakSeong · AstroWay

أبني AstroWay API: أُغلف Swiss Ephemeris في REST نقي وأكتب عن التفاصيل المملة التي هي فعلاً مهمة.

// ابنِ عليه

نفس Swiss Ephemeris الموجود في Solar Fire - في 4 أسطر من الكود.

مفتاح مجاني بدون بطاقة. 5000 استدعاء شهرياً حتى الدفعة الأولى.

المزيد من المدونة جميع المقالات →

Ephemeris 2026-07-19

كيف نتحكم في الدقة: CI ضد swetest و NASA

الدقة في astro-API تتدهور بسهولة بسبب تعديل واحد في الإيفيميريدات. نستعرض الحماية: نواة واحدة من Swiss Ephemeris للمتصفح والخادم، مئات اللقطات المجمدة على خرائط مرجعية وتثليث كل PR ضد swetest CGI و Kerykeion و Prokerala ودليل خسوفات NASA.

Engineering 2026-07-15

ثلاثة SDK رسمية: TypeScript, Python, PHP بدلاً من curl الخام

HTTP الخام يعمل، لكن العميل المطبّق يوفّر ساعات: إكمال تلقائي للمسارات، أنواع الطلب والاستجابة، إعادة محاولة مدمجة على 408/409/429/5xx، وتسلسل أخطاء بنمط Stainless. نستعرض ثلاثة SDK رسمية - @astroway/sdk (npm)، astroway (PyPI)، astroway/sdk (Packagist) - وكيف تم توليدها من عقد OpenAPI واحد.

Industry 2026-06-05

Free Astrology API: Which One Has the Best Free Tier in 2026?

A side-by-side of free tiers across the major astrology APIs - credits, request caps, card requirements - and how much you can actually build for free.