Arabic Parts API
seven Hermetic parts including Part of Fortune and Spirit
Calculate the seven Hermetic lots (Arabic parts) for any birth moment: Part of Fortune, Part of Spirit, Eros, Necessity, Courage, Victory, and Nemesis. Each lot is a sensitive point projected by arc from the Ascendant, with the day or night formula applied automatically from the chart sect. Returns the zodiac sign, degree, exact longitude, the arc used, and a plain language interpretation per lot, for Hellenistic and traditional astrology apps. Built on accurate tropical chart positions, no astronomy expertise needed.
Location first, chart second
The Arabic Parts API needs latitude, longitude, and timezone. Never ask users to type coordinates. Resolve a city with the Location endpoint first, then feed the result into the request. Timezone accepts a decimal offset or an IANA name.
1 Resolve the location
curl "https://roxyapi.com/api/v2/location/search?q=New York" \
-H "X-API-Key: YOUR_KEY"
# -> cities[0]: { latitude, longitude, timezone: "America/New_York" }2 Call the Arabic Parts endpoint
# feed latitude, longitude and timezone from step 1
POST https://roxyapi.com/api/v2/astrology/arabic-lotsRequest
POST /api/v2/astrology/arabic-lots
Parameters
| Parameter | Type | Description |
|---|---|---|
| langquery | string enum | Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English. Default en. |
Request body
| Field | Type | Description |
|---|---|---|
| date* | string (date) | Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day. |
| time* | string (time) | Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown. |
| latitude* | number | Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South. |
| longitude* | number | Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West. |
| timezone* | number or string | Timezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly. |
| nodeType | string enum | Lunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true". |
| houseSystem | string enum | House system used to place the Sun, which determines the chart sect (day when the Sun is above the horizon, night when below) and therefore which lot formula applies. Placidus (default), Whole Sign, Equal, or Koch. |
Example request
{
"date": "1990-07-15",
"time": "14:30:00",
"latitude": 40.7128,
"longitude": -74.006,
"timezone": -5
}Response
Structured JSON with documented fields, covered by 6,921 automated tests per deploy, 1,492 of them gold-standard tests verified against NASA JPL Horizons. Not hallucinated text.
{
"birthDetails": {
"date": "1990-07-15",
"time": "14:30:00",
"latitude": 40.7128,
"longitude": -74.006,
"timezone": -5
},
"sect": "night",
"lots": [
{
"id": "fortune",
"name": "Part of Fortune",
"longitude": 27.24,
"sign": "Aries",
"degree": 27.24,
"formula": "Ascendant + Sun - Moon",
"interpretation": "Your Part of Fortune falls in Aries, marking the body, health, material wellbeing, and the flow of fortune through your life. Lots are sensitive points derived by arc from the Ascendant, Sun, Moon, and planets, with the formula reversed between day and night charts."
}
],
"summary": "Seven Hermetic lots for 1990-07-15 cast from a night chart: Fortune, Spirit, Eros, Necessity, Courage, Victory, and Nemesis, each projected by arc from the Ascendant."
}Response fields
| Field | Type | Description |
|---|---|---|
| birthDetails* | object | Echo of the birth moment and place used to compute every lot. |
| birthDetails.date* | string (date) | Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day. |
| birthDetails.time* | string (time) | Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown. |
| birthDetails.latitude* | number | Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South. |
| birthDetails.longitude* | number | Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West. |
| birthDetails.timezone* | number | Timezone offset from UTC in decimal hours. Examples: New York = -5, London = 0, India = 5.5, Tokyo = 9. |
| sect* | string enum | Chart sect that selected each formula. Day (diurnal) when the Sun is above the horizon, night (nocturnal) when below. Every lot swaps its two non-Ascendant terms between day and night. |
| lots* | array of object | The seven Hermetic lots in canonical order: Part of Fortune and Part of Spirit from the luminaries, then Eros, Necessity, Courage, Victory, and Nemesis from a planet paired with Fortune or Spirit. |
| lots[].id* | string | Stable machine identifier for the lot (fortune, spirit, eros, necessity, courage, victory, nemesis). Use this for lookups. |
| lots[].name* | string | Name of the lot. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees. |
| lots[].nameLocalized | string | Lot name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it. |
| lots[].longitude* | number | Absolute tropical ecliptic longitude of the lot in degrees (0 to 360). |
| lots[].sign* | string | Tropical zodiac sign the lot falls in. |
| lots[].degree* | number | Degree of the lot within its zodiac sign (0 to 29.999). |
Show all fieldsShow fewer fields
| Field | Type | Description |
|---|---|---|
| lots[].formula* | string | Human readable arc used for this chart, with the day or night term order already applied by sect. |
| lots[].interpretation* | string | Plain language meaning of this lot in its sign, suitable for chart reports and AI agents. Localized to the requested language. |
| summary* | string | Short overview of the lot set for previews and report intros. |
Supported options
lang
nodeType
houseSystem
Call it in your language in seconds.
Every snippet is generated from the live OpenAPI spec, so method names, parameters, and fields always match production.
import { createRoxy } from '@roxyapi/sdk'
const roxy = createRoxy(process.env.ROXY_API_KEY!)
const { data } = await roxy.astrology.calculateArabicLots({ body: { date: '1990-07-15', time: '14:30:00', latitude: 40.7128, longitude: -74.006, timezone: -5 } })from roxy_sdk import create_roxy
roxy = create_roxy("YOUR_API_KEY")
result = roxy.astrology.calculate_arabic_lots(date='1990-07-15', time='14:30:00', latitude=40.7128, longitude=-74.006, timezone='America/New_York')use function RoxyAPI\Sdk\createRoxy;
$roxy = createRoxy(getenv('ROXY_API_KEY'));
$result = $roxy->astrology->calculateArabicLots(date: '1990-07-15', time: '14:30:00', latitude: 40.7128, longitude: -74.006, timezone: -5);using RoxyApi;
var roxy = new RoxyClient(Environment.GetEnvironmentVariable("ROXY_API_KEY")!);
var result = await roxy.Astrology.ArabicLots.PostAsync(new() { /* request fields above */ });import roxyapi "github.com/RoxyAPI/sdk-go"
roxy, _ := roxyapi.NewRoxy(os.Getenv("ROXY_API_KEY"))
resp, _ := roxy.Astrology.CalculateArabicLots(ctx, nil, roxyapi.CalculateArabicLotsJSONRequestBody{ /* request fields above */ })curl -X POST "https://roxyapi.com/api/v2/astrology/arabic-lots" \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"1990-07-15","time":"14:30:00","latitude":40.7128,"longitude":-74.006,"timezone":-5}'Prefer to try before you write code? Run this Western Astrology endpoint live in the API playground and inspect a real production response.
Remote MCP for AI agents
Every Western Astrology endpoint is a callable tool on the Remote MCP server over Streamable HTTP. No local setup, no Docker. Claude, ChatGPT, Cursor, and any MCP client auto-discover the tools and ground their answers in verified data.
claude mcp add --transport http \
roxy-astrology https://roxyapi.com/mcp/astrology \
--header "X-API-Key: YOUR_KEY"Tool name for POST /astrology/arabic-lots: post_astrology_arabic_lots. Full MCP setup guide
What you can build
Launch natal chart apps with professional-grade accuracy: birth charts, planet positions, house placements, aspects, and element analysis ready for your UI in days
Add zodiac compatibility scoring to dating apps: synastry analysis, composite charts, and compatibility scores with detailed relationship dynamics
Ship personalized horoscope platforms: publisher-grade daily, weekly, and monthly forecasts with unique content per sign, active transit metadata, Moon phase data, and date scheduling for editorial pre-publishing
Build AI astrology chatbots with MCP: your OpenAI, Claude, or Gemini agent auto-discovers and calls every astrology endpoint with zero integration code
Power wellness and lifestyle apps with real-time transits, moon phase calendars, solar returns, and planetary movement alerts for self-discovery features
Create astrology content engines: automated zodiac content with house-based uniqueness per sign, horoscope newsletters with real lunar event dates, transit alerts, and seasonal forecasts at scale
Drop-in UI components & widgets
Render Arabic Parts API responses without building charts yourself. Install the npm package and drop these into Next.js, React, Vue, Svelte, Angular, or plain HTML, or embed the very same component on Squarespace, Wix, or WordPress by pasting one snippet, with no backend and no build step. They belong to one library that covers the entire spiritual stack rather than astrology alone, MIT licensed and included in every plan at no extra cost, never a separate product and never an upsell. The Arabic Parts API calculations, the interface that renders them, and the Remote MCP your agent calls, all behind one key, end to end.
Show all Arabic Parts UI componentsShow fewer Arabic Parts UI components
| Element | Renders |
|---|---|
| <roxy-positions-table> | Body, sign, degree, and per-shape columns (house, motion, formula, or natal arc) plus each reading |
Related capabilities
Arabic Parts API FAQ
What does the Arabic Parts API return?
Calculate the seven Hermetic lots (Arabic parts) for any birth moment: Part of Fortune, Part of Spirit, Eros, Necessity, Courage, Victory, and Nemesis. Every response is structured JSON with documented fields, not free text, so you map it straight into your product.
How do I authenticate with the Arabic Parts API?
Pass your key in the X-API-Key header on every request. Keys are delivered instantly at checkout with no approval queue. Use a secret sk key server side, or mint a publishable pk key locked to your origins for browser and no-code use.
Does the Arabic Parts API support multiple languages?
Yes. Append the lang query parameter to any endpoint for responses in English, German, Spanish, French, Hindi, Portuguese, Russian and Turkish. The translated payload includes the full interpretation text, not just field labels.
Do I need coordinates to call the Arabic Parts API?
No. Call GET /location/search with a city name first, then pass latitude, longitude, and timezone from the first result into the request. Never ask users to type coordinates. Timezone accepts a decimal offset or an IANA name.
Is the Arabic Parts API available over Remote MCP for AI agents?
Yes. Every endpoint is exposed as a callable tool on the Remote MCP server at https://roxyapi.com/mcp/astrology over Streamable HTTP, so Claude, ChatGPT, Cursor, and any MCP client auto-discover it with no local setup or Docker.
How is the Arabic Parts API billed?
Flat pricing: 1 request equals 1 quota unit, REST and MCP identical, with no credit weighting or per-token markup. Every plan includes all 12 domains, so the Arabic Parts API is included at no extra cost.
What lang values does the Arabic Parts API accept?
The lang parameter accepts en, tr, de, es, hi, pt, fr, ru. Case-insensitive where it is a path value.
Start using Arabic Parts API today.
Ship your astrology app this weekend. Not this quarter.
All 12 domains included with every plan. Every endpoint, MCP server, SDK, and starters.
Plans from $39/mo, starting at $2.70 per domain on annual billing. No credit card required for testing.
View Pricing & Get API Key
