Start free

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

ParameterRequiredMeaning
dateyesBirth date as YYYY-MM-DD. Between 1701 and 2199.
timerecommendedBirth time as 24 hour HH:MM. Defaults to 12:00, which makes the ascendant, houses and often the profile unreliable.
placeyes*Birthplace, for example Buenos Aires or Rosario, Argentina. Resolved to coordinates and to the UTC offset in force on that date.
lat, lonyes*Explicit coordinates instead of a place name. Longitude is East positive.
offsetwith lat/lonBirthplace UTC offset in hours, signed, for example -3. Required when you send coordinates rather than a place name.
zodiacnotropical (default) or sidereal. This moves the Human Design gate wheel. Astrology positions are tropical either way.
nodesnotrue (default) or mean lunar nodes.
housesnoplacidus (default), koch or whole.
formatnotext for plain text. JSON otherwise.

*Either place, or lat and lon together.

Birth time matters more than people expect. The ascendant moves roughly one degree every four minutes, and the Human Design profile and variables can change within the same hour. A chart built from a guessed time is often a different chart altogether.

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.

A privacy note. A GET request puts birth data in the URL, and hosting platforms record URLs in their access logs. The same request works as a POST with a JSON body, which is not logged that way. Prefer POST for anything automated.

Machine-readable spec

An OpenAPI 3.1 description lives at /openapi.json.