Morphemeris DocsBeta

Synastry

GET /v1/synastry — Two-chart synastry with inter-chart aspects and parallels.

Synastry

Compute synastry (chart comparison) between two natal charts. Returns both individual charts plus inter-chart aspects and parallels — the angular relationships between bodies in chart A and bodies in chart B.

Text
GET  /v1/synastry
POST /v1/synastry

Credit cost: 3

Parameters

This endpoint uses _a and _b suffixes for the two charts' datetime and location parameters.

ParameterTypeRequiredDefaultDescription
datetime_astringOne of datetime_a or jd_aPerson A: ISO 8601 UTC datetime
jd_anumberOne of datetime_a or jd_aPerson A: Julian Day in UT1
lat_anumberYesPerson A: latitude
lon_anumberYesPerson A: longitude
datetime_bstringOne of datetime_b or jd_bPerson B: ISO 8601 UTC datetime
jd_bnumberOne of datetime_b or jd_bPerson B: Julian Day in UT1
lat_bnumberYesPerson B: latitude
lon_bnumberYesPerson B: longitude
bodiesstringNo"planets"Comma-separated body names (same for both charts)
systemstringNo"placidus"House system
siderealstringNoAyanamsha for sidereal mode
aspectsstringNoMajor 7Comma-separated aspect types
orbnumberNoGlobal orb override in degrees
applyingbooleanNofalseInclude applying/separating flag
parallelsbooleanNofalseInclude declination parallels
parallel_orbnumberNo1.0Orb for parallels in degrees

Response

JSON
{
  "data": {
    "chart_a": {
      "metadata": { "..." },
      "bodies": [ "..." ],
      "houses": { "..." }
    },
    "chart_b": {
      "metadata": { "..." },
      "bodies": [ "..." ],
      "houses": { "..." }
    },
    "inter_aspects": [
      {
        "body_a": "sun",
        "body_b": "venus",
        "aspect": "conjunction",
        "angle": 0.0,
        "orb": 3.12,
        "applying": false
      }
    ],
    "inter_parallels": []
  },
  "meta": { "..." }
}
FieldTypeDescription
chart_aobjectFull chart data for person A (same structure as /v1/natal-chart)
chart_bobjectFull chart data for person B
inter_aspects[]arrayAspects between bodies in chart A and bodies in chart B
inter_parallels[]arrayDeclination parallels between charts (when parallels=true)

In inter_aspects, body_a always refers to a body from chart A, and body_b to a body from chart B.

Examples

Two-person synastry

Bash
curl "https://api.morphemeris.com/v1/synastry?\
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"
javascript
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/synastry?${params}`,
  { headers: { Authorization: "Bearer morphemeris_live_YOUR_KEY" } }
);
const { data } = await res.json();
Python
import requests

res = requests.get(
    "https://api.morphemeris.com/v1/synastry",
    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()

With parallels and applying flag

Bash
curl "https://api.morphemeris.com/v1/synastry?\
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\
&parallels=true&applying=true" \
  -H "Authorization: Bearer morphemeris_live_YOUR_KEY"