:::note
**TL;DR**
- The astrocartography API turns one birth moment into Midheaven, Imum Coeli, Ascendant, and Descendant planetary lines for relocation astrology and astro mapping.
- Each body is reduced to right ascension and declination, then the four angular lines are derived: MC and IC are vertical meridians, Ascendant and Descendant are curves you plot on a world map.
- Pass an IANA timezone like `America/New_York` and the API resolves the daylight-saving-correct offset for you, so you never hand-compute DST.
- One `POST /astrology/astrocartography` call returns 40 planetary lines across the ten classical bodies, or drop the ready-made map widget onto a page with no backend.
:::

Astrocartography is the branch of relocation astrology that asks a spatial question: where on Earth does a given planet turn angular for you. Answering it programmatically has been the missing piece in most Western astrology stacks, because it needs more than a natal chart. It needs the planet reduced to equatorial coordinates and then solved against every meridian and horizon on the globe. The RoxyAPI astrocartography API does that reduction and returns map-ready geometry per body: two meridian longitudes and two horizon curves, each with a plain-language interpretation. This guide shows how those lines are derived, what each one means when you relocate, the one edge case that trips up naive map plotting, and the exact two-call flow to fetch a chart for any city.

## How are astrocartography planetary lines calculated?

Astrocartography lines are calculated by reducing each celestial body to its right ascension and declination for the single birth instant, then solving where that body turns angular across the Earth. The Midheaven and Imum Coeli lines are vertical meridians of constant longitude where the body culminates or anti-culminates. The Ascendant and Descendant lines are curves that trace where the body rises or sets, latitude by latitude.

The meridian longitudes come straight from sidereal time: the Midheaven line sits where local sidereal time equals the body right ascension, so its longitude is right ascension minus Greenwich sidereal time, and the Imum Coeli line is the opposite meridian, exactly 180 degrees away. The horizon curves are harder, because rising and setting longitude changes with latitude. For each sampled latitude the API solves the horizon hour angle, then converts the resulting local sidereal time to a geographic longitude. Sampling from 70 South to 70 North yields a smooth curve you can draw on a world map. Every line, meridian or curve, is derived from the same equatorial position, so the map is only as accurate as the underlying ephemeris.

::: stat 16 arcsec (0.004 degrees)
**Median position difference** versus NASA JPL Horizons across the open accuracy benchmark. Every astrocartography line is derived from these positions, so the map inherits that accuracy. See the [testing methodology](/methodology "how RoxyAPI verifies planetary positions against NASA JPL Horizons").
:::

Ready to build this? [Astrology API](/products/astrology-api "production-ready Western astrology API for natal charts, transits, and astrocartography") gives you every angular line from one call. [See pricing](/pricing "RoxyAPI plans and flat all-inclusive pricing").

## What do MC, IC, Ascendant, and Descendant lines mean for relocation?

Each of the four angular lines carries a distinct relocation theme, mirroring the four chart angles. The Midheaven line governs public life and career, the Imum Coeli line governs home and roots, the Ascendant line governs identity and vitality, and the Descendant line governs relationships and partnership. Living or working along a planet line tends to amplify that planet in that area of life.

The API attaches an interpretation string to every line so you do not have to author copy for ten bodies times four angles. For a Sun line, the Midheaven interpretation reads: "Your Sun Midheaven line runs through places where Self-awareness and ego comes forward in your public life, career, and reputation." The Imum Coeli counterpart reads: "Your Sun Imum Coeli line runs through places where Self-awareness and ego settles into your home, family, and inner foundations."

| Line | Astronomical angle | Relocation theme |
|------|--------------------|------------------|
| Midheaven (MC) | Culmination, body overhead | Career, public life, reputation, visibility |
| Imum Coeli (IC) | Anti-culmination, body underfoot | Home, family, roots, private foundations |
| Ascendant (ASC) | Eastern horizon, rising | Identity, vitality, first impressions |
| Descendant (DSC) | Western horizon, setting | Relationships, partnership, who you attract |

## Why do some planetary lines stop at high latitudes?

Some planetary lines stop at high latitudes because the body never crosses the horizon there. Above a cutoff latitude a body is either always up or always down, so it has no rising or setting moment to anchor an Ascendant or Descendant line. The astrocartography API reports that cutoff as `circumpolarBeyond`, a latitude in degrees, and simply returns no curve points past it.

The cutoff is exactly 90 degrees minus the absolute declination of the body. In the sample chart the Sun sits at declination 21.4795, so its rising and setting lines both report `circumpolarBeyond` of 68.5205, and no points are plotted above roughly 68.5 degrees North or South. The meridian lines are never affected: a Midheaven or Imum Coeli line is a full-length meridian that runs pole to pole regardless of declination, so its `longitude` is always present.

::: warning
Do not assume every rising or setting line spans the whole globe. When `circumpolarBeyond` is not null, the `points` array is truncated, and a map layer that draws a straight segment between the last plotted point and the pole will render a line that does not exist. Read `circumpolarBeyond` and stop the curve there.
:::

## How do you call the astrocartography API for any city?

Astrocartography is coordinate-dependent, so the first call resolves a place name into latitude, longitude, and timezone, and the second call computes the lines. Start with the location endpoint, which returns a `cities` array. Take the first match and feed its `latitude`, `longitude`, and IANA `timezone` straight into the chart request. You never type coordinates by hand.

```bash
curl -s "https://roxyapi.com/api/v2/location/search?q=New%20York" \
  -H "X-API-Key: YOUR_KEY"
```

```json
{
  "cities": [
    {
      "city": "New York City",
      "country": "United States",
      "latitude": 40.71427,
      "longitude": -74.00597,
      "timezone": "America/New_York",
      "utcOffset": -4
    }
  ]
}
```

