New Numerology API

Accuracy

Astrology API accuracy, tested against NASA JPL and Swiss Ephemeris

We test the astrology API against NASA JPL Horizons and Swiss Ephemeris. The figures are in arc seconds (″). One arc second is 1/3,600 of a degree, and each zodiac sign is 30 degrees wide. For each one you see the limit the tests allow and the largest difference they found.

Checked against NASA JPL Horizons on , on 25,571 positions. Checked against Swiss Ephemeris 2.10.03 on , on 2,000 random charts. The 12 hard charts were last run on .

© API for Astrology (apiforastrology.com). "Accuracy precision zoom". All rights reserved. Not to be copied or reused.Zooming in on one planet position360°The full zodiac: 12 signsone sign30°One sign: 30 degrees0°30°one degree1°One degree: 60 arc minutes0′60′one arc minute1′One arc minute: 60 arc seconds0″60″one arc second1″One arc second: 1/3,600 of a degree0″1″Swiss EphemerisOur API0.16″ apartThe Moon: the biggest gap foundThe tests allow up to 1.5″
  • Lahiri ayanamsa

    Within 0.001″

    Largest difference found: 0.0006″

    Checked on 8 dates from Jan 1, 1900 to Jan 1, 2100.

  • Planet positions

    Within 1.5″

    Largest difference found: 0.16″, for the Moon

    Checked on the Sun, the Moon and the five planets, on 11 test charts from 1855 to 2026.

  • Rising sign (ascendant)

    Within 5″

    Largest difference found: under 0.01″

    Checked on the same 11 test charts from 1855 to 2026.

Against NASA JPL Horizons, at the same moment

JPL Horizons is NASA's own service for where the Sun, the Moon and the planets are. We compared 25,571 positions from the API with it, at the same moment. They cover the Sun, the Moon and five planets, every 30 days from 1850 to 2149. This checks the planet data on its own. The charts below check the whole path from a birth clock time.

  • Sun and planets

    Within 0.001″

  • Moon

    Within 0.011″

    Median gap: 0.0025″

  • Positions compared

    25,571

    1850 to 2149

The Moon's gap grows toward 1850 and 2149, where two editions of NASA's Moon data differ slightly. The check runs as an automated test, so a change that moves a planet fails it. Checked on Nov 2, 2026.

Check it yourself: download every position compared (JSON): NASA's value, ours and the gap, for each date. To compare, ask JPL Horizons for the same body, date and quantity. Choose astrometric RA and Dec, seen from Earth's center. RA and Dec are the sky's version of longitude and latitude.

From a birth clock time, on 2,000 random charts

We cast 2,000 charts at random moments from 1850 to 2026, from their clock time. The places run from 60° south to 60° north. Then we compared every position with Swiss Ephemeris. This is the whole path an app uses, including delta T. Delta T is the small, changing gap between atomic clock time and Earth's spin.

  • Sun and planets

    Within 0.06″

  • Moon

    Within 0.41″

    Median gap: 0.013″

  • Rahu and Ketu (true node)

    Within 0.12″

  • Rising sign

    Within 0.004″

The Moon's largest gap is in the late 1900s, where the two programs read delta T from different tables. The check runs as an automated test. Checked on Nov 2, 2026.

More test charts

We cast the test chart and 11 more from their local clock time and time zone. Then we compared every planet and the rising sign with Swiss Ephemeris 2.10.03. They cover clock changes, odd time zones, the far north and south, and both ends of the date range. Checked on Oct 27, 2026.

Place and timeWhy it is hardLargest planet gapRising sign gap
New Delhi, Aug 22, 2026, noonThe test chart0.13″under 0.01″
New York, Mar 8, 2026, 3:30 AMJust after the clocks went forward0.13″under 0.01″
New York, Nov 1, 2026, 3:30 AMJust after the clocks went back0.16″under 0.01″
Kathmandu, Aug 15, 1990, 10:30 AMUTC+5:45under 0.01″under 0.01″
Adelaide, Jan 15, 2000, 6:15 AMUTC+10:30 in summer timeunder 0.01″under 0.01″
Tromsø, Norway, Jun 21, 1985, 11 PMMidnight sun, 69.6° north0.01″under 0.01″
Reykjavik, Dec 21, 1999, noon64.1° north in winterunder 0.01″under 0.01″
Buenos Aires, Apr 10, 1975, 7:45 AMSouthern hemisphere0.01″under 0.01″
Los Angeles, Jul 20, 1969, 1:17 PMWest of Greenwich0.13″under 0.01″
Auckland, Jun 1, 2010, noonNext to the date line0.03″under 0.01″
London, Jan 1, 1855, midnightNear the first year covered0.06″under 0.01″
Sydney, Dec 31, 2140, 6 PMNear the last year covered10″1.35″
  • From 1855 to 2026, every planet agrees within 0.16″ and the rising sign within 0.01″.
  • In 2140 the Moon is 10″ apart. The cause is the clock, not the planets. No one knows exactly what delta T will be in 2140, so each program uses its own estimate.
  • The time zone came out right on all 12, including both clock-change days. Far in the north, the rising sign is the degree really rising, not the one setting.

