asterwise-python
The official Python library for Asterwise — Vedic + Western astrology, numerology, tarot, crystals, and dreams. 121 endpoints, generated from the API's OpenAPI document so the types match what the server sends. Every position is checked against NASA JPL Horizons, median 0.050 arcseconds over 80 positions from 1950 to 2050. Compared row by row with seven other astrology APIs, every claim sourced, at asterwise.com/compare.
Documentation · API Reference · Pricing · MCP server · Postman collection
Installation
pip install asterwise
Quickstart
import asterwise
from asterwise.api.astrology_api import AstrologyApi
configuration = asterwise.Configuration(
host="https://api.asterwise.com",
access_token="YOUR_API_KEY",
)
with asterwise.ApiClient(configuration) as client:
api = AstrologyApi(client)
result = api.natal_chart(
asterwise.NatalRequest(
date="1985-11-12",
time="06:45",
location="Mumbai, India",
ayanamsa="lahiri",
)
)
print(result)
Get a free API key at asterwise.com.
What you can build
| Domain | Operations |
|---|---|
| Vedic astrology | 40 |
| Matchmaking | 5 |
| Western astrology | 17 |
| Horoscope | 8 |
| Numerology | 24 |
| KP + Lal Kitab | 5 |
| Tarot | 9 |
| Crystals & dreams | 7 |
| Utilities | 2 |
126 typed SDK methods across 13 API classes covering 121 REST endpoints (5 endpoints keep a deprecated GET method next to the POST one).
What makes Asterwise different
- Classical interpretation text alongside the calculations on chart endpoints (natal chart, dasha, yogas, doshas)
- 5-level Vimshottari Dasha (Maha → Antar → Pratyantar → Sookshma → Prana) — most APIs return two
- Rajju and Vedha as hard vetoes in matchmaking — not just point scores
- HMAC-signed responses for auditability
- Panchanga as printed panchangs show it: every tithi, nakshatra, yoga and karana of the day with start and end times, the festival and vrat calendar, and muhurta search with exact ISO times
- Typed responses: every method returns a model generated from the OpenAPI document (
.to_dict()gives a plain dict) - MCP server with 104 tools for Claude and Cursor integration
Examples
from datetime import date
from asterwise.api.western_astrology_api import WesternAstrologyApi
from asterwise.api.numerology_api import NumerologyApi
from asterwise.api.tarot_api import TarotApi
with asterwise.ApiClient(configuration) as client:
western = WesternAstrologyApi(client)
chart = western.western_natal_chart(
asterwise.WesternNatalRequest(
date="1985-11-12",
time="06:45",
location="Mumbai, India",
)
)
numerology = NumerologyApi(client)
path = numerology.life_path_post(asterwise.LifePathRequest(date=date(1985, 11, 12)))
tarot = TarotApi(client)
spread = tarot.tarot_three_card(
asterwise.SpreadRequest(question="What should I focus on this month?")
)
Requirements
Python 3.10+. An API key from asterwise.com.
Documentation
Full API reference: docs.asterwise.com
Development
Regenerate from https://api.asterwise.com/openapi-sdk.json (see asterwise-api/_docs/SDK_CONTRACT.md).
Requirements: Node.js/npm (for npx), Java 11+ for OpenAPI Generator.
bash scripts/generate.sh
Releasing: bump version in pyproject.toml (the only place it is set) → bash scripts/generate.sh (writes that version into __version__ and the User-Agent) → update CHANGELOG.md → pytest → commit → push a python-v<version> tag. The publish workflow checks the tag against pyproject.toml, runs the tests, builds, runs twine check and uploads to PyPI.
Support
License
MIT. See LICENSE.
Metadata
Release files for asterwise 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| asterwise-0.11.0.tar.gz | 350.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| asterwise-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / asterwise-0.11.0.tar.gz
| Download URL | asterwise-0.11.0.tar.gz |
|---|---|
| Size | 350.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
db816d629cd13fe5d7b08a0c8b7054e1e346d95cb3c4dffe885551d79d5c71b8
|
|
BLAKE2b-256 checksum How to use checksums |
a02c752e1eb8bac5bbca99b272f0634cfe5a06466a156379745909b099e92362
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / asterwise-0.11.0-py3-none-any.whl
| Download URL | asterwise-0.11.0-py3-none-any.whl |
|---|---|
| Size | 916.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0820a732e2ed11d68b97d655041849b71fce4463dee9c38b79273c3204760e24
|
|
BLAKE2b-256 checksum How to use checksums |
a74bde36b67ce06bba4f816e185edcc6463a2dfff7e58d0dd2f4011b92a89347
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency log