Asteroid Astrology API

Ceres, Pallas, Juno, and Vesta natal positions

POST/astrology/asteroidsPOST/astrology/lilith

Calculate the natal positions of the four classical asteroid goddesses, Ceres, Pallas, Juno, and Vesta, for any birth moment. Each asteroid returns its tropical zodiac sign, degree, house placement, daily speed, retrograde status, and a plain language interpretation of its meaning in the chart. Chiron is available through the natal chart endpoint, so this endpoint stays focused on the four asteroid goddesses for natal reports and relationship astrology.

Location first, chart second

The Asteroid Astrology API needs latitude, longitude, and timezone. Never ask users to type coordinates. Resolve a city with the Location endpoint first, then feed the result into the request. Timezone accepts a decimal offset or an IANA name.

1 Resolve the location

GET
curl "https://roxyapi.com/api/v2/location/search?q=New York" \
  -H "X-API-Key: YOUR_KEY"
# -> cities[0]: { latitude, longitude, timezone: "America/New_York" }

2 Call the Asteroid Astrology endpoint

POST /astrology/asteroids
# feed latitude, longitude and timezone from step 1
POST https://roxyapi.com/api/v2/astrology/asteroids

Request

POST /api/v2/astrology/asteroids

Parameters

ParameterTypeDescription
langquerystring enumResponse language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English. Default en.

Request body

FieldTypeDescription
date*string (date)Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.
time*string (time)Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.
latitude*numberBirth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.
longitude*numberBirth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.
timezone*number or stringTimezone: IANA name (e.g. "America/New_York", "Europe/London") OR decimal hours from UTC (e.g. -5 for EST, 1 for CET). IANA strings are resolved to the DST-correct offset for the given date, so you can pass `cities[0].timezone` from /location/search directly.
nodeTypestring enumLunar node convention. "mean" is the smoothed average node, which always moves retrograde; "true" is the osculating node, which tracks the real perturbed node, oscillates up to about 1.5 degrees either side of the mean on a 173-day cycle, and can briefly turn direct. Neither is more correct and they almost always fall in the same sign. Applies to the North and South Node. True is what most Western software reports (Astrolabe, Cafe Astrology, TimePassages), which is why it is the default here; astro-seek and the Steven Forrest evolutionary school use mean, so pass "mean" to match those. Nothing else in the chart changes, and the two agree on the sign except when the node sits within about 1.8 degrees of a cusp. Defaults to "true".
houseSystemstring enumHouse system used to assign each asteroid to a natal house. Placidus (default), Whole Sign, Equal, or Koch. Above the polar circle, quadrant systems fall back to Whole Sign and the echoed houseSystem reports the system actually used.

Example request

POST /astrology/asteroids
{
  "date": "1990-07-15",
  "time": "14:30:00",
  "latitude": 40.7128,
  "longitude": -74.006,
  "timezone": -5
}

Response

Structured JSON with documented fields, covered by 6,991 automated tests per deploy, 1,527 of them gold-standard tests verified against NASA JPL Horizons. Not hallucinated text.

200 OK
{
  "birthDetails": {
    "date": "1990-07-15",
    "time": "14:30:00",
    "latitude": 40.7128,
    "longitude": -74.006,
    "timezone": -5
  },
  "houseSystem": "placidus",
  "asteroids": [
    {
      "name": "Ceres",
      "longitude": 64.72,
      "latitude": -2.83,
      "sign": "Gemini",
      "degree": 4.72,
      "house": 7,
      "speed": 0.409,
      "isRetrograde": false,
      "interpretation": "Your Ceres in Gemini speaks to how you nurture and are nurtured, the cycles of nourishment, loss, and return, and the bond between caretaker and cared-for."
    }
  ],
  "summary": "Asteroid goddess positions for 1990-07-15: Ceres, Pallas, Juno, and Vesta placed by sign, house, and retrograde motion."
}

Response fields