Sources: NASA JPL planet data (DE440), Swiss Ephemeris, NASA JPL Horizons

How we test accuracy

  • Two references are used. NASA JPL Horizons, NASA's own planet service, checks the planet data. Swiss Ephemeris, widely used in astrology software, checks charts cast from a birth clock time.
  • The ayanamsa (the zodiac offset) is checked on 8 dates across two centuries. Planets and the rising sign are checked on 2,000 random charts and on the 12 charts above.
  • One of them, New Delhi at noon on Aug 22, 2026, India time, is in our automated tests. The tests run on every code change and fail if a result drifts past a limit.
  • Each limit leaves room for the rounding in the stored reference values.
  • Two of the tests exist because of real bugs we found and fixed. One was a missing correction that moved every planet by about 10 arc seconds. The other was an error that moved only the rising sign. Both are now tested directly.
  • The NASA JPL Horizons check is an automated test too: 25,571 positions, run on every code change.
  • Rahu and Ketu (the true node) are checked too: within 0.12″ on the 2,000 random charts.

Other checks

  • Planetary periods (dashas) add up to 120 years. Every sub-period fits its parent period exactly, date for date.
  • The panchang (Hindu calendar) has parts called tithi, yoga and karana. A tithi is a lunar day, and a karana is half of one. A yoga comes from the Sun and Moon together. Each part stays in its valid range for any position of the Sun and Moon.
  • Coordinates in a local number format, such as 40,7128, are read correctly, and unclear or out-of-range ones are refused.
  • Festival dates were compared with a widely used published calendar, for New Delhi (2023 to 2028) and Beijing (2026). All 161 dates matched.
  • Fasting-day dates were compared with the same calendar. Of 496 dates for New Delhi (2026 to 2028) and Beijing (2026), 495 matched. The one miss is a full moon that ends 57 seconds after sunrise. We count that sunrise, and the calendar does not.
  • Muhurat times were compared with the same calendar's New Delhi pages for 2026 and 2027. They cover buying a vehicle or a property, moving into a home and marriage. All 579 published windows matched within 3 minutes at both ends.

Where the classical texts disagree, the rulebook states which choice the API follows. The measured facts page lists each count with its sample and the day it was measured.

The settings behind every answer

Every endpoint uses these settings. You can change two of them in your request. Pick another of the eight ayanamsas instead of Lahiri, such as KP or Raman. Or pick the mean position of Rahu and Ketu instead of the true one. The ephemeris, JPL DE440s, is NASA's published table of planet positions. GET /v1/meta returns the defaults, so your code can check them too. The conventions page explains each one.

Ayanamsa
Lahiri
Houses
Whole sign
Zodiac
Sidereal (Vedic)
Date range
Jan 1, 1850 to Dec 31, 2149
Ephemeris
JPL DE440s

Check the settings from your code

One call returns the settings above. It needs no birth details.

GET /v1/meta

curl "https://apiforastrology.com/api/astrology/v1/meta" \
  -H "Authorization: Bearer $ASTROLOGY_API_KEY"
