The Omni Chart API
A free, open endpoint that returns an accurate Human Design, Gene Keys and astrology chart from birth data. Built so an AI assistant can compute a real chart instead of guessing at one.
Why this exists
Ask a language model for your Human Design chart and it will usually give you one. It will often be wrong, and nothing in the answer will tell you so.
That is not a gap in the model's knowledge. Calculating a chart is not a language task. It needs an ephemeris lookup for where the planets actually were, and exact historical timezone resolution for the birth moment, including whether daylight saving was in force in that place on that date. A model cannot do either from memory, so it produces something plausible instead.
This endpoint does the calculation properly and hands back the result. It is free, it needs no key, and it is meant to be called mid-conversation.
Quick start
GET https://omnicharts.app/api/chart?date=1985-03-09&time=14:32&place=Buenos+Aires
Add &format=text for a plain-text version that reads well when quoted. Every response also carries a url field linking to the full interactive chart.
Parameters
| Parameter | Required | Meaning |
|---|---|---|
| date | yes | Birth date as YYYY-MM-DD. Between 1701 and 2199. |
| time | recommended | Birth time as 24 hour HH:MM. Defaults to 12:00, which makes the ascendant, houses and often the profile unreliable. |
| place | yes* | Birthplace, for example Buenos Aires or Rosario, Argentina. Resolved to coordinates and to the UTC offset in force on that date. |
| lat, lon | yes* | Explicit coordinates instead of a place name. Longitude is East positive. |
| offset | with lat/lon | Birthplace UTC offset in hours, signed, for example -3. Required when you send coordinates rather than a place name. |
| zodiac | no | tropical (default) or sidereal. This moves the Human Design gate wheel. Astrology positions are tropical either way. |
| nodes | no | true (default) or mean lunar nodes. |
| houses | no | placidus (default), koch or whole. |
| format | no | text for plain text. JSON otherwise. |
*Either place, or lat and lon together.
What comes back
Raw computed facts, in three blocks.
humanDesign
Type, strategy, authority, profile, definition, signature, not-self theme, incarnation cross, defined and open centers, channels, gates, circuitry and the four variables.
geneKeys
All twelve spheres of the Hologenetic Profile with gene key and line, plus the core wound.
astrology
Planets by sign, house placements, ascendant, midheaven, retrogrades, moon phase, dominant element and modality. Chiron and Lilith included.
{
"birth": { "date": "1985-03-09", "time": "14:32", "utcOffset": -3,
"place": "Buenos Aires, Argentina", "timezone": "America/Argentina/Buenos_Aires" },
"humanDesign": { "type": "Projector", "strategy": "Wait for invitation",
"authority": "Splenic", "profile": "3/5", "definition": "Split", ... },
"geneKeys": { "spheres": { "Life's Work": { "geneKey": 22, "line": 3 }, ... } },
"astrology": { "ascendant": "Gemini", "planets": { "Sun": "Pisces", ... } },
"url": "https://omnicharts.app/?c=..."
}
What it does not return
No interpretation. The API gives positions and structure, never Omni's reading of them. Planetary positions are computable by anyone from an ephemeris, so there is nothing proprietary in them. The interpretation is the product, and it stays here.
It also computes only from birth data you supply. There is no endpoint over Omni's chart library.
Accuracy
The engine that answers this endpoint is generated from the same code the live app runs, not reimplemented alongside it, and it is checked against several hundred golden charts spanning three centuries, both hemispheres, daylight saving transition weekends, leap days, polar latitudes and fractional UTC offsets. Every one must match the app exactly or the build fails.
That strictness is not fussiness. A gate spans 5.625 degrees and a line spans 0.9375, so a difference far below a single arcsecond can return a different gate, and the wrong answer still looks completely reasonable. Exact agreement is the only check worth having.
Limits and terms
Free for personal and conversational use, at 60 requests an hour per address. Generous for a person, deliberately useless as a product backend.
Building a product on it, or sustained commercial volume, needs a Pro key. Write to luciano@omnicharts.app and we will sort it out. Attribution to omnicharts.app is appreciated wherever a chart is shown.
Machine-readable spec
An OpenAPI 3.1 description lives at /openapi.json.
