AstroWay/api v2.325.2 · blog
all systems operational

Swiss Ephemeris: REST API vs pyswisseph (When to Use Which)

pyswisseph vs a REST API for Swiss Ephemeris calculations - C dependencies, data files, licensing and deployment compared, with a decision guide.

Almost every “how do I do astrology in code” answer points at pyswisseph - the Python bindings for the Swiss Ephemeris C library. It’s excellent. But it’s a C extension you compile, data files you ship, and chart logic you write yourself. A REST API removes all three. Here’s an honest comparison so you pick the right one.

pyswisseph exposes the raw Swiss Ephemeris functions: swe_calc_ut, swe_houses, and friends. You get maximum control and offline operation. In return you take on:

  • A C extension. It compiles on install: fine on your laptop, a recurring source of CI and Docker friction (build tools, wheels per platform/arch).
  • Ephemeris data files. For full JPL precision you ship the .se1 files (tens of MB). The built-in Moshier mode avoids them at a small precision cost.
  • The astrology layer. swe_calc_ut returns a longitude. House systems, aspect detection, dignities, chart assembly - you build all of it.
  • Licensing. The Swiss Ephemeris is dual-licensed (AGPL or a paid professional license). If you ship it inside a closed-source product, that’s a question you have to answer.

AstroWay computes positions on its own servers, with no upstream API, and serves them over HTTP:

from astroway import Astroway, BirthData
aw = Astroway(api_key="aw_live_...")
chart = aw.chart.compute(BirthData(
date="1990-07-14", time="14:30:00", timezone_offset=3,
latitude=50.45, longitude=30.52,
))

No compile step, no data files, no house-system code. You add a network round-trip and an API key, and get 865 endpoints (houses, aspects, synastry, transits, Vedic, Human Design) instead of just planet longitudes.

pyswissephREST API
InstallCompiles a C extensionpip install, pure Python client
Data filesShip .se1 for full precisionNone - server-side
Chart logicYou write itEndpoints return it
OfflineYesNo (needs network)
Beyond longitudesBuild yourself865 endpoints
AccuracySwiss EphemerisArc-second, verified against NASA JPL Horizons
  • Use pyswisseph for an offline CLI, a notebook, a desktop app, or when you need the library to run with no network and you’re comfortable owning the data files, the chart code and the license question for your product.
  • Use a REST API for a web app, a serverless function, or any service where you don’t want a C build in your pipeline or ephemeris files in your image - and where you’d rather call synastry or transits than implement them.

Both give arc-second positions. The choice is about what you want to own.

MakSeong · AstroWay

I build the AstroWay API: arc-second astrology math on a clean REST surface, and I write about the dull parts that turn out to matter.

// build with this

Arc-second positions in 4 lines of code.

Free key, no card. 5,000 calls/month before you pay anything.

More from the blog view all posts →

Engineering 2026-06-05

Natal Chart API in TypeScript: SDK + React Example

Compute a natal chart in TypeScript with the AstroWay SDK - typed responses, a React component, and where it beats a local ephemeris library.

Ephemeris 2026-06-05

How Accurate Is the Swiss Ephemeris? Verified Benchmarks

Swiss Ephemeris accuracy in numbers, and how a hosted API measures up: 231 of 231 positions within tolerance against NASA JPL Horizons, a median 0.0013 arcsecond against the swetest reference output, exact house cusps, eclipses within a minute.

Engineering 2026-05-21

Vedic Astrology API: Dashas, Vargas, Panchang & Lal Kitab

AstroWay ships the deepest Vedic coverage among commercial APIs: 10 dasha systems, 16 vargas, Panchang, Lal Kitab, KP, Jaimini. 10K free credits/month.