FieldTypeDescription
birthDetails*objectEcho of the birth moment and place used to compute every asteroid.
birthDetails.date*string (date)Birth date in YYYY-MM-DD format. Determines planetary positions for the specific calendar day.
birthDetails.time*string (time)Birth time in 24-hour HH:MM:SS format. Determines the Ascendant (rising sign) and house cusps. Use 12:00:00 if unknown.
birthDetails.latitude*numberBirth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South.
birthDetails.longitude*numberBirth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West.
birthDetails.timezone*numberTimezone offset from UTC in decimal hours. Examples: New York = -5, London = 0, India = 5.5, Tokyo = 9.
houseSystem*string enumHouse system actually used to place the asteroids, after any polar fallback to Whole Sign.
asteroids*array of objectThe four classical asteroid goddesses in canonical order: Ceres, Pallas, Juno, and Vesta, each with its tropical position, house, motion, and interpretation.
asteroids[].name*stringName of the asteroid: Ceres, Pallas, Juno, or Vesta. Always English, whatever the lang parameter says, so it stays safe to compare against in code. Use nameLocalized for anything a reader sees.
asteroids[].nameLocalizedstringAsteroid name in the requested language, for display only. Present only when lang is set to a language other than English, since in English it would repeat its canonical partner field exactly. Never compare against this value, compare against the canonical field beside it.
asteroids[].longitude*numberAbsolute tropical ecliptic longitude of the asteroid in degrees (0 to 360).
asteroids[].latitude*numberEcliptic latitude in degrees, the angular distance north or south of the ecliptic plane.
asteroids[].sign*stringTropical zodiac sign the asteroid falls in.
asteroids[].degree*numberDegree of the asteroid within its zodiac sign (0 to 29.999).
Show all fields
FieldTypeDescription
asteroids[].house*integerNatal house placement (1 to 12) from the selected house system and birth location.
asteroids[].speed*numberDaily motion in degrees per day. Negative values indicate retrograde motion.
asteroids[].isRetrograde*booleanWhether the asteroid appears to move backward from Earth, true when the daily speed is negative.
asteroids[].interpretation*stringPlain language meaning of this asteroid in its sign, suitable for chart reports and AI agents. Localized to the requested language.
summary*stringShort overview of the asteroid set for previews and report intros.

Supported options

lang

entrdeeshiptfrru

nodeType

meantrue

houseSystem

placiduswhole-signequalkoch

Call it in your language in seconds.

Every snippet is generated from the live OpenAPI spec, so method names, parameters, and fields always match production.

TypeScript
import { createRoxy } from '@roxyapi/sdk'

const roxy = createRoxy(process.env.ROXY_API_KEY!)
const { data } = await roxy.astrology.generateAsteroids({ body: { date: '1990-07-15', time: '14:30:00', latitude: 40.7128, longitude: -74.006, timezone: -5 } })
Install: npm install @roxyapi/sdk

Prefer to try before you write code? Run this Western Astrology endpoint live in the API playground and inspect a real production response.

More Asteroid Astrology endpoints

The Asteroid Astrology API bundles these related endpoints under one key.

POST/astrology/lilith

Black Moon Lilith calculator - mean and true lunar apogee in the natal chart

Calculate Black Moon Lilith for any birth chart, both the mean lunar apogee, the steady and most widely used point, and the true or osculating apogee, the exact position that can shift sign and turn retrograde. Returns the zodiac sign, degree, house, ecliptic longitude and latitude, daily speed, retrograde flag, and a plain language interpretation for each variant. Built for natal astrology apps and AI agents exploring the wild, suppressed, and reclaimed self that Lilith represents.

Try it live

Remote MCP for AI agents

Every Western Astrology endpoint is a callable tool on the Remote MCP server over Streamable HTTP. No local setup, no Docker. Claude, ChatGPT, Cursor, and any MCP client auto-discover the tools and ground their answers in verified data.