Answer (lists cut to two items)200 OK
{
  "ayanamsas": [
    "lahiri",
    "kp",
    "raman"
  ],
  "nodes": [
    "true",
    "mean"
  ],
  "timezones": {
    "accepts": [
      "IANA time zone name, such as \"America/New_York\"",
      "fixed offset from UTC in hours, such as -5 or 5.5"
    ],
    "daylight_saving": "applied. A zone name is looked up in the time zone database for the exact birth moment, so daylight saving time, wartime clock changes and past changes to standard time are all included.",
    "zones": 598,
    "database": "tzdata 2026.4",
    "ambiguous_times": "a local time that happens twice (when clocks go back) or never (when clocks go forward) is rejected, not guessed. Send `timezone_fold` or a numeric offset to say which one you mean."
  },
  "prose": {
    "languages": [
      "en",
      "hi"
    ],
    "details": [
      "standard",
      "expanded"
    ],
    "note": "Language and length are set separately, for example `?lang=hi&detail=expanded`. Each text block reports the language and length it was actually served in. These can differ from what you asked for when a passage is not written yet in that…"
  },
  "names": {
    "languages": [
      "en",
      "hi"
    ],
    "note": "Every `/v1/` endpoint takes `?lang` for the names it returns, such as planets, signs, nakshatras, lunar days, months and festivals. Each translated value comes with its English original in a matching `<field>_en` field; use the English…"
  },
  "house_system": "whole sign",
  "vargas": [
    {
      "varga": "D1",
      "divisions": 1,
      "name": "Rasi",
      "signifies": "the body and life as a whole"
    },
    {
      "varga": "D2",
      "divisions": 2,
      "name": "Hora",
      "signifies": "wealth"
    }
  ],
  "date_range": {
    "from": "1850-01-01",
    "to": "2149-12-31",
    "limited_by": "Dates from 1850 to 2149, the range covered by the NASA JPL planetary data (DE440s) the API uses."
  },
  "ephemeris": "JPL DE440s (NASA/JPL)",
  "accuracy": "checked against Swiss Ephemeris: the ayanamsa agrees within 0.001 arcseconds on 8 dates from 1900 to 2100. We also checked 12 charts. On the 11 dated from 1855 to 2026, the Sun, Moon, Mars, Mercury, Jupiter, Venus and Saturn agree within…",
  "accuracy_engine": {
    "reference": "NASA JPL Horizons",
    "compared": "geocentric positions (astrometric, ICRF) at the same moment",
    "bodies": [
      "Sun",
      "Moon",
      "Mercury"
    ],
    "positions": 25571,
    "from": "1850-01-01",
    "to": "2149-12-31",
    "step_days": 30,
    "planets_arcsec": 0.001,
    "moon_arcsec": 0.011,
    "moon_median_arcsec": 0.0025,
    "checked_on": "2026-11-02"
  },
  "accuracy_clock": {
    "reference": "Swiss Ephemeris 2.10.03",
    "compared": "sidereal positions from a birth clock time",
    "charts": 2000,
    "from": "1850",
    "to": "2026",
    "planets_arcsec": 0.06,
    "moon_arcsec": 0.41,
    "moon_median_arcsec": 0.013,
    "true_node_arcsec": 0.12,
    "ascendant_arcsec": 0.004,
    "checked_on": "2026-11-02"
  }
}

Accuracy questions

All questions
How accurate is the astrology API?

We test it against NASA JPL Horizons and Swiss Ephemeris. On 25,571 positions from 1850 to 2149, the Sun and planets agree with NASA JPL Horizons within 0.001 arc seconds. The Moon agrees within 0.011. On 2,000 random charts from a birth clock time, the planets agree with Swiss Ephemeris within 0.06 arc seconds. The rising sign agrees within 0.004. The tests fail if a result ever drifts past a limit.

Is that accurate enough for a birth chart?

Yes. An arc second is 1/3,600 of a degree, and a sign is 30 degrees wide. A birth time that is off by one minute moves the Moon about 33 arc seconds. It moves the rising sign about 15 arc minutes. So the birth time someone enters matters far more than the calculation. Even the widest planet limit in the tests is 1.5 arc seconds.

What exactly is tested?

The ayanamsa (the zodiac offset) is checked on 8 dates from 1900 to 2100. The Sun, the Moon and five planets are checked against NASA JPL Horizons on 25,571 positions. Planets, Rahu, Ketu and the rising sign are checked on 2,000 random charts, from a birth clock time. There, Rahu and Ketu agree with Swiss Ephemeris within 0.12 arc seconds. The planets and the rising sign are also checked on 11 test charts from 1855 to 2026. On a chart in 2140, the Moon is 10 arc seconds apart. No one knows exactly how Earth's spin will slow by then. The dashas, the panchang ranges and the reading of coordinates have tests of their own.

Do the panchang dates match published calendars?

We compared fasting-day dates with a widely used published calendar. Of 496 dates for New Delhi (2026 to 2028) and Beijing (2026), 495 matched.

Found a result that looks wrong?

Tell us. Send the birth details and the endpoint you called, and we will check it against the rulebook and reply.

Report a wrong result

Astrology API

Check the numbers yourself

Create a free test key and compare any chart with your own software. Or try a request in the API reference first.

Your first answer

John Doe, New York

POST /v1/planets200 OK
  • RisingVirgoHast
  • SunCancerAshlesha
  • MoonTaurusMrigashira
  • MarsAriesKrittika

Real API output. A free test key gets the same answer.

  1. 01

    Test key: 1,000 test calls a month to build with

  2. 02

    Free plan: 2,000 live calls a month, no card needed

  3. 03

    Open rules: every rule is published, so you can check any answer