Astrocartography API
planetary lines and relocation calculator
Generate an astrocartography map of Midheaven, Imum Coeli, Ascendant, and Descendant planetary lines for any birth moment. Each line marks where a planet turns angular across the world, the core of relocation astrology and astro mapping. Returns right ascension, declination, the two meridian line longitudes, and sampled rising and setting curves ready to plot, with a short interpretation per line.
Location first, chart second
The Astrocartography 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
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 Astrocartography endpoint
# feed latitude, longitude and timezone from step 1
POST https://roxyapi.com/api/v2/astrology/astrocartographyRequest
POST /api/v2/astrology/astrocartography
Parameters
| Parameter | Type | Description |
|---|---|---|
| langquery | string enum | Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English. Default en. |
| includequery | string | Optional comma separated list of extra bodies to plot beyond the ten classical planets. Allowed values: north-node, chiron, lilith. north-node is the mean lunar node. Unknown values are ignored. Defaults to none. |
Request body
| Field | Type | Description |
|---|---|---|
| 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* | number | Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South. |
| longitude* | number | Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West. |
| timezone* | number or string | Timezone: 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. |
Example request
{
"date": "1990-07-15",
"time": "14:30:00",
"latitude": 40.7128,
"longitude": -74.006,
"timezone": -5
}Response
Structured JSON with documented fields, verified against NASA JPL Horizons across 828 gold-standard tests. Not hallucinated text.
{
"birthDetails": {
"date": "1990-07-15",
"time": "14:30:00",
"latitude": 40.7128,
"longitude": -74.006,
"timezone": -5
},
"lines": [
{
"planet": "Sun",
"rightAscension": 90.66,
"declination": 23.44,
"mc": {
"longitude": -71.23,
"interpretation": "string"
},
"ic": {
"longitude": -71.23,
"interpretation": "string"
},
"ascendant": {
"points": [
{
"latitude": 40,
"longitude": -71.42
}
],
"circumpolarBeyond": 66.56,
"interpretation": "string"
},
"descendant": {
"points": [
{
"latitude": 40,
"longitude": -71.42
}
],
"circumpolarBeyond": 66.56,
"interpretation": "string"
}
}
],
"summary": "Astrocartography lines for 1990-07-15. 10 bodies, each with Midheaven, Imum Coeli, Ascendant, and Descendant lines mapping where their themes turn angular worldwide for relocation planning."
}Response fields
| Field | Type | Description |
|---|---|---|
| birthDetails* | object | Echo of the birth moment and place used to compute every planetary line. |
| 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* | number | Birth location latitude in decimal degrees (-90 to 90). Positive = North, negative = South. |
| birthDetails.longitude* | number | Birth location longitude in decimal degrees (-180 to 180). Positive = East, negative = West. |
| birthDetails.timezone* | number | Timezone offset from UTC in decimal hours. Examples: New York = -5, London = 0, India = 5.5, Tokyo = 9. |
| lines* | array of object | One entry per body, each carrying its Midheaven, Imum Coeli, Ascendant, and Descendant planetary lines for relocation mapping. |
| lines[].planet* | string | Celestial body this set of planetary lines belongs to. |
| lines[].symbol | string | Unicode astronomical symbol for this body. |
| lines[].rightAscension* | number | Equatorial right ascension of the body in degrees (0 to 360), the basis for every line. |
| lines[].declination* | number | Equatorial declination of the body in degrees (-90 to 90), which sets how far the rising and setting lines curve. |
| lines[].mc* | object | Midheaven (MC) line. Places along this meridian where the body was culminating overhead, tied to public life, career, and reputation. |
| lines[].mc.longitude* | number | Constant geographic longitude of this vertical meridian line in decimal degrees. The body culminates (MC) or anti-culminates (IC) along it, so plot it as a straight north to south line. |
| lines[].mc.interpretation* | string | Plain language meaning of this meridian planetary line for relocation, suitable for chart reports and AI agents. |
Show all fieldsShow fewer fields
| Field | Type | Description |
|---|---|---|
| lines[].ic* | object | Imum Coeli (IC) line, opposite the MC. Places where the body was anti-culminating, tied to home, family, and inner foundations. |
| lines[].ic.longitude* | number | Constant geographic longitude of this vertical meridian line in decimal degrees. The body culminates (MC) or anti-culminates (IC) along it, so plot it as a straight north to south line. |
| lines[].ic.interpretation* | string | Plain language meaning of this meridian planetary line for relocation, suitable for chart reports and AI agents. |
| lines[].ascendant* | object | Ascendant (rising) line. Places where the body was on the eastern horizon, tied to identity, vitality, and self-expression. |
| lines[].ascendant.points* | array of object | Sampled geographic points tracing this rising or setting line from 70 South to 70 North. Join them in latitude order to draw the curved planetary line on a world map. |
| lines[].ascendant.points[].latitude* | number | Geographic latitude of this sampled point in decimal degrees. |
| lines[].ascendant.points[].longitude* | number | Geographic longitude in decimal degrees where the body sits exactly on the horizon at this latitude. |
| lines[].ascendant.circumpolarBeyond* | number | Absolute latitude in degrees beyond which the body never crosses the horizon, so the line has no points past it. Null when the line spans the full sampled range. |
| lines[].ascendant.interpretation* | string | Plain language meaning of this rising or setting planetary line for relocation, suitable for chart reports and AI agents. |
| lines[].descendant* | object | Descendant (setting) line. Places where the body was on the western horizon, tied to relationships and partnerships. |
| lines[].descendant.points* | array of object | Sampled geographic points tracing this rising or setting line from 70 South to 70 North. Join them in latitude order to draw the curved planetary line on a world map. |
| lines[].descendant.points[].latitude* | number | Geographic latitude of this sampled point in decimal degrees. |
| lines[].descendant.points[].longitude* | number | Geographic longitude in decimal degrees where the body sits exactly on the horizon at this latitude. |
| lines[].descendant.circumpolarBeyond* | number | Absolute latitude in degrees beyond which the body never crosses the horizon, so the line has no points past it. Null when the line spans the full sampled range. |
| lines[].descendant.interpretation* | string | Plain language meaning of this rising or setting planetary line for relocation, suitable for chart reports and AI agents. |
| summary* | string | Short overview of the astrocartography map for previews and report intros. |
Supported options
lang
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.
import { createRoxy } from '@roxyapi/sdk'
const roxy = createRoxy(process.env.ROXY_API_KEY!)
const { data } = await roxy.astrology.generateAstrocartography({ body: { date: '1990-07-15', time: '14:30:00', latitude: 40.7128, longitude: -74.006, timezone: -5 } })from roxy_sdk import create_roxy
roxy = create_roxy("YOUR_API_KEY")
result = roxy.astrology.generate_astrocartography(date='1990-07-15', time='14:30:00', latitude=40.7128, longitude=-74.006, timezone='America/New_York')use function RoxyAPI\Sdk\createRoxy;
$roxy = createRoxy(getenv('ROXY_API_KEY'));
$result = $roxy->astrology->generateAstrocartography(date: '1990-07-15', time: '14:30:00', latitude: 40.7128, longitude: -74.006, timezone: -5);using RoxyApi;
var roxy = new RoxyClient(Environment.GetEnvironmentVariable("ROXY_API_KEY")!);
var result = await roxy.Astrology.Astrocartography.PostAsync(new() { /* request fields above */ });import roxyapi "github.com/RoxyAPI/sdk-go"
roxy, _ := roxyapi.NewRoxy(os.Getenv("ROXY_API_KEY"))
resp, _ := roxy.Astrology.GenerateAstrocartography(ctx, nil, roxyapi.GenerateAstrocartographyJSONRequestBody{ /* request fields above */ })curl -X POST "https://roxyapi.com/api/v2/astrology/astrocartography" \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"1990-07-15","time":"14:30:00","latitude":40.7128,"longitude":-74.006,"timezone":-5}'Prefer to try before you write code? Run this Western Astrology endpoint live in the API playground and inspect a real production response.
More Astrocartography endpoints
The Astrocartography API bundles these related endpoints under one key.
Generate relocation chart - Relocated birth chart calculator with shifted houses and angles
Calculate a relocation chart (relocated birth chart) for a new place on Earth. The birth moment stays the same, so every planet keeps its natal sign and degree, while the Ascendant, Midheaven, Vertex, and all twelve house cusps are recomputed for the new latitude and longitude. Returns the relocated houses and angles, the planets that change house, the angular planets activated at the new place, and the distance and compass direction from the birthplace. Built for relocation astrology readings, astrocartography style move planning, and travel charts. Verified against NASA JPL Horizons.
Try it liveLocal space astrology map - Directional planetary compass lines
Generate a local space astrology map that projects the natal planets onto the local horizon as compass directions and great-circle lines radiating from the birthplace. Returns each body azimuth (degrees clockwise from true north), altitude, 16-point compass direction, whether it sits above the horizon, and the latitude and longitude waypoints of its directional line. Ideal for relocation planning, directional astrology, and travel-direction maps.
Try it liveRemote 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 mcp add --transport http \
roxy-astrology https://roxyapi.com/mcp/astrology \
--header "X-API-Key: YOUR_KEY"Tool name for POST /astrology/astrocartography: post_astrology_astrocartography. 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
Render Astrocartography API responses without building charts yourself. These open source, framework-agnostic web components take the typed response and draw it, in React, Vue, Svelte, Angular, plain HTML, and WordPress.
Related capabilities
Astrocartography API FAQ
What does the Astrocartography API return?
Generate an astrocartography map of Midheaven, Imum Coeli, Ascendant, and Descendant planetary lines 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 Astrocartography 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 Astrocartography 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 Astrocartography 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 Astrocartography 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 Astrocartography 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 Astrocartography API is included at no extra cost.
What lang values does the Astrocartography API accept?
The lang parameter accepts en, tr, de, es, hi, pt, fr, ru. Case-insensitive where it is a path value.
Start using Astrocartography 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