Claude Code / Cursor
claude mcp add --transport http \
  roxy-astrology https://roxyapi.com/mcp/astrology \
  --header "X-API-Key: YOUR_KEY"

Tool name for POST /astrology/asteroids: post_astrology_asteroids. Full MCP setup guide

What you can build

Launch natal chart apps with professional-grade accuracy: birth charts, planet positions, house placements, aspects, and element analysis ready for your UI in days

Add zodiac compatibility scoring to dating apps: synastry analysis, composite charts, and compatibility scores with detailed relationship dynamics

Ship personalized horoscope platforms: publisher-grade daily, weekly, and monthly forecasts with unique content per sign, active transit metadata, Moon phase data, and date scheduling for editorial pre-publishing

Build AI astrology chatbots with MCP: your OpenAI, Claude, or Gemini agent auto-discovers and calls every astrology endpoint with zero integration code

Power wellness and lifestyle apps with real-time transits, moon phase calendars, solar returns, and planetary movement alerts for self-discovery features

Create astrology content engines: automated zodiac content with house-based uniqueness per sign, horoscope newsletters with real lunar event dates, transit alerts, and seasonal forecasts at scale

Drop-in UI components & widgets

Render Asteroid Astrology API responses without building charts yourself. Install the npm package and drop these into Next.js, React, Vue, Svelte, Angular, or plain HTML, or embed the very same component on Squarespace, Wix, or WordPress by pasting one snippet, with no backend and no build step. They belong to one library that covers the entire spiritual stack rather than astrology alone, MIT licensed and included in every plan at no extra cost, never a separate product and never an upsell. The Asteroid Astrology API calculations, the interface that renders them, and the Remote MCP your agent calls, all behind one key, end to end.

MIT licensedFramework agnosticThemeable via CSS variablesnpm or CDN
Show all Asteroid Astrology UI components
ElementRenders
<roxy-positions-table>Body, sign, degree, and per-shape columns (house, motion, formula, or natal arc) plus each reading

Related capabilities

Asteroid Astrology API FAQ

What does the Asteroid Astrology API return?

Calculate the natal positions of the four classical asteroid goddesses, Ceres, Pallas, Juno, and Vesta, for any birth moment. Every response is structured JSON with documented fields, not free text, so you map it straight into your product.

How do I authenticate with the Asteroid Astrology API?

Pass your key in the X-API-Key header on every request. Keys are delivered instantly at checkout with no approval queue. Use a secret sk key server side, or mint a publishable pk key locked to your origins for browser and no-code use.

Does the Asteroid Astrology API support multiple languages?

Yes. Append the lang query parameter to any endpoint for responses in English, German, Spanish, French, Hindi, Portuguese, Russian and Turkish. The translated payload includes the full interpretation text, not just field labels.

Do I need coordinates to call the Asteroid Astrology API?

No. Call GET /location/search with a city name first, then pass latitude, longitude, and timezone from the first result into the request. Never ask users to type coordinates. Timezone accepts a decimal offset or an IANA name.

Is the Asteroid Astrology API available over Remote MCP for AI agents?

Yes. Every endpoint is exposed as a callable tool on the Remote MCP server at https://roxyapi.com/mcp/astrology over Streamable HTTP, so Claude, ChatGPT, Cursor, and any MCP client auto-discover it with no local setup or Docker.

How is the Asteroid Astrology API billed?

Flat pricing: 1 request equals 1 quota unit, REST and MCP identical, with no credit weighting or per-token markup. Every plan includes all 12 domains, so the Asteroid Astrology API is included at no extra cost.

What lang values does the Asteroid Astrology API accept?

The lang parameter accepts en, tr, de, es, hi, pt, fr, ru. Case-insensitive where it is a path value.

Start using Asteroid Astrology API today.

Ship your astrology app this weekend. Not this quarter.

All 12 domains included with every plan. Every endpoint, MCP server, SDK, and starters.

Plans from $39/mo, starting at $2.70 per domain on annual billing. No credit card required for testing.

View Pricing & Get API Key