Everything you need to build with Open Ephemeris, in one clear place.
Explore the full API with working payloads, pricing context, and copy-paste examples designed to help you move from first request to production with confidence.
QuickstartAPI key auth
Base URL
https://api.openephemeris.com
Auth — API Key
Use X-OpenEphemeris-API-Key in your app or server. Generate a key from the dashboard to start testing.
Auth — MCP / AI Tools
No key needed. Run npx -y @openephemeris/mcp-server — auto-connects via OAuth Device Auth. Credentials are cached and auto-refresh.
Auth — Remote MCP (Claude Web)
No local install. Add https://mcp.openephemeris.com/mcp as a custom connector — leave OAuth Client ID and Secret blank. The server uses OAuth 2.1 + PKCE with Dynamic Client Registration; Claude handles auth via a browser popup on first connect.
Every endpoint shows its credit cost up front — design with clarity before you write a line of integration code.
Stability
Versioning & Stability
OpenEphemeris is currently on v1. We are committed to API stability so integrations keep working without surprise.
90-Day Notice
No breaking changes will ship without at least 90 days' advance notice via the changelog, docs, and a deprecation response header on affected endpoints.
Deprecation Process
Deprecated features follow three phases: header warning on live responses → docs notice with sunset date → removal. The changelog is the canonical record of all changes.
Changelog
Every notable change is documented in the Changelog, including added endpoints, schema changes, and deprecation timelines.
Trust & Provenance
Why Open Ephemeris
Open Ephemeris calculates the exact positions of planets, the Moon, and other celestial bodies for any moment in time, anywhere on Earth. It is built on the same astronomical data and math libraries used by research observatories. Every result is deterministic — the same input always produces the same output, with no hidden adjustments.
Where the Data Comes From
Planet positions come from NASA JPL's DE440 ephemeris — the same dataset used by space missions and professional observatories. "Powered by NASA JPL" means we use their published planetary tables, not that OpenEphemeris is a NASA product. The calculations are performed by the SuperNOVAS and Calceph open-source libraries, both widely used in academic astronomy. DE440 covers dates from 1550 through 2650 CE with sub-arcsecond precision.
How Precise It Is
Planetary positions are accurate to better than one arcsecond — roughly the width of a coin viewed from two miles away. Earth's orientation data comes from the IERS (the international service that tracks how Earth spins). Every endpoint uses the same math pipeline, so a natal chart calculation and a full astrocartography sweep produce perfectly consistent results.
How Time & Location Work
You provide a date, time, and place. OpenEphemeris converts the date into a Julian Day number (the standard way astronomers count days), applies a correction called ΔT to account for variations in Earth's rotation, and resolves the timezone using the IANA timezone database — the same one your phone uses. Coordinates can be sent as decimal degrees, degree-minute-second strings, or structured objects.
Engine Details
How Calculations Work
Understanding the calculation steps helps you interpret results and explains why OpenEphemeris numbers may differ slightly from other tools.
What Happens When You Send a Request
Date & time — your date is converted to a Julian Day number, then a small correction (ΔT) is applied to translate from clock time to the precise astronomical timescale. This ensures planet positions are computed to the correct fraction of a second.
Planet positions — the NASA DE440 tables are queried for each planet's position on the ecliptic (the plane of Earth's orbit). Positions are measured in degrees along the zodiac, starting from the March equinox point.
Houses & angles — based on your location and house system choice (Placidus by default), the sky is divided into twelve segments. The Ascendant, Midheaven, and other angles are derived from your latitude and sidereal time.
Output format — you receive full-precision JSON by default. Add format=llm to get a compact, AI-friendly format that reduces the response size by 50–75% while keeping all essential information.
Why Results May Differ From Other Tools
If you compare OpenEphemeris results to other astrology software, small differences are normal. Here are the most common reasons:
Different planet tables — OpenEphemeris uses NASA DE440. Many other tools use older ephemeris libraries or DE405 tables. These produce slightly different positions (usually less than a few arcseconds).
Different time corrections — the ΔT value (the difference between clock time and astronomical time) varies between tools, especially for historical dates before precise timekeeping existed.
Different house systems — Placidus is the default in OpenEphemeris. Other tools may default to Koch, Whole Sign, or Equal houses. Switching systems changes house cusps and planet placements.
Western vs. Vedic zodiac — western astrology uses the tropical zodiac (aligned to the seasons). Vedic astrology uses the sidereal zodiac (aligned to the fixed stars), which is currently about 24° behind. OpenEphemeris handles both — vedic endpoints default to the sidereal Lahiri ayanamsa.
Capability Map
Every astrological computation
Explore the breadth of the API across core ephemeris features, predictive timing, astrocartography, and specialized astrological traditions.
Coverage Snapshot13 verticals126 operations representedPrioritized by implementation value
Ephemeris Core
Start with reliable positions, houses, aspects, and chart fundamentals. This is the base layer most product experiences depend on.
Predictive Timing
Turn celestial motion into actionable timing windows for forecasting, reminders, and ongoing user guidance.
Electional Astrology
Programmatically discover optimal timing windows with constraint-based searching, moment scoring, and exact phase tracking.
Astrocartography
Add location intelligence by showing where planetary lines are strongest and how places compare.
Time & Calendar Intelligence
Keep results aligned with timezone, calendar, and astronomical time standards across regions. Powered by an offline geocoder covering 229,000+ cities worldwide.
Visualization + Delivery
Generate chart visuals and delivery-ready payloads so your UI, exports, and automations ship faster.
Comparative & Relationship
Build richer relationship features with structured synastry and composite outputs instead of static compatibility text.
LLM + Agent Workflows
Integrate clean, compact responses into AI workflows so models can reason faster with lower token cost.
Lunar, Venus & Eclipse Cycles
Track phases, lunations, eclipses, and cycle milestones for event-based planning and notifications.
Human Design + Tradition Systems
Support Human Design chart analysis and traditional system coverage in one integration path.
Eclipse & Advanced Timing
Go deeper with precision eclipse visibility, Besselian elements, and advanced analytical endpoints for forecasting.
Vedic + Chinese Astrology
Compute core Vedic and BaZi outputs with the same API patterns used across the platform.
Agriculture + Tidal Planning
Use practical timing data for farming, marine, and environmental planning workflows.
Vertical 01
Tier 116 ops
Ephemeris Core
Reliable foundation for every product flow
Key capabilities
Natal Chart
Planetary Positions
Aspects Grid
House Systems
Dignities
Retrograde Status
Combustion
Sect + Essential Strength
Precision & Scope
Supported Math & Bodies
OpenEphemeris provides native astronomical and interpretive computations under a unified API surface. No trigonometric or manual post-processing of variables required.
Nodes: True North Node, Mean North Node, True South Node, Mean South Node. Lunar Apogee: True Lilith (Osculating), Mean Lilith, Interpolated (Natural) Lilith. Mathematical Angles: Ascendant, Midheaven (MC), Descendant, Imum Coeli (IC), Equatorial Ascendant, Vertex, Anti-Vertex, East Point.
Interpretive Mathematics
Dignities: Domicile, Exaltation, Detriment, Fall. Planetary State: Retrograde, Station Direct, Station Retrograde, Velocity (Daily Motion), Out of Bounds (Declination). Solar Phasis: Combustion (under the sunbeams), Cazimi (in the heart of the sun). Sect: Diurnal (Day chart) and Nocturnal (Night chart) determinations.
House Systems
We natively support 12 distinct topological divisions: Placidus (default), Koch, Whole Sign, Equal, Campanus, Regiomontanus, Porphyry, Meridian, Morinus, Alcabitius, Vehlow, and Krusinski.
Hermetic Lots (Arabic Parts)
Computed natively with strict adherence to day/night sect reversals: Part of Fortune (Lot of the Moon), Part of Spirit (Lot of the Sun), Part of Necessity (Mercury), Part of Love/Eros (Venus), Part of Courage (Mars), Part of Victory (Jupiter), Part of Nemesis (Saturn).
Convert a place name to latitude/longitude and timezone
Location
/location/autocomplete, /timezone/lookup
Browse supported planets, house systems, or star catalogs
Catalogs
/catalogs/bodies, /catalogs/fixed-stars
MCP Integration
Connect to Your AI Assistant
OpenEphemeris integrates with AI assistants via the Model Context Protocol (MCP). Choose the method that fits your setup.
Local (stdio) — Developers
Install Node.js ≥ 18
Add to your MCP config: npx -y @openephemeris/mcp-server
The server auto-authenticates via browser on first use
Works with Cursor, Windsurf, Zed, Claude Desktop, Claude Code, and any stdio MCP client.
Remote (Streamable HTTP) — Claude Web & Mobile
Open claude.ai → Settings → Connectors → Add custom connector
Paste this URL: https://mcp.openephemeris.com/mcp
Leave OAuth Client ID and Secret blank — do not fill Advanced Settings
Click Connect — sign in (or sign up free in 30s) in the browser popup; tools are discovered automatically
No downloads. No Node.js. OAuth 2.1 + PKCE with Dynamic Client Registration per MCP 2025-11-25 Streamable HTTP spec. Custom connectors require a paid Claude plan (Pro or higher); on Claude Desktop and Claude Code, all plans work.
AI Skills — Interpretation Packs
Download free skill packs (natal charts, timing, compatibility, Human Design, Chinese & Vedic) that teach any AI assistant to interpret OpenEphemeris data like a professional astrologer.
Upload to Claude via Settings → Skills. For other LLMs, use the .md content as a system prompt.
ChatGPT — Custom GPT Action
Go to chatgpt.com → Create a GPT → Actions → Import from URL
Enter: https://api.openephemeris.com/openapi.json
Set auth: API Key in header X-OpenEphemeris-API-Key
Uses the OpenAPI spec directly — no MCP required. ChatGPT natively understands all endpoints.
We maintain a public repository of copy-paste ready scripts spanning Python, TypeScript, and Shell. Whether you are fetching raw astrocartography geoJSON for a map, requesting JSON-LD LLM context, or testing Human Design transits locally, our examples repository gets you to production faster.
Every endpoint has a minimum tier. Explorer-tier endpoints are available to all authenticated users (including the free plan). Higher-tier endpoints return a structured 403 error with upgrade response with upgrade instructions if your plan doesn't include them.
When your plan changes, the new tier takes effect within 45 seconds for API key users and within 60 seconds for JWT (session) users. During that brief window, the previous tier may still apply. If you need to force an immediate refresh, generate a new API key from the dashboard. Cached API responses expire after 120 seconds.
Exploring the API?
Explorer accounts start with 150 free credits. Need more to finish testing? Add credits from $5 — no subscription required, no auto-renewal, and credits never expire.
Find ACG lines closest to a geographic location.
Supports two modes:
1. **Proximity mode** (recommended): Provide `query_lat` and `query_lon` in the request body to find lines near any arbitrary point. Optionally set `radius_deg` (default: 3.0, max: 90). Returns features sorted by distance (closest first) with `min_distance_deg` and `min_distance_km` in each feature's properties.
2. **Birthplace fallback**: If `query_lat`/`query_lon` are omitted but `natal.birthplace_lat`/`natal.birthplace_lon` are present, those coordinates are used as the query location.
3. **Unfiltered mode** (backward-compatible): If neither query location nor natal birthplace is provided, all computed features are returned unfiltered.
New request fields (all optional):
- `query_lat` (float): Latitude of the query point (-90 to 90)
- `query_lon` (float): Longitude of the query point (-180 to 180)
- `radius_deg` (float): Proximity radius in degrees (1° ≈ 111 km). Default: 3.0
Find exact geographic points where two ACG lines intersect.
This is a novel feature — no other public ACG API provides crossing
points as structured data. Returns GeoJSON Point features.
Response packaging is stable: `type=FeatureCollection`, `features` is always an array (possibly empty), and `crossing_count` matches the feature count.
Compute declination parallel and contra-parallel latitude bands.
A NOVEL feature — no other ACG tool maps declination parallels
geographically. Returns horizontal GeoJSON lines where two bodies
share (parallel) or oppose (contra-parallel) declination.
Current endpoint contract uses a fixed 1.5° orb (DefaultDeclinationOrb). No `max_orb` query parameter is accepted on this route.
Calculates Astrocartography (ACG) geometry exclusively for the seven classical Hermetic Lots (Lot of Fortune, Spirit, Eros, Necessity, Courage, Victory, and Nemesis).
### Astrological & Mathematical Geometry
Hermetic Lots are sensitive mathematical points derived from the natal Ascendant and two planetary positions (e.g., Day Fortune = Ascendant + Moon − Sun). Unlike planets, their ecliptic longitude shifts with the observer's natal birthplace, so `natal.birthplace_lat` and `natal.birthplace_lon` are **required** fields for this endpoint.
The engine converts each lot's ecliptic longitude to equatorial coordinates (Right Ascension and Declination) using the standard ecliptic-to-equatorial transformation, then runs those coordinates through the same angular line generators used for all ACG bodies.
### Line Types Returned
All four standard angular line types are returned for each lot:
- **MC** — Meridian where the lot culminates (2-point vertical meridian)
- **IC** — Anti-culmination meridian, 180° opposite the MC (2-point vertical meridian)
- **AC** — Horizon curve where the lot's equivalent point rises (181-point sinusoidal arc)
- **DC** — Horizon curve where the lot's equivalent point sets (181-point sinusoidal arc)
Use the `options.line_types` field to restrict output to a subset (e.g., `["MC", "IC"]`).
### Sect Awareness
Sect (day/night chart) is determined from the Sun's actual altitude at the natal birthplace and time. The day and night formulas are applied accordingly — e.g., Fortune uses `ASC + Moon − Sun` for day charts and `ASC + Sun − Moon` for night charts.
Compute astrocartography lines for all N(N-1)/2 body-pair midpoints.
Uses short-arc RA averaging in equatorial space, then runs each virtual
midpoint body through the standard MC/IC/AC/DC generators.
Returns MIDPOINT_MC, MIDPOINT_IC, MIDPOINT_AC, MIDPOINT_DC line types.
Returns the 8 Wheel of the Year events (4 cross-quarters + 4 cardinal points) calculated using true apparent solar longitude from JPL DE440. Cross-quarter dates are the true midpoints between solstices and equinoxes, NOT the traditional Gregorian approximations. 🤖 AI-optimized output available — add `format=llm` to reduce payload ~45%.
Returns the current state of the 18.6-year lunar nodal cycle. Identifies Major Standstill (Moon reaches ±28.6° declination) and Minor Standstill (Moon limited to ±18.3°) epochs. The most recent Major Standstill is circa 2025.4.
8-Phase Lunar Classification + Next Principal Phases
Returns the current 8-phase lunar phase classification (not just 4), illumination fraction, Moon age in hours, and the next 4 principal phase moments (New, First Quarter, Full, Third Quarter). 🤖 AI-optimized output available — add `format=llm` to reduce payload ~45%.
Catalog-driven identifiers for selectable natal bodies (planets, nodes, Lilith points, major asteroids). This surface is intended for commercial clients and UIs.
Compute the Four Pillars (八字 BaZi) for a birth date and time. Returns the Heavenly Stem and Earthly Branch for each pillar (year, month, day, hour), along with the Day Master — the core element of BaZi self-analysis.
**Heavenly Stems**: 10 stems cycling through 5 elements × 2 polarities.
**Earthly Branches**: 12 branches, each associated with a zodiac animal.
**Day Master (日主)**: The Day Stem's element represents the self.
**Note**: This MVP uses Jan 1 as the year boundary. Traditional BaZi uses Lì Chūn (立春, ~Feb 4). See metadata for details.
**Metering**: 1 unit per call.
Quick lookup of the Chinese zodiac animal, element, and Yin/Yang polarity for any Gregorian year. Also returns the year's Heavenly Stem and Earthly Branch.
The 12-animal cycle: Rat, Ox, Tiger, Rabbit, Dragon, Snake, Horse, Goat, Monkey, Rooster, Dog, Pig.
The 5-element cycle: Wood, Fire, Earth, Metal, Water (each element governs two consecutive years).
**Metering**: 1 unit per call.
Calculate the Heavenly Stem and Earthly Branch for any given Gregorian year (Liu Nian 流年 annual pillar). Optionally returns the NaYin resonance element.
**Metering**: 1 unit per call.
Assess the compatibility between two BaZi charts using Six Harmonies (六合), Three Harmonies (三合), Six Clashes (六冲), Six Harms (六害), and Day Master element interactions.
Returns a 0–100 composite score, an assessment label (excellent / good / moderate / challenging), and a list of specific factors found.
**Note**: The 0–100 scoring is an Open Ephemeris algorithmic interpretation. BaZi compatibility analysis is nuanced and multi-layered; this endpoint provides a structured starting point.
**Metering**: 3 units per call.
Calculate the weighted Wu Xing (五行) element balance across all four pillars of a BaZi chart, including hidden stems within the earthly branches.
Returns percentage scores for each of the five elements, Day Master strength (strong/weak/neutral), and the recommended Yong Shen (用神) favourable element.
**Metering**: 2 units per call.
Calculate the eight 10-year Da Yun (大运) luck pillars for a BaZi chart. Starting age is computed from the nearest solar term (Jié) boundary — 3 days from birth = 1 year of starting age (classical Zi Ping rule).
Requires gender to determine whether pillars progress forward or backward through the sexagenary cycle.
**Metering**: 2 units per call.
Return all 24 Jiéqì (节气) solar terms for a given Gregorian year, with exact datetime (UTC) computed from true apparent solar longitude.
Includes both the 12 Jié (节, month-starting terms used in BaZi) and the 12 Qì (气, mid-month terms). Dates are computed via the same ephemeris bridge used by /chinese/bazi.
**Metering**: 2 units per call.
Calculate the Ten Gods (十神 Shí Shén) for a BaZi chart relative to the Day Master. Returns the Ten God label, Chinese name, category, and hidden stem Ten Gods for all four pillars.
The Ten Gods describe the nature of each element in the chart relative to the self (Day Master): Friend, Rob Wealth, Eating God, Hurting Officer, Indirect Wealth, Direct Wealth, Seven Killings, Direct Officer, Indirect Resource, Direct Resource.
**Metering**: 2 units per call.
Lunar eclipse visibility with contact times (penumbral, partial, total). Safe to view without eye protection. 🤖 AI-optimized output available — add `output_format=llm` to reduce payload ~55%.
Calculate complete solar eclipse circumstances with Besselian elements and global path for a given date. Returns eclipse classification, Saros series, safety warnings, and uncertainty analysis. 🤖 AI-optimized output available — add `output_format=llm` to reduce payload ~55%.
Local circumstances for a specific observer: magnitude, obscuration, contact times (C1-C4), duration, and sun position. 🤖 AI-optimized output available — add `output_format=llm` to reduce payload ~55%.
Returns compact biodynamic summaries for a date range (max 31 days).
Each day includes: day type, quality score, ascending status, void-of-course
active flag, phase name, and illumination percentage. Designed for building
monthly planning calendars.
🤖 AI-optimized output available — add `format=llm` to reduce payload ~80%.
```bash
GET /ephemeris/agro/calendar?lat=-33.87&lon=151.21&start=2026-03-01&end=2026-03-31&tz=Australia/Sydney
```
Returns the current Void of Course (VoC) Moon window for a given Julian Day.
Method 3: scans backward from the Moon's next sign ingress to find the last
major Ptolemaic aspect (conjunction, sextile, square, trine, opposition) to
a traditional planet. The VoC period runs from that aspect until the ingress.
```bash
GET /ephemeris/agro/void-of-course?jd=2451545.0
```
Calculate antiscia (mirror points across the Cancer/Capricorn solstice axis) and contra-antiscia for a set of planetary longitudes. Detects hidden conjunctions where one planet's antiscion falls on another planet's natal position. Central to Hellenistic and traditional Western astrology. 🤖 AI-optimized output available — add `format=llm` to reduce payload ~60%.
Analyse ecliptic coordinates to compute equatorial declinations, detect out-of-bounds (OOB) planets, and find declination aspects (parallels and contraparallels).
A planet is out of bounds when its declination exceeds the obliquity of the ecliptic (~23.44°). OOB planets operate outside the Sun's framework and are interpreted as wildcards in contemporary astrology. The Moon is the most frequently OOB body.
Parallels (same declination, same hemisphere) behave like conjunctions; contraparallels (equal but opposite declination) behave like oppositions.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris kernel required.
Build a dispositor tree from a set of planetary sign placements. Each planet is "disposed" by the ruler of the sign it occupies. The algorithm walks these rulership chains to identify final dispositors (planets ruling their own sign) and mutual receptions (pairs disposing each other).
No ephemeris kernel required — pass in pre-computed sign placements. Signs are 0-based in the API (0=Aries … 11=Pisces) and converted internally.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate positions for fixed stars at a specific moment. Supports individual star names, predefined groups (royal_stars, behenian, navigational, foundation_24, galactic), and magnitude filtering. Returns ecliptic coordinates, proper motion, and metadata for each star. 🤖 AI-optimized output available — add `format=llm` to reduce payload ~60%.
Calculate harmonic chart positions by multiplying natal longitudes by a harmonic number N and reducing modulo 360°. Finds conjunctions in the harmonic space to reveal hidden aspect patterns.
Harmonic analysis is the mathematical backbone of aspect theory: the 5th harmonic unfolds quintiles, the 7th reveals septiles, the 9th produces the Vedic navamsa. Higher harmonics expose increasingly subtle geometric relationships invisible in a standard chart wheel.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate Hermetic lots (Fortune Suite + optional/legacy) for a given datetime and location. Returns normalized lot positions with traditional source references, formulas, and keywords. Includes sect determination (diurnal/nocturnal) and house placements. Follows standalone pattern: direct Julian Day calculation without chart context. Supports format=json|llm via query params.
Calculate the current lunar phase based on Sun-Moon elongation. Returns phase name/angle, illumination percentage, and lunation metadata (New Moon/Full Moon dates, day of lunation, void-of-course status). 🤖 AI-optimized output available — add `format=llm` to reduce payload ~50%.
Calculate zodiacal midpoints from planetary longitudes, detecting conjunctions and oppositions to sensitive points. Supports sort-by-type, tree grouping, and dial-degree formatting. 🤖 AI-optimized output available — add `format=llm` to reduce payload ~65%.
Lightweight endpoint for retrieving a single planet's position at a specific time. Supports both geocentric (default) and topocentric (with latitude/longitude) calculations.
Lightweight endpoint for determining whether a planet is retrograde at a specific time. Returns motion type (direct/retrograde/stationary) and speed data.
Returns all current Moon aspects to traditional planets with **applying/separating classification**.
**Performance:** 15-30ms
**Aspect Classification:**
- **Applying:** Moon approaching exact aspect (energies building)
- **Separating:** Moon departing from exact aspect (energies waning)
- Classification based on Moon vs planet speeds (Moon moves ~13°/day, faster than any planet)
**Orb System:** Fixed traditional orbs (no custom orbs in v1)
- Major aspects: Conjunction, Opposition, Square, Trine, Sextile
- Minor aspects: Semi-sextile, Quincunx (optional via include_minor parameter)
**Planets Checked:** Sun, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto
**Use Cases:**
- "What aspects is the Moon making right now?"
- Moon aspect tracking for timing decisions
- Lunar aspect calendars
- Real-time lunar energy awareness
**Example:**
```bash
GET /ephemeris/moon/aspects?datetime=2025-12-11T12:00:00Z&include_minor=false
```
Returns all Moon sign ingress events within a date range.
**Moon Ingress Frequency:** ~13 ingresses per month (Moon changes signs every ~2.5 days)
**Performance:** <5ms (cached), 50-100ms (cache miss)
Cache is **pre-warmed for ±3 months** on startup and **refreshed daily at 00:01 UTC**.
**Cache Strategy:**
- Tropical and sidereal ingresses cached separately (different times due to ~24° ayanamsa offset)
- Redis backend with 30-day TTL
- Rolling 3-month window maintained automatically
- Graceful fallback to live calculation if cache miss
- Startup health check reports cache status
**Use Cases:**
- Monthly lunar calendars
- "Best days for haircuts" timing apps
- Moon sign tracking applications
- Gardening/manifestation by Moon sign
- Electional astrology lookups
**Rate Limiting:** Max 90-day range per query to prevent abuse.
**Example:**
```bash
GET /ephemeris/moon/ingresses?start_date=2025-12-01T00:00:00Z&end_date=2025-12-31T23:59:59Z&zodiac_mode=tropical
```
Returns Void of Course Moon status for a specific datetime using **Method 3 definition**.
**Void of Course (VoC) Definition:**
Moon is VoC when it makes no major aspects (conjunction, opposition, square, trine, sextile)
to traditional planets (Sun through Pluto) before changing zodiac signs.
**Method 3 Logic:**
- VoC period **cannot start before** Moon's last sign ingress
- Searches backwards from next ingress for last major aspect (COQTS)
- If no aspects found, VoC starts at previous ingress (calendar-accurate)
- Uses fixed traditional orbs (no custom orbs in v1)
**Performance:** 20-50ms (aspect search + ingress calculation)
**Use Cases:**
- Electional astrology: "Is now a good time to sign contracts?"
- Daily VoC calendars for timing decisions
- Timing-sensitive decision support tools
**Example:**
```bash
GET /ephemeris/moon/void-of-course?datetime=2025-12-11T12:00:00Z&zodiac_mode=tropical
```
Calculate progressed chart (Secondary, Tertiary, Solar Arc)
Return progressed positions, aspects, and metadata for a subject. Supports Secondary (Naibod), Tertiary, and Solar Arc methods. 🤖 **AI-optimized output** available — add ormat=llm to reduce payload ~70%.
Return a full chart payload for a given moment (transit chart). Includes all supported bodies: Sun–Pluto (core) plus Chiron, Mean/True North & South Nodes, Mean/True Lilith (Black Moon), and Ceres (extended bodies — gracefully omitted when ephemeris kernels are unavailable). Also returns houses/angles, aspects (major; minor opt-in), and a `body_categories` map for UI rendering. This is a chart snapshot endpoint (not a transit event search). 🤖 AI-optimized output: add `format=llm` to reduce payload ~70%.
Calculate when a planet transits to a specific longitude degree.
**Features:**
- Sub-minute precision for transit timing
- Retrograde motion handling with multiple crossings
- Duration calculations (approach and separation)
- All traditional and modern planets supported
**Performance:** <50ms for single transit calculations
Search for various types of transit events within a date range.
**Features:**
- Comprehensive transit searches
- Configurable date ranges (up to 5 years)
- Multiple transit types and aspects
- Detailed timing and metadata
**Performance:** Optimized for large-scale searches
Calculate planetary sign ingresses (when planets change zodiac signs).
**Features:**
- Sub-minute precision for ingress timing
- Retrograde status detection
- All traditional and modern planets
- Batch processing for multiple planets
**Performance:** <200ms for batch ingress calculations
Calculate the nearest return timing (body returns to its natal longitude) near a target datetime.
Supported bodies: Sun–Uranus, Mean Node, Mean/True Lilith.
🤖 AI-optimized output available — add `format=llm` to reduce payload ~65%.
Calculate firdaria (فرادير) — the medieval Persian planetary period system that assigns each of the seven classical planets a fixed number of years as the dominant ruler of life. The 75-year master cycle differs for day births (diurnal) and night births (nocturnal). Each major period is subdivided into seven sub-periods in Chaldean order.
Firdaria operates independently of signs and houses — it is purely a time-based system making it complementary to profections and transits. Think of it as a 75-year program schedule: knowing your current major and sub-period ruler tells you which planetary archetype is most active in your life right now.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate annual profections — the foundational Hellenistic timing technique that advances one zodiac sign per birthday from the natal Ascendant. Returns the profected sign, activated house, time lord planet, element, modality, and a full multi-year timeline.
Profections are the simplest and most widely used timing technique in traditional astrology, experiencing a major revival in modern Hellenistic practice. Each year of life activates one whole-sign house from the Ascendant; the ruler of that sign becomes the "time lord" coloring the entire year. Angular years (1st, 4th, 7th, 10th) are typically the most eventful.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate zodiacal releasing — the most powerful timing technique in Hellenistic astrology. Divides life into chapters ruled by zodiac signs, starting from a sensitive Lot (Fortune or Spirit). Each sign rules for its planetary ruler's minor years in months. Angular periods (1st, 4th, 7th, 10th from the Lot) mark peak chapters. Loosing of the bond occurs when a period's ruler falls in a cadent sign.
Returns L1 major periods with optional L2 sub-periods, peak period identification, angular/loosing flags, and an optional current-period highlight at the target datetime.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Compute the five Venus Star Point events (conjunctions of Venus and Sun around birth). Returns a list of five ConjunctionEvent objects: three occurring before birth and two after. Includes extended metadata such as zodiac dignity, visibility phase, and combustion status. 🤖 AI-optimized output available — add `format=llm` to reduce payload ~60%.
Calculate the Human Design chart at the moment a planet opposes its natal position (180°).
Most commonly used for Uranus Opposition (~age 42), Saturn Opposition (~age 14-15, ~44), and Jupiter Opposition (~age 6, ~18, ~30).
Calculate a Human Design chart at the moment any planet returns to its natal longitude.
Supports all major HD-relevant planets: sun, moon, mars, jupiter, saturn, chiron, uranus.
Personalized Human Design transit overlay.
Overlays the transiting field on a person's natal bodygraph and reports the channels a transit temporarily completes plus any newly-defined centers.
Requires Pro tier. Set include_visual=true for an overlay bodygraph SVG/PNG (+2 credits).
Return the IANA timezone for the provided coordinates.
If no timezone can be confidently determined (e.g., mid-ocean or invalid
inputs), the endpoint falls back to UTC and marks `fallback=true`.
The underlying lookup is cached within the core tools.
Return the timezone and UTC offset for the provided coordinates and instant.
- Resolves an IANA timezone from the coordinates
- Applies the timezone's historical/DST rules at the given instant
- Returns offset in seconds/hours, a formatted string, and a DST flag
Calculate planetary positions in the sidereal zodiac with Jyotish overlays. Each planet receives its rashi (sign), nakshatra (lunar mansion) with pada and ruling planet, and navamsa (D-9 divisional chart) sign.
**Ayanamsa**: Defaults to Lahiri, the standard for North Indian Jyotish. Also supports Fagan-Bradley and Krishnamurti.
**Planets**: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Rahu (North Node), and Ketu (South Node).
**Metering**: 1 unit per call.
Generate SVG/PNG chart wheel. Requires Pro tier. Explorer-tier and lower API keys receive 403 by design; there is no lower-tier fallback wheel-rendering endpoint in the current contract.
Calculate a synastry-style overlay between a natal chart and transits.
- Chart A: natal subject at birth
- Chart B: the same subject/location at transit_datetime (defaults to now UTC)
List all applying and separating aspects active at a given moment, enriched with quality scores. Useful for identifying the astrological texture of a chosen time.
Search a date range for the highest-scoring astrological timing windows. Evaluates moments in 1-hour steps, applies optional constraints (VOC avoidance, retrograde avoidance, lunar phase filter), and returns the top N ranked windows.
Score and analyse the astrological quality of a specific moment. Returns a 0-100 composite viability score derived from essential dignities, aspect quality, sect alignment, and void-of-course status.
Find all retrograde and direct station dates for the specified planets in a given date range. Stations are moments when a planet appears stationary before changing direction.
Pro
5
Auto-generated from the API's OpenAPI specification and tier gating middleware. Public endpoints (health checks, metadata, schemas) are omitted. All authenticated users access Explorer-tier endpoints. Higher-tier endpoints return a 403 Tier upgrade required response with upgrade instructions.
Read-Only Reference
Browse every endpoint without console noise.
This page stays read-only on purpose. Each endpoint includes the path, billing cost, required parameters, a working payload, and starter code for real integrations.
121 endpoints shown/121 total/17 metered groups/3 free groups
System health and readiness checks. Free — not metered.
System health checks. Verify that the API and its calculation engines are online and responding. Useful for monitoring dashboards and uptime checks.
GETFreeExplorer
Global Health Check
/health
Basic health check for the entire API service.
No auth requiredStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/health"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Successful Response
503
Service Unavailable - readiness check failed
GETFreeExplorer
Detailed Health Check
/health/detailed
Comprehensive health check with dependency status validation.
No auth requiredStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/health/detailed"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Successful Response
503
Service Unavailable - readiness check failed
▶
api-metadata
Discover the API schema and current contract hash. Free — not metered.
Discovery and schema endpoints. Retrieve the OpenAPI specification, supported house systems, available celestial objects, and request/response schemas — useful for code generation and dynamic client configuration.
GETFreeExplorer
API Root
/
Welcome endpoint with API information and links to documentation.
No auth requiredStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200Response Root Get
Successful Response
GETFreeExplorer
Get Supported House Systems
/ephemeris/house-systems
Get list of supported astrological house systems
API key or signed-in accountStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/house-systems"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
List of supported house systems
400
Bad Request - Input validation failed
404
Not found
422
Unprocessable Entity - Invalid input format
500
Internal Server Error - Calculation failed
GETFreeExplorer
Get Natal Chart Request Schema
/ephemeris/schemas/natal-request
Get JSON schema for natal chart request format
No auth requiredStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/schemas/natal-request"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
JSON schema for natal chart requests
400
Bad Request - Input validation failed
404
Not found
422
Unprocessable Entity - Invalid input format
500
Internal Server Error - Calculation failed
GETFreeExplorer
Get Natal Chart Response Schema
/ephemeris/schemas/natal-response
Get JSON schema for natal chart response format
API key or signed-in accountStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/schemas/natal-response"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
JSON schema for natal chart responses
400
Bad Request - Input validation failed
404
Not found
422
Unprocessable Entity - Invalid input format
500
Internal Server Error - Calculation failed
GETFreeExplorer
Get Supported Metadata
/ephemeris/supported-metadata
Get canonical metadata lookups used by calculations (sign elements/modalities, supported enums like dignity systems, house systems, node sources, etc.).
No auth requiredStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/supported-metadata"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Supported metadata
400
Bad Request - Input validation failed
404
Not found
422
Unprocessable Entity - Invalid input format
500
Internal Server Error - Calculation failed
GETFreeExplorer
Get Supported Celestial Objects
/ephemeris/supported-objects
Get list of supported celestial objects in calculations
API key or signed-in accountStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/supported-objects"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Supported celestial objects
400
Bad Request - Input validation failed
404
Not found
422
Unprocessable Entity - Invalid input format
500
Internal Server Error - Calculation failed
GETFreeExplorer
Get Openapi Schema
/meta/openapi.json
Return the OpenAPI schema for automated client generation.
Used by frontend build processes to generate type-safe API clients.
Authentication is NOT required for this discovery endpoint to facilitate
automated toolchain integration.
Returns:
OpenAPI 3.0 schema (JSON)
No auth requiredStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/meta/openapi.json"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Successful Response
GETFreeExplorer
Get Api Version
/meta/version
Return current API version and contract hash for cache invalidation.
Frontend CI uses this to detect schema changes and trigger client regeneration.
Authentication is not required for this discovery endpoint.
No auth requiredStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/meta/version"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Successful Response
▶
ephemeris
Discover the foundation of any chart. Get natal positions, houses, lots, core aspects, and fixed stars. Calculated with NASA-grade precision (DE440). Deep-time queries (DE441) are fully supported. 1 unit per request.
The core of OpenEphemeris. Send a birth date, time, and place to receive a complete snapshot of where every planet was at that moment — positions, houses, angles, aspects, and more. This is the starting point for most integrations.
POST1 call / requestExplorer
Calculate angles + points (granular)
/ephemeris/angles-points
Mechanical endpoint returning Asc/MC/Desc/IC plus Vertex/Anti-Vertex.
Calculate antiscia (mirror points across the Cancer/Capricorn solstice axis) and contra-antiscia for a set of planetary longitudes. Detects hidden conjunctions where one planet's antiscion falls on another planet's natal position. Central to Hellenistic and traditional Western astrology. 🤖 AI-optimized output available — add format=llm to reduce payload ~60%.
Analyse ecliptic coordinates to compute equatorial declinations, detect out-of-bounds (OOB) planets, and find declination aspects (parallels and contraparallels).
A planet is out of bounds when its declination exceeds the obliquity of the ecliptic (~23.44°). OOB planets operate outside the Sun's framework and are interpreted as wildcards in contemporary astrology. The Moon is the most frequently OOB body.
Parallels (same declination, same hemisphere) behave like conjunctions; contraparallels (equal but opposite declination) behave like oppositions.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris kernel required.
Build a dispositor tree from a set of planetary sign placements. Each planet is "disposed" by the ruler of the sign it occupies. The algorithm walks these rulership chains to identify final dispositors (planets ruling their own sign) and mutual receptions (pairs disposing each other).
No ephemeris kernel required — pass in pre-computed sign placements. Signs are 0-based in the API (0=Aries … 11=Pisces) and converted internally.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate positions for fixed stars at a specific moment. Supports individual star names, predefined groups (royal_stars, behenian, navigational, foundation_24, galactic), and magnitude filtering. Returns ecliptic coordinates, proper motion, and metadata for each star. 🤖 AI-optimized output available — add format=llm to reduce payload ~60%.
Calculate harmonic chart positions by multiplying natal longitudes by a harmonic number N and reducing modulo 360°. Finds conjunctions in the harmonic space to reveal hidden aspect patterns.
Harmonic analysis is the mathematical backbone of aspect theory: the 5th harmonic unfolds quintiles, the 7th reveals septiles, the 9th produces the Vedic navamsa. Higher harmonics expose increasingly subtle geometric relationships invisible in a standard chart wheel.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate Hermetic lots (Fortune Suite + optional/legacy) for a given datetime and location. Returns normalized lot positions with traditional source references, formulas, and keywords. Includes sect determination (diurnal/nocturnal) and house placements. Follows standalone pattern: direct Julian Day calculation without chart context. Supports format=json|llm via query params.
Calculate the current lunar phase based on Sun-Moon elongation. Returns phase name/angle, illumination percentage, and lunation metadata (New Moon/Full Moon dates, day of lunation, void-of-course status). 🤖 AI-optimized output available — add format=llm to reduce payload ~50%.
Calculate zodiacal midpoints from planetary longitudes, detecting conjunctions and oppositions to sensitive points. Supports sort-by-type, tree grouping, and dial-degree formatting. 🤖 AI-optimized output available — add format=llm to reduce payload ~65%.
Lightweight endpoint for retrieving a single planet's position at a specific time. Supports both geocentric (default) and topocentric (with latitude/longitude) calculations.
Lightweight endpoint for determining whether a planet is retrograde at a specific time. Returns motion type (direct/retrograde/stationary) and speed data.
Look ahead (or behind). Find exact times for transits, cast solar & lunar returns, and calculate progressions. 5 units per request.
Answer the question "what happens next?" Find the exact dates when planets change signs, form alignments, or return to their birth position. Use these for transit alerts, horoscope engines, or timing features.
POST1 call / requestExplorer
Calculate progressed chart (Secondary, Tertiary, Solar Arc)
/ephemeris/progressed
Return progressed positions, aspects, and metadata for a subject. Supports Secondary (Naibod), Tertiary, and Solar Arc methods. 🤖 AI-optimized output available — add ormat=llm to reduce payload ~70%.
API key or signed-in accountStatus: live
Parameters
presetquery
Computation preset: full | simple. For non-full formats this controls what is computed (pre-calculation).
Calculate the nearest return timing (body returns to its natal longitude) near a target datetime.
Supported bodies: Sun–Uranus, Mean Node, Mean/True Lilith.
🤖 AI-optimized output available — add format=llm to reduce payload ~65%.
API key or signed-in accountStatus: live
Parameters
presetquery
Computation preset: full | simple. Controls what is computed when include_chart=true.
Return not found within the specified search window (increase search_window_days)
422ErrorResponse
Unprocessable Entity - Invalid input
429ErrorResponse
Rate Limit Exceeded - Too many requests
500ErrorResponse
Internal Server Error
POST5 calls / requestPro
Firdaria Planetary Periods
/predictive/time-lords/firdaria
Calculate firdaria (فرادير) — the medieval Persian planetary period system that assigns each of the seven classical planets a fixed number of years as the dominant ruler of life. The 75-year master cycle differs for day births (diurnal) and night births (nocturnal). Each major period is subdivided into seven sub-periods in Chaldean order.
Firdaria operates independently of signs and houses — it is purely a time-based system making it complementary to profections and transits. Think of it as a 75-year program schedule: knowing your current major and sub-period ruler tells you which planetary archetype is most active in your life right now.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate annual profections — the foundational Hellenistic timing technique that advances one zodiac sign per birthday from the natal Ascendant. Returns the profected sign, activated house, time lord planet, element, modality, and a full multi-year timeline.
Profections are the simplest and most widely used timing technique in traditional astrology, experiencing a major revival in modern Hellenistic practice. Each year of life activates one whole-sign house from the Ascendant; the ruler of that sign becomes the "time lord" coloring the entire year. Angular years (1st, 4th, 7th, 10th) are typically the most eventful.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Calculate zodiacal releasing — the most powerful timing technique in Hellenistic astrology. Divides life into chapters ruled by zodiac signs, starting from a sensitive Lot (Fortune or Spirit). Each sign rules for its planetary ruler's minor years in months. Angular periods (1st, 4th, 7th, 10th from the Lot) mark peak chapters. Loosing of the bond occurs when a period's ruler falls in a cadent sign.
Returns L1 major periods with optional L2 sub-periods, peak period identification, angular/loosing flags, and an optional current-period highlight at the target datetime.
🤖 Agent-first endpoint — pure deterministic math, no ephemeris required.
Return a full chart payload for a given moment (transit chart). Includes all supported bodies: Sun–Pluto (core) plus Chiron, Mean/True North & South Nodes, Mean/True Lilith (Black Moon), and Ceres (extended bodies — gracefully omitted when ephemeris kernels are unavailable). Also returns houses/angles, aspects (major; minor opt-in), and a body_categories map for UI rendering. This is a chart snapshot endpoint (not a transit event search). 🤖 AI-optimized output: add format=llm to reduce payload ~70%.
API key or signed-in accountStatus: live
Parameters
presetquery
Computation preset: full | simple. Controls what is computed (pre-calculation).
Calculate when a planet transits to a specific longitude degree.
Features:
- Sub-minute precision for transit timing
- Retrograde motion handling with multiple crossings
- Duration calculations (approach and separation)
- All traditional and modern planets supported
Performance: <50ms for single transit calculations
Search for various types of transit events within a date range.
Features:
- Comprehensive transit searches
- Configurable date ranges (up to 5 years)
- Multiple transit types and aspects
- Detailed timing and metadata
Performance: Optimized for large-scale searches
Calculate planetary sign ingresses (when planets change zodiac signs).
Features:
- Sub-minute precision for ingress timing
- Retrograde status detection
- All traditional and modern planets
- Batch processing for multiple planets
Performance: <200ms for batch ingress calculations
Explore relationships and overlays. Cast synastry, composite, and transit-to-natal charts effortlessly. 3 units per request. (Scales by subject count for composites/overlays.)
Compare two people. Synastry measures how two birth charts interact, composite blends them into one relationship chart, and overlay shows one chart laid on top of another. Built for relationship and compatibility features.
POST3 calls / requestPro
Calculate Composite
/comparative/composite
Calculate a composite chart (Davidson or Midpoint).
🤖 AI-optimized output available — add format=llm to reduce payload ~65%.
Calculate a synastry-style overlay between a natal chart and transits.
- Chart A: natal subject at birth
- Chart B: the same subject/location at transit_datetime (defaults to now UTC)
Map the cosmos to the earth. Astrocartography (ACG), cyclocartography (CCG), and Local Space endpoints. Returns GeoJSON feature collections—perfect for drawing maps in your app. 2 units per request.
Plot where planetary influence is strongest on a world map. Astrocartography lines show locations where specific planets were rising, setting, or at their peak when you were born. Returns GeoJSON for custom rendering — overlay planetary lines on an interactive map without computing geometry client-side.
POST10 calls / requestScale
Calculate Astrocartography Aspect Lines
/acg/aspects
Calculate strictly isolated ACG aspect lines. Options configurations to include power lines/midpoints will be explicitly stripped.
Find exact geographic points where two ACG lines intersect.
This is a novel feature — no other public ACG API provides crossing
points as structured data. Returns GeoJSON Point features.
Response packaging is stable: type=FeatureCollection, features is always an array (possibly empty), and crossing_count matches the feature count.
FeatureCollection response (features is always an array; may be empty).
422HTTPValidationError
Validation Error
GETFreeExplorer
Available ACG Datasets
/acg/datasets
List available celestial body catalogs and aspect angles.
API key or signed-in accountStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/acg/datasets"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Successful Response
POST10 calls / requestScale
ACG Declination Parallel Lines
/acg/declination-lines
Compute declination parallel and contra-parallel latitude bands.
A NOVEL feature — no other ACG tool maps declination parallels
geographically. Returns horizontal GeoJSON lines where two bodies
share (parallel) or oppose (contra-parallel) declination.
Current endpoint contract uses a fixed 1.5° orb (DefaultDeclinationOrb). No max_orb query parameter is accepted on this route.
Calculates Astrocartography (ACG) geometry exclusively for the seven classical Hermetic Lots (Lot of Fortune, Spirit, Eros, Necessity, Courage, Victory, and Nemesis).
### Astrological & Mathematical Geometry
Hermetic Lots are sensitive mathematical points derived from the natal Ascendant and two planetary positions (e.g., Day Fortune = Ascendant + Moon − Sun). Unlike planets, their ecliptic longitude shifts with the observer's natal birthplace, so natal.birthplace_lat and natal.birthplace_lon are required fields for this endpoint.
The engine converts each lot's ecliptic longitude to equatorial coordinates (Right Ascension and Declination) using the standard ecliptic-to-equatorial transformation, then runs those coordinates through the same angular line generators used for all ACG bodies.
### Line Types Returned
All four standard angular line types are returned for each lot:
- MC — Meridian where the lot culminates (2-point vertical meridian)
- IC — Anti-culmination meridian, 180° opposite the MC (2-point vertical meridian)
- AC — Horizon curve where the lot's equivalent point rises (181-point sinusoidal arc)
- DC — Horizon curve where the lot's equivalent point sets (181-point sinusoidal arc)
Use the options.line_types field to restrict output to a subset (e.g., ["MC", "IC"]).
### Sect Awareness
Sect (day/night chart) is determined from the Sun's actual altitude at the natal birthplace and time. The day and night formulas are applied accordingly — e.g., Fortune uses ASC + Moon − Sun for day charts and ASC + Sun − Moon for night charts.
FeatureCollection response (features is always an array; may be empty).
422HTTPValidationError
Validation Error
POST10 calls / requestPro
ACG Line Proximity Hits
/acg/hits
Find ACG lines closest to a geographic location.
Supports two modes:
1. Proximity mode (recommended): Provide query_lat and query_lon in the request body to find lines near any arbitrary point. Optionally set radius_deg (default: 3.0, max: 90). Returns features sorted by distance (closest first) with min_distance_deg and min_distance_km in each feature's properties.
2. Birthplace fallback: If query_lat/query_lon are omitted but natal.birthplace_lat/natal.birthplace_lon are present, those coordinates are used as the query location.
3. Unfiltered mode (backward-compatible): If neither query location nor natal birthplace is provided, all computed features are returned unfiltered.
New request fields (all optional):
- query_lat (float): Latitude of the query point (-90 to 90)
- query_lon (float): Longitude of the query point (-180 to 180)
- radius_deg (float): Proximity radius in degrees (1° ≈ 111 km). Default: 3.0
curl -X GET "https://api.openephemeris.com/acg/meta"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200
Successful Response
POST10 calls / requestScale
ACG Midpoint Lines
/acg/midpoints
Compute astrocartography lines for all N(N-1)/2 body-pair midpoints.
Uses short-arc RA averaging in equatorial space, then runs each virtual
midpoint body through the standard MC/IC/AC/DC generators.
Returns MIDPOINT_MC, MIDPOINT_IC, MIDPOINT_AC, MIDPOINT_DC line types.
Render chart imagery. Generate natal chart wheels and comparative bi-wheels as SVG or PNG. Requires Pro tier. 2 units per request.
Get a finished chart image you can display directly. Returns SVG or PNG natal wheel diagrams and bi-wheel overlays — no drawing code needed on your side.
POST2 calls / requestExplorer
Generate Bi Wheel
/visualization/bi-wheel
Generate SVG/PNG bi-wheel chart. Requires Pro tier.
API key or signed-in accountStatus: live
Parameters
formatquery
No description provided.
Example: svg
sizequery
No description provided.
Example: 800
stylequery
No description provided.
Example: light
no_logoquery
When true, suppresses the OpenEphemeris watermark/logomark in the rendered SVG. Intended for white-label and embedded use cases where the chart is presented inside a host product's branded shell.
Generate SVG/PNG chart wheel. Requires Pro tier. Explorer-tier and lower API keys receive 403 by design; there is no lower-tier fallback wheel-rendering endpoint in the current contract.
API key or signed-in accountStatus: live
Parameters
formatquery
No description provided.
Example: svg
sizequery
No description provided.
Example: 800
stylequery
No description provided.
Example: light
no_logoquery
When true, suppresses the OpenEphemeris watermark/logomark in the rendered SVG. Intended for white-label and embedded use cases where the chart is presented inside a host product's branded shell.
Find the shadows. Calculate solar and lunar eclipses, global circumstances, next-visible searches, and Saros series data. 3 units per request.
Find when and where eclipses happen. Returns dates, types (total, partial, annular), visibility paths, and technical elements for both solar and lunar eclipses — past and future.
GET1 call / requestExplorer
Raw Besselian Elements
/eclipse/besselian-elements
Raw Besselian elements (X, Y, d, μ, l₁, l₂, f₁, f₂) and their time derivatives for any eclipse. For researchers and advanced users.
API key or signed-in accountStatus: live
Parameters
datequery
Eclipse date (ISO 8601)
Example: string
jdquery
Julian Day
Example: 1
delta_t_modelquery
No description provided.
Example: espenak_meeus
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/eclipse/besselian-elements"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200BesselianElementsResponse
Besselian elements for the eclipse
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Lunar Eclipse Global Circumstances
/eclipse/lunar/global
Lunar eclipse visibility with contact times (penumbral, partial, total). Safe to view without eye protection. 🤖 AI-optimized output available — add output_format=llm to reduce payload ~55%.
API key or signed-in accountStatus: live
Parameters
datequery
Eclipse date (ISO 8601)
Example: string
jdquery
Julian Day
Example: 1
delta_t_modelquery
No description provided.
Example: espenak_meeus
output_formatquery
No description provided.
Example: raw
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/eclipse/lunar/global"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200LunarEclipseGlobalResponse
Lunar eclipse global circumstances
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Next Visible Eclipse
/eclipse/next-visible
Find the next solar or lunar eclipse visible from specific coordinates. Planning tool for eclipse chasers.
API key or signed-in accountStatus: live
Parameters
latqueryRequired
Observer latitude
Example: -90
lonqueryRequired
Observer longitude
Example: -180
typequery
'solar', 'lunar', or 'any'
Example: any
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/eclipse/next-visible?lat=-90&lon=-180"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200NextVisibleResponse
Next visible eclipse with local circumstances
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Solar Eclipse Global Circumstances
/eclipse/solar/global
Calculate complete solar eclipse circumstances with Besselian elements and global path for a given date. Returns eclipse classification, Saros series, safety warnings, and uncertainty analysis. 🤖 AI-optimized output available — add output_format=llm to reduce payload ~55%.
API key or signed-in accountStatus: live
Parameters
datequery
Eclipse date (ISO 8601, e.g. 2026-08-12)
Example: string
jdquery
Julian Day (alternative to date)
Example: 1
delta_t_modelquery
'espenak_meeus' or 'stephenson_2021'
Example: espenak_meeus
output_formatquery
'raw' or 'llm'
Example: raw
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/eclipse/solar/global"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200SolarEclipseGlobalResponse
Solar eclipse global circumstances with Besselian elements
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Solar Eclipse Local Circumstances
/eclipse/solar/local
Local circumstances for a specific observer: magnitude, obscuration, contact times (C1-C4), duration, and sun position. 🤖 AI-optimized output available — add output_format=llm to reduce payload ~55%.
API key or signed-in accountStatus: live
Parameters
datequery
Eclipse date (ISO 8601)
Example: string
jdquery
Julian Day
Example: 1
latqueryRequired
Observer latitude
Example: -90
lonqueryRequired
Observer longitude
Example: -180
elevquery
Observer elevation in meters
Example: 0
delta_t_modelquery
No description provided.
Example: espenak_meeus
output_formatquery
No description provided.
Example: raw
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/eclipse/solar/local?lat=-90&lon=-180"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200SolarEclipseLocalResponse
Solar eclipse local circumstances for observer
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
▶
Human Design
Map the energetic blueprint. Bodygraphs, composite charts, transit fields, and pentas. 3 units per request.
Human Design combines astrology, the I Ching, Kabbalah, and the chakra system into a personality framework. These endpoints calculate a full chart including type, authority, profile, gates, channels, and defined centers from birth data.
POST2 calls / requestExplorer
Create Human Design Chart
/human-design/chart
Generate a full Human Design bodygraph.
Requires 'service' tier or admin access (Beta).
Calculate the Human Design chart at the moment a planet opposes its natal position (180°).
Most commonly used for Uranus Opposition (~age 42), Saturn Opposition (~age 14-15, ~44), and Jupiter Opposition (~age 6, ~18, ~30).
Calculate a Human Design chart at the moment any planet returns to its natal longitude.
Supports all major HD-relevant planets: sun, moon, mars, jupiter, saturn, chiron, uranus.
200Response Human Design Transit Human Design Transit Post
Successful Response
422HTTPValidationError
Validation Error
POST3 calls / requestPro
Human Design Transit Chart
/human-design/transit-chart
Personalized Human Design transit overlay.
Overlays the transiting field on a person's natal bodygraph and reports the channels a transit temporarily completes plus any newly-defined centers.
Requires Pro tier. Set include_visual=true for an overlay bodygraph SVG/PNG (+2 credits).
200Response Human Design Transit Chart Human Design Transit Chart Post
Successful Response
422HTTPValidationError
Validation Error
▶
chinese
Eastern insights. BaZi (Four Pillars), Zi Wei Dou Shu, and I Ching endpoints. 1 unit per request.
Chinese astrology, also called the Four Pillars of Destiny (BaZi). Returns the year, month, day, and hour pillars with their heavenly stems, earthly branches, and elemental balance for any birth date.
POST1 call / requestExplorer
Calculate Four Pillars of Destiny (BaZi)
/chinese/bazi
Compute the Four Pillars (八字 BaZi) for a birth date and time. Returns the Heavenly Stem and Earthly Branch for each pillar (year, month, day, hour), along with the Day Master — the core element of BaZi self-analysis.
Heavenly Stems: 10 stems cycling through 5 elements × 2 polarities.
Earthly Branches: 12 branches, each associated with a zodiac animal.
Day Master (日主): The Day Stem's element represents the self.
Note: This MVP uses Jan 1 as the year boundary. Traditional BaZi uses Lì Chūn (立春, ~Feb 4). See metadata for details.
Metering: 1 unit per call.
API key or signed-in accountStatus: live
Parameters
formatquery
Response format: json (full) or llm (compact columnar).
Full Four Pillars with stems, branches, and Day Master.
422
Validation error (bad date, out-of-range values).
POST3 calls / requestPro
BaZi Annual Pillar (Liu Nian)
/chinese/bazi/annual-pillar
Calculate the Heavenly Stem and Earthly Branch for any given Gregorian year (Liu Nian 流年 annual pillar). Optionally returns the NaYin resonance element.
Metering: 1 unit per call.
Assess the compatibility between two BaZi charts using Six Harmonies (六合), Three Harmonies (三合), Six Clashes (六冲), Six Harms (六害), and Day Master element interactions.
Returns a 0–100 composite score, an assessment label (excellent / good / moderate / challenging), and a list of specific factors found.
Note: The 0–100 scoring is an Open Ephemeris algorithmic interpretation. BaZi compatibility analysis is nuanced and multi-layered; this endpoint provides a structured starting point.
Metering: 3 units per call.
Compatibility score, assessment, and contributing factors.
422
Validation error.
POST3 calls / requestPro
BaZi Element Balance (Wu Xing)
/chinese/bazi/element-balance
Calculate the weighted Wu Xing (五行) element balance across all four pillars of a BaZi chart, including hidden stems within the earthly branches.
Returns percentage scores for each of the five elements, Day Master strength (strong/weak/neutral), and the recommended Yong Shen (用神) favourable element.
Metering: 2 units per call.
Five-element scores, Day Master strength, and Yong Shen.
422
Validation error.
POST3 calls / requestPro
BaZi Luck Pillars (Da Yun)
/chinese/bazi/luck-pillars
Calculate the eight 10-year Da Yun (大运) luck pillars for a BaZi chart. Starting age is computed from the nearest solar term (Jié) boundary — 3 days from birth = 1 year of starting age (classical Zi Ping rule).
Requires gender to determine whether pillars progress forward or backward through the sexagenary cycle.
Metering: 2 units per call.
Eight Da Yun luck pillars with starting age and direction.
422
Validation error.
POST3 calls / requestPro
24 Solar Terms for a Year
/chinese/bazi/solar-terms
Return all 24 Jiéqì (节气) solar terms for a given Gregorian year, with exact datetime (UTC) computed from true apparent solar longitude.
Includes both the 12 Jié (节, month-starting terms used in BaZi) and the 12 Qì (气, mid-month terms). Dates are computed via the same ephemeris bridge used by /chinese/bazi.
Metering: 2 units per call.
Calculate the Ten Gods (十神 Shí Shén) for a BaZi chart relative to the Day Master. Returns the Ten God label, Chinese name, category, and hidden stem Ten Gods for all four pillars.
The Ten Gods describe the nature of each element in the chart relative to the self (Day Master): Friend, Rob Wealth, Eating God, Hurting Officer, Indirect Wealth, Direct Wealth, Seven Killings, Direct Officer, Indirect Resource, Direct Resource.
Metering: 2 units per call.
Quick lookup of the Chinese zodiac animal, element, and Yin/Yang polarity for any Gregorian year. Also returns the year's Heavenly Stem and Earthly Branch.
The 12-animal cycle: Rat, Ox, Tiger, Rabbit, Dragon, Snake, Horse, Goat, Monkey, Rooster, Dog, Pig.
The 5-element cycle: Wood, Fire, Earth, Metal, Water (each element governs two consecutive years).
Metering: 1 unit per call.
API key or signed-in accountStatus: live
Parameters
yearqueryRequired
Gregorian year to look up.
Example: 2024
formatquery
Response format: json (full) or llm (compact).
Example: json
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/chinese/zodiac?year=2024"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200ZodiacResponse
Zodiac animal, element, polarity, and stem/branch.
422
Validation error (missing or out-of-range year).
▶
vedic
Vedic (Jyotish) calculations including Ayanamsha, Vargas, Dashas, and Panchang elements. 1 unit per request.
Vedic astrology (Jyotish) uses a sidereal zodiac that accounts for the precession of the equinoxes. Returns a sidereal birth chart with nakshatras (lunar mansions), dashas (planetary periods), and yogas (special combinations).
POST1 call / requestExplorer
Generate a Vedic (sidereal) natal chart
/vedic/chart
Calculate planetary positions in the sidereal zodiac with Jyotish overlays. Each planet receives its rashi (sign), nakshatra (lunar mansion) with pada and ruling planet, and navamsa (D-9 divisional chart) sign.
Ayanamsa: Defaults to Lahiri, the standard for North Indian Jyotish. Also supports Fagan-Bradley and Krishnamurti.
Planets: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Rahu (North Node), and Ketu (South Node).
Metering: 1 unit per call.
API key or signed-in accountStatus: live
Parameters
formatquery
Response format: json (full) or llm (compact columnar).
Work with the earth's rhythms. Biodynamic planting profiles and multi-day agricultural calendars. 2 units per request.
Moon-based timing for farming and gardening. Biodynamic agriculture tracks the Moon's sign, phase, and aspects to suggest optimal days for planting, pruning, harvesting, or resting. Returns daily profiles and monthly calendars.
GET1 call / requestExplorer
Biodynamic monthly calendar
/ephemeris/agro/calendar
Returns compact biodynamic summaries for a date range (max 31 days).
Each day includes: day type, quality score, ascending status, void-of-course
active flag, phase name, and illumination percentage. Designed for building
monthly planning calendars.
🤖 AI-optimized output available — add format=llm to reduce payload ~80%.
API key or signed-in accountStatus: live
Parameters
latqueryRequired
Observer latitude (WGS84, degrees)
Example: -90
lonqueryRequired
Observer longitude (WGS84, degrees)
Example: -180
startqueryRequired
Start date as YYYY-MM-DD
Example: 2026-03-01
endqueryRequired
End date as YYYY-MM-DD (inclusive, max 31 days from start)
Example: 2026-03-31
tzquery
IANA timezone identifier
Example: Australia/Sydney
elev_mquery
Observer elevation in metres
Example: 0
formatquery
Output format
Example: json
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/agro/calendar?lat=-90&lon=-180&start=2026-03-01&end=2026-03-31"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200AgroCalendarResponse
Successful Response
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Biodynamic daily profile
/ephemeris/agro/daily
Returns a complete Maria Thun biodynamic day profile for a given date and location.
Includes:
- Moon sign, element, latitude velocity (ascending/descending)
- Thun day type (root / leaf / flower / fruit) with quality score (0–100)
- Aspect modifiers with explained score impacts (Saturn, Jupiter, Mars, Node)
- Activity recommendations (favorable / unfavorable / optimal tasks)
- Void-of-course window (active status + next window)
- Lunar phase + illumination
- Sunrise, sunset, moonrise, moonset (topocentric, ±1s precision)
Zodiac: Always tropical for Thun classification (per Thun methodology).
Ephemeris: DE440.
🤖 AI-optimized output available — add format=llm to reduce payload ~70%.
API key or signed-in accountStatus: live
Parameters
latqueryRequired
Observer latitude (WGS84, degrees)
Example: -90
lonqueryRequired
Observer longitude (WGS84, degrees)
Example: -180
datequeryRequired
Date as YYYY-MM-DD
Example: 2026-03-15
tzquery
IANA timezone identifier
Example: Australia/Sydney
elev_mquery
Observer elevation in metres
Example: 0
formatquery
Output format
Example: json
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/agro/daily?lat=-90&lon=-180&date=2026-03-15"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200AgroDailyResponse
Successful Response
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Void of Course Moon
/ephemeris/agro/void-of-course
Returns the current Void of Course (VoC) Moon window for a given Julian Day.
Method 3: scans backward from the Moon's next sign ingress to find the last
major Ptolemaic aspect (conjunction, sextile, square, trine, opposition) to
a traditional planet. The VoC period runs from that aspect until the ingress.
API key or signed-in accountStatus: live
Parameters
jdqueryRequired
Julian Day (UT1)
Example: 2451545
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/agro/void-of-course?jd=2451545"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200VoCData
Successful Response
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
▶
tidal
Calculate tidal forces and lunar coastal influences. 1 unit per request.
Astronomical tidal forcing — the gravitational pull of the Moon and Sun on Earth's oceans. Returns tidal potential values for any date and location, useful for maritime planning, coastal research, or deep-time paleoclimate studies.
GET1 call / requestExplorer
Astronomical Tidal Forcing
/tidal/forcing
Calculate astronomical gravitational forcing potential (spring/neap, perigee, etc) for a specific location.
API key or signed-in accountStatus: live
Parameters
latqueryRequired
Observer latitude
Example: -90
lonqueryRequired
Observer longitude
Example: -180
datequery
Date in YYYY-MM-DD format
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/tidal/forcing?lat=-90&lon=-180"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200TidalForcingResponse
Tidal forcing metrics and indices
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Astronomical Tidal Forcing (Deep Time)
/tidal/forcing/deep-time
Calculate astronomical gravitational forcing for dates outside the standard Gregorian calendar range using DE441.
API key or signed-in accountStatus: live
Parameters
latqueryRequired
Observer latitude
Example: -90
lonqueryRequired
Observer longitude
Example: -180
jdqueryRequired
Julian Day
Example: 1
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/tidal/forcing/deep-time?lat=-90&lon=-180&jd=1"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200TidalForcingResponse
Tidal forcing metrics and indices
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
503ErrorResponse
DE441 ephemeris not loaded in engine
▶
venus-cycles
Explore the elegant dance of Venus. Synodic cycle analysis and Star Points. 2 units per request.
Track the Venus cycle — the planet's 8-year pattern of conjunctions with the Sun that traces a five-pointed star in the sky. Returns station dates, elongation points, synodic phases, and the complete star-point pattern.
POST1 call / requestExplorer
Compute Venus Star Points
/ephemeris/venus-star-points
Compute the five Venus Star Point events (conjunctions of Venus and Sun around birth). Returns a list of five ConjunctionEvent objects: three occurring before birth and two after. Includes extended metadata such as zodiac dignity, visibility phase, and combustion status. 🤖 AI-optimized output available — add format=llm to reduce payload ~60%.
Mark the turning of the wheel. Cross-quarter days, exact moon phases, and lunar standstills. 2 units per request.
Astronomical calendar events. Get exact dates for solstices, equinoxes, cross-quarter days (midpoints between solstices and equinoxes), Moon phase dates, and lunar standstill status — useful for event apps and seasonal features.
GET10 calls / requestExplorer
Wheel of the Year — True Astronomical Dates
/calendar/astrology/cross-quarter
Returns the 8 Wheel of the Year events (4 cross-quarters + 4 cardinal points) calculated using true apparent solar longitude from JPL DE440. Cross-quarter dates are the true midpoints between solstices and equinoxes, NOT the traditional Gregorian approximations. 🤖 AI-optimized output available — add format=llm to reduce payload ~45%.
API key or signed-in accountStatus: live
Parameters
yearqueryRequired
Calendar year (Gregorian). Standard range: 1550–2650 (DE440). Deep-time: -13000–17000 (DE441, paid tier only).
Example: 2025
formatquery
Response format: json | llm.
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/calendar/astrology/cross-quarter?year=2025"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200CrossQuarterResponse
8 Wheel of the Year events in chronological order
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET10 calls / requestExplorer
Lunar Standstill — 18.6-Year Nodal Cycle Status
/calendar/astrology/lunar-standstill
Returns the current state of the 18.6-year lunar nodal cycle. Identifies Major Standstill (Moon reaches ±28.6° declination) and Minor Standstill (Moon limited to ±18.3°) epochs. The most recent Major Standstill is circa 2025.4.
API key or signed-in accountStatus: live
Parameters
datequery
Date in YYYY-MM-DD format.
Example: string
jdquery
Julian Day.
Example: 1
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/calendar/astrology/lunar-standstill"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200LunarStandstillResponse
Nodal cycle status and next standstill dates
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET10 calls / requestExplorer
8-Phase Lunar Classification + Next Principal Phases
/calendar/astrology/moon-phases
Returns the current 8-phase lunar phase classification (not just 4), illumination fraction, Moon age in hours, and the next 4 principal phase moments (New, First Quarter, Full, Third Quarter). 🤖 AI-optimized output available — add format=llm to reduce payload ~45%.
API key or signed-in accountStatus: live
Parameters
datequery
Date in YYYY-MM-DD format. Mutually exclusive with jd.
Example: string
jdquery
Julian Day. Mutually exclusive with date.
Example: 1
formatquery
Response format: json | llm.
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/calendar/astrology/moon-phases"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200MoonPhasesResponse
Current phase and upcoming principal phases
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
▶
lunar
Track the Moon's journey. Phases, void-of-course windows, and exact lunar ingresses. 1 unit per request.
Everything about the Moon right now. Get the current Moon sign, illumination percentage, phase name, void-of-course status (when the Moon makes no more major aspects before changing signs), and upcoming sign changes.
GET1 call / requestExplorer
Get current Moon aspects
/ephemeris/moon/aspects
Returns all current Moon aspects to traditional planets with applying/separating classification.
Performance: 15-30ms
Aspect Classification:
- Applying: Moon approaching exact aspect (energies building)
- Separating: Moon departing from exact aspect (energies waning)
- Classification based on Moon vs planet speeds (Moon moves ~13°/day, faster than any planet)
Orb System: Fixed traditional orbs (no custom orbs in v1)
- Major aspects: Conjunction, Opposition, Square, Trine, Sextile
- Minor aspects: Semi-sextile, Quincunx (optional via include_minor parameter)
Planets Checked: Sun, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto
Use Cases:
- "What aspects is the Moon making right now?"
- Moon aspect tracking for timing decisions
- Lunar aspect calendars
- Real-time lunar energy awareness
Example:
API key or signed-in accountStatus: live
Parameters
datetimequeryRequired
ISO 8601 datetime
Example: 2025-12-11T12:00:00Z
zodiac_modequery
Zodiac mode: 'tropical' or 'sidereal'
Example: tropical
include_minorquery
Include minor aspects (semi-sextile, quincunx)
Example: false
formatquery
Response format: json | llm.
Example: json
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/moon/aspects?datetime=2025-12-11T12%3A00%3A00Z"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Returns all Moon sign ingress events within a date range.
Moon Ingress Frequency: ~13 ingresses per month (Moon changes signs every ~2.5 days)
Performance: <5ms (cached), 50-100ms (cache miss)
Cache is pre-warmed for ±3 months on startup and refreshed daily at 00:01 UTC.
Cache Strategy:
- Tropical and sidereal ingresses cached separately (different times due to ~24° ayanamsa offset)
- Redis backend with 30-day TTL
- Rolling 3-month window maintained automatically
- Graceful fallback to live calculation if cache miss
- Startup health check reports cache status
Use Cases:
- Monthly lunar calendars
- "Best days for haircuts" timing apps
- Moon sign tracking applications
- Gardening/manifestation by Moon sign
- Electional astrology lookups
Rate Limiting: Max 90-day range per query to prevent abuse.
Example:
API key or signed-in accountStatus: live
Parameters
start_datequeryRequired
Range start date (ISO 8601 format)
Example: 2025-12-01T00:00:00Z
end_datequeryRequired
Range end date (ISO 8601 format, max 90 days from start)
Example: 2025-12-31T23:59:59Z
zodiac_modequery
Zodiac mode: 'tropical' or 'sidereal'
Example: tropical
formatquery
Response format: json | llm.
Example: json
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/moon/ingresses?start_date=2025-12-01T00%3A00%3A00Z&end_date=2025-12-31T23%3A59%3A59Z"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Returns Void of Course Moon status for a specific datetime using Method 3 definition.
Void of Course (VoC) Definition:
Moon is VoC when it makes no major aspects (conjunction, opposition, square, trine, sextile)
to traditional planets (Sun through Pluto) before changing zodiac signs.
Method 3 Logic:
- VoC period cannot start before Moon's last sign ingress
- Searches backwards from next ingress for last major aspect (COQTS)
- If no aspects found, VoC starts at previous ingress (calendar-accurate)
- Uses fixed traditional orbs (no custom orbs in v1)
Performance: 20-50ms (aspect search + ingress calculation)
Use Cases:
- Electional astrology: "Is now a good time to sign contracts?"
- Daily VoC calendars for timing decisions
- Timing-sensitive decision support tools
Example:
API key or signed-in accountStatus: live
Parameters
datetimequeryRequired
ISO 8601 datetime (e.g., '2025-12-11T12:00:00Z')
Example: 2025-12-11T12:00:00Z
zodiac_modequery
Zodiac mode: 'tropical' or 'sidereal'
Example: tropical
formatquery
Response format: json | llm.
Example: json
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/ephemeris/moon/void-of-course?datetime=2025-12-11T12%3A00%3A00Z"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Geocoding and timezone resolution to help you locate your charts accurately. 1 unit per request.
Turn a place name into coordinates, or coordinates into a place name, and resolve the correct timezone. These utility endpoints handle the geography side of chart calculations so you don't have to.
GET1 call / requestExplorer
Search for locations by name
/location/autocomplete
Returns location suggestions with coordinates and timezone for typeahead search. Results are cached according to backend cache configuration.
API key or signed-in accountStatus: live
Parameters
queryqueryRequired
Search query (city name, address, etc.)
Example: San Francisco
limitquery
Maximum number of suggestions to return
Example: 5
typesquery
Place types: place (cities), address, poi
Example: place
countryquery
Optional ISO 3166-1 alpha-2 country code (e.g., US, GB) used to bias ranking toward that country. Boost, not filter: results in other countries remain reachable.
Example: string
regionquery
Optional admin1 (state/province/region) qualifier used to bias ranking. Accepts a full name ("Michigan", "Quebec"), an ASCII name, or a GeoNames admin1 code ("MI"). Boost, not filter.
Example: string
admin1query
Alias for region: admin1 (state/province) qualifier used to bias ranking. region takes precedence if both are supplied.
Example: string
nearquery
Optional "lat,lon" proximity hint (e.g., "37.77,-122.42") used to bias ranking toward nearby places. Boost, not filter.
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/location/autocomplete?query=San+Francisco"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Convert latitude/longitude to a human-readable location with timezone.
API key or signed-in accountStatus: live
Parameters
latqueryRequired
Latitude in decimal degrees
Example: 40.7128
lngqueryRequired
Longitude in decimal degrees
Example: -74.006
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/location/reverse?lat=40.7128&lng=-74.006"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200ReverseGeocodeResponse
Successful Response
400
Bad Request - Invalid parameters
422HTTPValidationError
Validation Error
503
Service Unavailable - Geocoding provider down
Example Success Response
{
"city": "New York",
"country": "United States",
"country_code": "US",
"display_name": "New York, New York, United States",
"latitude": 40.7128,
"longitude": -74.006,
"region": "New York",
"timezone": "America/New_York"
}
POST1 call / requestExplorer
Resolve IANA timezone from coordinates
/timezone/lookup
Return the IANA timezone for the provided coordinates.
If no timezone can be confidently determined (e.g., mid-ocean or invalid
inputs), the endpoint falls back to UTC and marks fallback=true.
The underlying lookup is cached within the core tools.
Return the timezone and UTC offset for the provided coordinates and instant.
- Resolves an IANA timezone from the coordinates
- Applies the timezone's historical/DST rules at the given instant
- Returns offset in seconds/hours, a formatted string, and a DST flag
Explore our extensive reference catalogs. See all supported planets, asteroids, fixed stars, and star groups available for calculation. Free — not metered.
Browse the lists of celestial bodies, fixed stars, house systems, and other options that OpenEphemeris supports. Useful for building dropdown menus, validating inputs, or discovering what the API can calculate.
GETFreeExplorer
Catalog of supported natal bodies
/catalogs/bodies
Catalog-driven identifiers for selectable natal bodies (planets, nodes, Lilith points, major asteroids). This surface is intended for commercial clients and UIs.
API key or signed-in accountStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/catalogs/bodies"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200CatalogBodiesResponse
Successful Response
GETFreeExplorer
Catalog of fixed stars (paginated)
/catalogs/fixed-stars
Returns fixed stars discoverable via the built-in star catalog when available, falling back to the built-in registry for core stars.
API key or signed-in accountStatus: live
Parameters
limitquery
Page size
Example: 100
offsetquery
Offset into the full list
Example: 0
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/catalogs/fixed-stars"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200CatalogFixedStarsResponse
Successful Response
422HTTPValidationError
Validation Error
GETFreeExplorer
Catalog of fixed star group identifiers
/catalogs/fixed-stars/groups
No description provided yet.
API key or signed-in accountStatus: live
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/catalogs/fixed-stars/groups"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200CatalogFixedStarGroupsResponse
Successful Response
▶
Time Conversion
Reference operations in this category.
Convert between time formats. Translate everyday dates into Julian Day numbers (used internally for astronomical calculations), get the current sidereal time for a location, compute sunrise and sunset, and more.
GET1 call / requestExplorer
Delta T (TT-UT1) calculation
/time/delta-t
Provide Delta T (TT - UT1) for any historical/future epoch.
API key or signed-in accountStatus: live
Parameters
datequeryRequired
Date (YYYY-MM-DD)
Example: 2026-03-15
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/time/delta-t?date=2026-03-15"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200DeltaTResponse
Successful Response
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Equation of Time
/time/equation-of-time
Compute the Equation of Time (sundial correction) in minutes for a given JD.
API key or signed-in accountStatus: live
Parameters
jdqueryRequired
Julian Day (Terrestrial Time)
Example: 1
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/time/equation-of-time?jd=1"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200EquationOfTimeResponse
Successful Response
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
POST1 call / requestExplorer
Calendar conversion to Julian Day Number
/time/julian-day
Bridge between civil calendars and astronomical time. Handles BCE dates.
Compute Local Apparent Sidereal Time (LAST) and Greenwich Mean Sidereal Time (GMST).
API key or signed-in accountStatus: live
Parameters
datequeryRequired
Date (YYYY-MM-DD) or Julian Day (jd:2451545.0)
Example: 2026-03-15
longitudequery
Observer longitude (positive East)
Example: 0
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/time/sidereal?date=2026-03-15"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200SiderealTimeResponse
Successful Response
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
GET1 call / requestExplorer
Solar Events (Sunrise/Sunset/Transit)
/time/solar-event
Compute exact times for sunrise, sunset, and solar transit for a given day and location.
API key or signed-in accountStatus: live
Parameters
datequeryRequired
Date (YYYY-MM-DD)
Example: 2026-03-20
latitudequeryRequired
Observer latitude
Example: -90
longitudequeryRequired
Observer longitude
Example: -180
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/time/solar-event?date=2026-03-20&latitude=-90&longitude=-180"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200SolarEventResponse
Successful Response
400ErrorResponse
Bad Request
422HTTPValidationError
Validation Error
500ErrorResponse
Internal Server Error
▶
electional
Reference operations in this category.
Find the best moment for a specific activity. Electional astrology analyzes upcoming planetary conditions to suggest favorable windows for launching, signing, traveling, or other time-sensitive decisions. Returns moment quality scores and recommended time ranges.
GET5 calls / requestPro
Active Aspect Search
/electional/aspect-search
List all applying and separating aspects active at a given moment, enriched with quality scores. Useful for identifying the astrological texture of a chosen time.
API key or signed-in accountStatus: live
Parameters
datequery
Date/datetime to check (ISO 8601 or YYYY-MM-DD). Defaults to now.
Example: string
jdquery
Julian Day alternative to date.
Example: 1
max_orbquery
Maximum orb in degrees (default 8.0).
Example: 8
aspectsquery
Comma-sep aspect filter: conjunction,sextile,square,trine,opposition. Defaults to all.
Example: string
formatquery
Output format: json (default) or llm.
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/electional/aspect-search"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200ElectionalAspectSearchResponse
Active aspects
422HTTPValidationError
Validation Error
GET5 calls / requestPro
Find Electional Window
/electional/find-window
Search a date range for the highest-scoring astrological timing windows. Evaluates moments in 1-hour steps, applies optional constraints (VOC avoidance, retrograde avoidance, lunar phase filter), and returns the top N ranked windows.
API key or signed-in accountStatus: live
Parameters
start_datequery
Start of search range (ISO 8601 or YYYY-MM-DD). Defaults to today.
Example: string
end_datequery
End of search range. Defaults to 30 days after start.
Example: string
latitudequery
Observer latitude (decimal degrees).
Example: 1
longitudequery
Observer longitude (decimal degrees).
Example: 1
max_resultsquery
Maximum number of windows to return (1-20).
Example: 5
avoid_vocquery
Exclude void-of-course Moon periods.
Example: true
lunar_phasequery
Preferred lunar phase: waxing, waning, new, full, or any.
Example: any
avoid_retrogradequery
Comma-separated planet names to exclude when retrograde, e.g. Mercury,Mars.
Example: string
formatquery
Output format: json (default) or llm.
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/electional/find-window"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200ElectionalWindowResponse
Window search results
422HTTPValidationError
Validation Error
GET5 calls / requestPro
Electional Moment Analysis
/electional/moment-analysis
Score and analyse the astrological quality of a specific moment. Returns a 0-100 composite viability score derived from essential dignities, aspect quality, sect alignment, and void-of-course status.
API key or signed-in accountStatus: live
Parameters
datequery
Date/datetime to analyse (ISO 8601 or YYYY-MM-DD). Defaults to now.
Example: string
jdquery
Julian Day alternative to date. date takes priority.
Example: 1
latitudequery
Observer latitude — required for sect and VoC.
Example: 1
longitudequery
Observer longitude (decimal degrees).
Example: 1
formatquery
Output format: json (default) or llm.
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/electional/moment-analysis"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"
Responses
200ElectionalMomentResponse
Moment analysis
422HTTPValidationError
Validation Error
GET5 calls / requestPro
Planetary Station Tracker
/electional/station-tracker
Find all retrograde and direct station dates for the specified planets in a given date range. Stations are moments when a planet appears stationary before changing direction.
API key or signed-in accountStatus: live
Parameters
start_datequery
Start date (ISO 8601 or YYYY-MM-DD). Defaults to today.
Example: string
end_datequery
End date. Defaults to 90 days after start.
Example: string
planetsquery
Comma-separated planet names. Defaults to all 7 classical planets.
Example: string
formatquery
Output format: json (default) or llm.
Example: string
Copy-Paste Starter
curl -X GET "https://api.openephemeris.com/electional/station-tracker"
-H "X-OpenEphemeris-API-Key: YOUR_API_KEY"
-H "Content-Type: application/json"