Now pass those values to the astrocartography endpoint. The `timezone` field accepts the IANA name directly and the API coerces it to the daylight-saving-correct offset for the birth date, so a July 1990 date resolves to minus 4 without any manual DST logic on your side.

::: tabs
### curl
```bash
curl -s -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.71427,
    "longitude": -74.00597,
    "timezone": "America/New_York"
  }'
```

### TypeScript
```typescript
const res = await fetch("https://roxyapi.com/api/v2/astrology/astrocartography", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ROXYAPI_KEY as string,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    date: "1990-07-15",
    time: "14:30:00",
    latitude: 40.71427,
    longitude: -74.00597,
    timezone: "America/New_York",
  }),
});
const { lines, summary } = await res.json();
console.log(lines[0].mc.longitude); // -96.0093
```

### Python
```python
import os
import requests

res = requests.post(
    "https://roxyapi.com/api/v2/astrology/astrocartography",
    headers={
        "X-API-Key": os.environ["ROXYAPI_KEY"],
        "Content-Type": "application/json",
    },
    json={
        "date": "1990-07-15",
        "time": "14:30:00",
        "latitude": 40.71427,
        "longitude": -74.00597,
        "timezone": "America/New_York",
    },
)
data = res.json()
print(data["lines"][0]["mc"]["longitude"])  # -96.0093
```
:::

The response echoes `birthDetails`, an array of `lines` (one entry per body), and a `summary`. Each line carries the body `rightAscension` and `declination`, the two meridian longitudes under `mc` and `ic`, and the two horizon curves under `ascendant` and `descendant`. Note the echoed `timezone` value of minus 4: that is the resolved offset, proof the IANA name was accepted and converted for you.

```json
{
  "birthDetails": {
    "date": "1990-07-15",
    "time": "14:30:00",
    "latitude": 40.71427,
    "longitude": -74.00597,
    "timezone": -4
  },
  "lines": [
    {
      "planet": "Sun",
      "symbol": "☉",
      "rightAscension": 114.8389,
      "declination": 21.4795,
      "mc": {
        "longitude": -96.0093,
        "interpretation": "Your Sun Midheaven line runs through places where Self-awareness and ego comes forward in your public life, career, and reputation. Living or working along this line tends to push this part of you into the spotlight."
      },
      "ic": {
        "longitude": 83.9907,
        "interpretation": "Your Sun Imum Coeli line runs through places where Self-awareness and ego settles into your home, family, and inner foundations. This line deepens your sense of roots and private life."
      },
      "ascendant": {
        "points": [
          { "latitude": 40, "longitude": 154.7108 },
          { "latitude": 45, "longitude": 150.8184 }
        ],
        "circumpolarBeyond": 68.5205,
        "interpretation": "Your Sun Ascendant line runs through places where Self-awareness and ego colors your identity, vitality, and how you first come across to others. This part of you feels switched on here."
      }
    }
  ],
  "summary": "Astrocartography lines for 1990-07-15 14:30:00. 10 bodies, each with Midheaven, Imum Coeli, Ascendant, and Descendant lines mapping where their themes turn angular worldwide for relocation planning."
}
```

The default set is the ten classical bodies. Add `?include=chiron,north-node,lilith` to plot Chiron, the North Node, and Black Moon Lilith as well, and add `?lang=es` (or any of the supported locales) to receive every interpretation professionally localized. Full request and response schemas live in the [`POST /astrology/astrocartography`](/api-reference#tag/western-astrology/POST/astrology/astrocartography "astrocartography API request and response reference") reference. If you would rather not build the map rendering at all, the `astrocartography-map` component fetches this same endpoint and plots the world map with only a publishable key, no server code. See the [embeddable widgets](/widgets "drop-in astrology widgets including the astrocartography world map").

## FAQ

**What is an astrocartography API?**

An astrocartography API converts a birth date, time, and place into planetary lines you can plot on a world map for relocation astrology. RoxyAPI returns Midheaven, Imum Coeli, Ascendant, and Descendant lines for each body in one call, with a plain-language interpretation attached to every line so you can render a report without writing your own copy.

**How do I get planetary lines for a birth chart?**

Call `POST /astrology/astrocartography` with the birth `date`, `time`, `latitude`, `longitude`, and `timezone`. RoxyAPI reduces each body to right ascension and declination and returns its four angular lines. Resolve the coordinates first with the location search endpoint so you never hardcode latitude and longitude.

**Does the astrocartography API return map coordinates?**

Yes. The Midheaven and Imum Coeli lines each return a single `longitude`, and the Ascendant and Descendant lines return a `points` array of latitude and longitude pairs. Join the points in latitude order and you have a curve ready to draw on any map layer. RoxyAPI also ships a drop-in widget that renders the whole map for you.

**Can I add Chiron or the North Node to the map?**

Yes. Append `?include=chiron,north-node,lilith` to the request and RoxyAPI plots Chiron, the mean North Node, and Black Moon Lilith alongside the ten classical bodies. Unknown tokens are ignored, so a malformed include value never breaks the call. Every added body carries the same four planetary lines.

**Is astrocartography the same as a relocation chart?**

They are related but distinct. Astrocartography maps where each planet turns angular worldwide, while a relocation chart recomputes the houses for one specific new city. RoxyAPI covers both in the Western astrology API, so you can render a global line map and then drill into a single relocated chart from the same subscription and key.

## Conclusion

Astrocartography has been the hardest Western feature to build in-house, because it needs equatorial reduction and horizon geometry on top of an accurate chart. The RoxyAPI astrocartography API returns all of it, map-ready and interpreted, from one request. Start with the [Astrology API](/products/astrology-api "production-ready Western astrology API with astrocartography, natal charts, and transits") and ship your relocation map this week.