Synastry score and cross-aspects (public, no key)
curl -X POST 'https://api.astroway.info/v1/public/synastry' \ -H 'Content-Type: application/json' \ -d '{"chart1":{"date":"1990-07-14","time":"14:30:00","timezoneOffset":3,"latitude":50.45,"longitude":30.52},"chart2":{"date":"1992-03-22","time":"09:15:00","timezoneOffset":2,"latitude":48.85,"longitude":2.35}}'Compatibility score and the planet-to-planet aspect grid for two birth charts, served anonymously. Aspects come back sorted by orb, tightest first, so taking the first six gives the six an embed would show. applying is true when the aspect is still closing. What stays behind a key: the per-aspect interpretations, the house overlay, composite and Davison charts, and the two natal charts themselves, all of which the authed POST /synastry returns. Either partner may set timeUnknown: true; cross-aspects survive an unknown time because they are planet to planet. This call costs 3 units of the public rate-limit bucket rather than 1, because it computes two charts and the full matrix: 10 an hour on an undeclared address, 100 per declared site, 200 per address. The response carries X-RateLimit-Cost: 3.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”Pair of natal charts where either birth time may be unknown. A chart with timeUnknown: true contributes planets and cross-aspects but no houses, angles or overlays.
object
Birth data where the clock time may be unknown. Either pass time (HH:mm:ss), or set timeUnknown: true and omit it. In the second case the response carries planets and aspects but no houses, angles or sect.
object
Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC.
Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.
Birth data where the clock time may be unknown. Either pass time (HH:mm:ss), or set timeUnknown: true and omit it. In the second case the response carries planets and aspects but no houses, angles or sect.
object
Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC.
Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.
Example
{ "chart1": { "date": "1990-07-14", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52 }, "chart2": { "date": "1992-03-22", "time": "09:15:00", "timezoneOffset": 2, "latitude": 48.85, "longitude": 2.35 }}Responses
Section titled “ Responses ”OK
object
object
object
Free-tier watermark, present on every public response. Keys on a paid plan do not receive it.
Example
{ "ok": true, "data": { "score": 68, "label": "harmonious", "aspects": [ { "planetA": "Pluto", "planetB": "Saturn", "aspect": "Square", "orb": 0.0509, "applying": false }, { "planetA": "Uranus", "planetB": "Jupiter", "aspect": "Trine", "orb": 0.0787, "applying": true }, { "planetA": "Chiron", "planetB": "Neptune", "aspect": "Opposition", "orb": 0.3942, "applying": false } ], "count": 45 }, "_footer": "Powered by astroway.api - get your own key at https://api.astroway.info"}Invalid input
Example
{ "ok": false, "error": { "code": "INVALID_FIELD", "message": "Unsupported fields: \"tz\", \"lat\", \"lng\". Rename them to \"timezoneOffset\", \"latitude\", \"longitude\". See details for what each one expects.", "details": [ { "path": "tz", "expected": "timezoneOffset", "message": "numeric hours from UTC, e.g. 5.75, not a timezone name" }, { "path": "lat", "expected": "latitude", "message": "decimal degrees, north positive" }, { "path": "lng", "expected": "longitude", "message": "decimal degrees, east positive" } ], "docs": "https://api.astroway.info/en/errors/#invalid_field" }}