๐ฎโก High-fidelity Human Design calculation engine โ birth-chart analytics, BodyGraph visualization, and Group/Penta dynamics via a FastAPI service.
Human Design API is a high-performance Python service that powers modern Human Design applications. It serves as a comprehensive backend engine that:
Whether you are building a mobile app, a professional dashboard, or a personal research tool, this API provides the rigorous astrological data and visual assets you need โ all containerized for easy deployment.
POST /v2/calculate with semantic enrichment, Dream Rave, and Global Cycle support./analyze/penta endpoint (Sovereign Standard).POST /analyze/maia-penta endpoint for professional composite + group dynamics in one request.TimezoneFinder singleton and geocoding bypass for 100ร lower latency.latitude/longitude to bypass geocoding for maximum precision and speed.pyswisseph for Swiss Ephemeris accuracy; geopy/timezonefinder for location and timezone resolution./bodygraph.| Feature | Legacy V1 | Flagship V2 |
|---|---|---|
| Request Type | GET (Limited) | POST (Scalable JSON) |
| Performance | Standard | High (Coordinate Bypass) |
| Output Control | Fixed Response | Selective (Include/Exclude) |
| Dream Rave | โ No | โ Included |
| Global Cycles | โ No | โ Included |
| Semantic Layer | Basic | โ Deep Enrichment |
| Variables/PHS | Partial | โ Full Schema Support |
docker-compose --version.git clone https://github.com/dturkuler/humandesign_api.git
cd humandesign_api
cp .env_example .env # then set HD_API_TOKEN
docker-compose up --build -d
The API is then accessible at http://localhost:9021. Verify with docker ps (look for the humandesignapi container).
pip install -e .
uvicorn humandesign.api:app --host 0.0.0.0 --port 9021
Note
The `.env` file stores your API token (`HD_API_TOKEN`). Keep it secret โ it is gitignored.
The API exposes calculation, visualization, and analysis endpoints. A minimal V2 request:
curl -X POST "http://localhost:9021/v2/calculate" \
-H "Authorization: Bearer your_secret_token_here" \
-H "Content-Type: application/json" \
-d '{"year": 1990, "month": 7, "day": 15, "hour": 14, "minute": 30, "place": "London, UK"}'
GET /calculateCalculates comprehensive Human Design features from birth information.
| Name | Type | Description | Required |
|---|---|---|---|
year | integer | Birth year (e.g., 1990) | Yes |
month | integer | Birth month (e.g., 7) | Yes |
day | integer | Birth day (e.g., 15) | Yes |
hour | integer | Birth hour (24h, e.g., 14) | Yes |
minute | integer | Birth minute (e.g., 30) | Yes |
second | integer | Birth second (default 0) | No |
place | string | Birth place (e.g., London, UK) | Yes |
Example Response (condensed):
{
"general": {
"birth_date": "1990-07-15T13:30:00Z",
"age": 35,
"energy_type": "Projector",
"strategy": "Wait for the Invitation",
"inner_authority": "Solar Plexus",
"inc_cross": "The Right Angle Cross of the Maya (2)",
"profile": "3/5: Martyr Heretic",
"definition": "Split Definition"
},
"gates": { },
"channels": { "Channels": [ { "channel": "30/41: The Channel of Recognition..." } ] }
}
GET /bodygraphGenerates a visual BodyGraph chart image from birth information. Accepts the same birth parameters plus:
| Name | Type | Description | Default |
|---|---|---|---|
fmt | string | Image format: png, svg, jpg, jpeg | png |
curl -X GET "http://localhost:9021/bodygraph?year=1990&month=7&day=15&hour=14&minute=30&place=London%2C%20UK&fmt=png" \
-H "Authorization: Bearer your_secret_token_here" -o bodygraph.png
GET /transits/dailyCalculates the "Weather of the Day" via a composite of birth data and current planetary transit. Requires birth data plus transit_year, transit_month, transit_day.
curl -X GET "http://localhost:9021/transits/daily?year=1990&month=7&day=15&hour=14&minute=30&place=London%2C%20UK&transit_year=2025&transit_month=12&transit_day=22" \
-H "Authorization: Bearer your_secret_token_here"
GET /transits/solar_returnCalculates the "Yearly Theme" (Solar Return). Requires birth data plus sr_year_offset (years after birth, default 0).
curl -X GET "http://localhost:9021/transits/solar_return?year=1990&month=7&day=15&hour=14&minute=30&place=London%2C%20UK&sr_year_offset=0" \
-H "Authorization: Bearer your_secret_token_here"
POST /analyze/compositeDetailed pairwise composite analysis for exactly two people.
{
"person1": { "place": "Berlin, Germany", "year": 1985, "month": 6, "day": 15, "hour": 14, "minute": 30 },
"person2": { "place": "Munich, Germany", "year": 1988, "month": 11, "day": 22, "hour": 9, "minute": 15 }
}
curl -X POST "http://localhost:9021/analyze/composite" \
-H "Authorization: Bearer your_secret_token_here" \
-H "Content-Type: application/json" -d @payload.json
Response:
{
"participants": ["person1", "person2"],
"new_channels": [ { "gate": 59, "ch_gate": 6, "meaning": ["Mating", "A d. focused on reproduction"] } ],
"duplicated_channels": [],
"new_chakras": ["SolarPlexus"],
"composite_chakras": ["Ajna", "Throat", "G_Center", "SolarPlexus", "Sacral", "Root"]
}
POST /analyze/compmatrixComposite Human Design matrix (Relationship Mechanics) for two or more people.
curl -X POST "http://localhost:9021/analyze/compmatrix" \
-H "Authorization: Bearer your_secret_token_here" \
-H "Content-Type: application/json" -d @payload.json
POST /analyze/pentaGroup Dynamics (Penta) using the Sovereign Standard (consultant-level interpretation).
{
"group_type": "family",
"participants": {
"Person A": { "place": "City, Country", "year": 1985, "month": 6, "day": 15, "hour": 14, "minute": 30 },
"Person B": { }
}
}
curl -X POST "http://localhost:9021/analyze/penta" \
-H "Authorization: Bearer your_secret_token_here" \
-H "Content-Type: application/json" -d @penta_v2_payload.json
.
โโโ .env_example
โโโ CHANGELOG.md
โโโ LICENSE
โโโ README.md
โโโ docker-compose.yml
โโโ Dockerfile
โโโ openapi.yaml
โโโ pyproject.toml
โโโ src/
โโโ humandesign/
โโโ api.py # FastAPI Application Entry
โโโ data/ # Static layout and hd data
โโโ features/ # Core Rave Engine logic
โโโ routers/ # API Route definitions
โโโ schemas/ # Pydantic validation models
โโโ services/ # Business logic services
โโโ utils/ # Utilities (Astrology, Versioning, etc.)
For comprehensive details, industrial-standard references, and runnable examples, see API_DOCUMENTATION.mdโ .
The project ships an OpenAPI 3.0 specification (openapi.yaml) describing endpoints, parameters, responses, and schemas.
Import โ drag-drop openapi.yaml; a pre-configured collection is generated.openapi-generator for Python, JavaScript, Java, and more.This project is dual-licensed:
| Tier | Price | API Access | Credits / mo | Target Feature Set |
|---|---|---|---|---|
| Hobbyist | $0 | V1 Only | 50 | Legacy Calculations |
| Startup | $49/mo | V1 + V2 | 20,000 | V2 Flagship + Interpretation |
| Business | $149/mo | V1 + V2 | 150,000 | Penta, Matrix, White-Label |
| Enterprise | $499+/mo | V1 + V2 | Custom | Unlimited Use, SLA, Support |
Commercial self-hosted licenses start at $1,000/year. Contact: [email protected]โ | https://devaible.comโ
Contributions are welcome. Please open an issue or pull request on GitHubโ . For development setup, clone the repo, create a .env from .env_example, and run docker-compose up --build -d.
Documentation generated for Human Design API v4.0.2
/composite), the serialization helper (get_incarnation_cross_map, used by V1 /calculate), and the V2 router โ closing the remaining paths missed by v4.0.1. Root cause: IC_CROSS_TYP emits "JXP" while CROSS_DB keys the entry "JC"; the lookup now normalizes JXP -> JC via a single hd_constants.normalize_cross_typ() helper used by all three code paths. Adds tests/test_inc_cross_jxp_fix.py. (See issue #1.)Content type
Image
Digest
sha256:d3360e794โฆ
Size
206.9 MB
Last updated
about 2 months ago
docker pull dturkuler/humandesign_api