Documentation

One endpoint. Copy and run.

This endpoint is designed to feel radically simpler than a full natal-chart API. You send birth inputs, and you get planets plus houses back.

URL: https://api.freeastroapi.com/natal

Method: POST

Auth: x-api-key: YOUR_API_KEY

Content-Type: application/json

Fields:

year, month, day, hour, minute

lat, lng

Response stays minimal: planet signs and houses, plus house-sign mapping.

cURL
curl -X POST https://api.freeastroapi.com/natal \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "year": 1990,
    "month": 5,
    "day": 15,
    "hour": 10,
    "minute": 30,
    "lat": 48.8566,
    "lng": 2.3522
  }'
JavaScript
const response = await fetch("https://api.freeastroapi.com/natal", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.SIMPLE_ASTROLOGY_API_KEY!,
  },
  body: JSON.stringify({
    year: 1990,
    month: 5,
    day: 15,
    hour: 10,
    minute: 30,
    lat: 48.8566,
    lng: 2.3522,
  }),
});

const data = await response.json();
Example response
{
  "planets": {
    "sun": { "sign": "Taurus", "house": 10 },
    "moon": { "sign": "Cancer", "house": 12 },
    "mercury": { "sign": "Gemini", "house": 11 }
  },
  "houses": {
    "1": "Leo",
    "2": "Virgo",
    "3": "Libra",
    "4": "Scorpio",
    "5": "Sagittarius",
    "6": "Capricorn",
    "7": "Aquarius",
    "8": "Pisces",
    "9": "Aries",
    "10": "Taurus",
    "11": "Gemini",
    "12": "Cancer"
  }
}

Field notes

planets: selected planets keyed by name with their sign and house.

houses: house number mapped to sign.

If your app only needs the essentials, this is the response to start with.