Davison Chart
GET /v1/davison — Davison relationship chart computed at the time-space midpoint of two natal charts.
Davison Chart
Compute a Davison relationship chart — a real natal chart cast for the midpoint in time and space between two births. Unlike a composite chart (which averages positions mathematically), the Davison chart represents an actual moment in time with real astronomical positions.
GET /v1/davison
POST /v1/davisonCredit cost: 3
Parameters
Uses _a and _b suffixes for the two charts' datetime and location parameters.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
datetime_a | string | One of datetime_a or jd_a | — | Person A: ISO 8601 UTC datetime |
jd_a | number | One of datetime_a or jd_a | — | Person A: Julian Day in UT1 |
lat_a | number | Yes | — | Person A: latitude |
lon_a | number | Yes | — | Person A: longitude |
datetime_b | string | One of datetime_b or jd_b | — | Person B: ISO 8601 UTC datetime |
jd_b | number | One of datetime_b or jd_b | — | Person B: Julian Day in UT1 |
lat_b | number | Yes | — | Person B: latitude |
lon_b | number | Yes | — | Person B: longitude |
bodies | string | No | "planets" | Comma-separated body names |
system | string | No | "placidus" | House system |
house_position_mode | string | No | "zodiacal" | "zodiacal" or "mundane" — see house position modes |
sidereal | string | No | — | Ayanamsha for sidereal mode |
aspects | string | No | Major 7 | Comma-separated aspect types |
orb | number | No | — | Global orb override in degrees |
dignities | boolean | No | false | Attach essential dignities to the chart (with rulership, day_chart); see natal chart |
How it works
The Davison chart computes:
- Midpoint in time — The Julian Day halfway between the two birth instants
- Midpoint in space — The great-circle midpoint of the two birthplaces (the two points are averaged as vectors on the sphere, so a pair straddling the date line or the pole midpoints correctly; it is not the mean of the coordinates)
- A real natal chart — Actual planetary positions and house cusps computed for that midpoint moment and place, exactly what
/v1/positionsand/v1/housesreturn there
This means the Davison chart has real astronomical positions that existed at a real moment in time, unlike the composite chart which creates synthetic positions.
Response
The response has the same structure as /v1/natal-chart, with chart_type set to "davison" and metadata.source recording the two births.
{
"data": {
"chart_type": "davison",
"positions": [ "..." ],
"houses": { "..." },
"aspects": [ "..." ],
"parallels": [],
"metadata": {
"datetime": 2447650.5937516,
"datetime_iso": "1989-05-04T02:15:00.428Z",
"location": { "latitude": 52.3684, "longitude": -41.2903, "altitude": 0.0 },
"source": {
"type": "davison",
"datetime_a": 2448058.2708335,
"datetime_b": 2447242.9166697,
"location_a_lat": 40.7128,
"location_a_lon": -74.006,
"location_b_lat": 51.5074,
"location_b_lon": -0.1278
},
"..."
}
},
"meta": { "..." }
}metadata.datetime and metadata.location are the computed midpoint instant and place (for New York and London above, a point in the North Atlantic south of Greenland). The result does not depend on which birth is _a and which is _b.
Examples
Basic Davison chart
curl "https://api.morphemeris.com/v1/davison?\
datetime_a=1990-06-15T18:30:00Z&lat_a=40.7128&lon_a=-74.006\
&datetime_b=1988-03-22T10:00:00Z&lat_b=51.5074&lon_b=-0.1278" \
-H "Authorization: Bearer morphemeris_live_YOUR_KEY"const params = new URLSearchParams({
datetime_a: "1990-06-15T18:30:00Z", lat_a: "40.7128", lon_a: "-74.006",
datetime_b: "1988-03-22T10:00:00Z", lat_b: "51.5074", lon_b: "-0.1278",
});
const res = await fetch(
`https://api.morphemeris.com/v1/davison?${params}`,
{ headers: { Authorization: "Bearer morphemeris_live_YOUR_KEY" } }
);
const { data } = await res.json();import requests
res = requests.get(
"https://api.morphemeris.com/v1/davison",
params={
"datetime_a": "1990-06-15T18:30:00Z", "lat_a": 40.7128, "lon_a": -74.006,
"datetime_b": "1988-03-22T10:00:00Z", "lat_b": 51.5074, "lon_b": -0.1278,
},
headers={"Authorization": "Bearer morphemeris_live_YOUR_KEY"},
)
data = res.json()