Declination Parallels and Contraparallels: The Hidden Aspect
Most astrology APIs ignore declination parallels and contraparallels. Learn what they are and how to compute them with one API call.
TL;DR
- A declination parallel is two planets at the same declination north or south of the celestial equator, and it behaves like a conjunction. A contraparallel is equal and opposite declination, behaving like an opposition.
- Most astrology APIs only compute longitude aspects (conjunction, trine, square) and silently drop the entire declination dimension, so two charts can look aspect-light yet carry a tight hidden parallel.
- RoxyAPI exposes declination directly:
POST /vedic-astrology/parallelsreturns the declination of each visible planet plus every parallel and contraparallel inside your orb. - Build it with the Vedic Astrology API in under 30 minutes.
Declination parallels are the aspect dimension that almost no astrology API exposes. Standard aspect engines measure angular separation along the ecliptic, in longitude, and stop there. Declination is a separate coordinate: how far a planet sits north or south of the celestial equator. Two planets at the same declination form a parallel, an aspect traditional astrologers treat as equivalent in strength to a conjunction. Two planets at equal and opposite declination form a contraparallel, equivalent to an opposition. Because these aspects live outside the ecliptic-longitude plane, a chart can read as aspect-quiet in longitude yet hold a razor-tight parallel that drives the whole interpretation. This guide explains what declination parallels and contraparallels are, why they are routinely missed, and how to compute them from a single endpoint.
What is a declination parallel in astrology?
A declination parallel is two celestial bodies sitting at the same declination, meaning the same angular distance north or south of the celestial equator. Declination is measured in degrees from minus 90 to plus 90, independent of zodiac longitude. When two planets share a declination value within a small orb, they form a parallel, which classical and modern astrologers read as a conjunction-strength bond. A contraparallel is the mirror case: one planet north of the equator and the other an equal distance south, acting like an opposition.
The key distinction is the coordinate plane. Conjunctions, trines, and squares are measured along the ecliptic in longitude. Declination is the perpendicular dimension, the same value a star atlas lists for any object. Because the two systems are orthogonal, a parallel can exist between planets that are nowhere near each other in longitude, which is exactly why it stays hidden in a standard aspect grid. RoxyAPI returns a signed declination field for each visible planet so you can see and verify this dimension directly.
Ready to build this? Vedic Astrology API gives you declination parallels, contraparallels, and 40 plus Vedic endpoints, part of 130 plus endpoints across 10 insight domains like Western astrology, numerology, and tarot, all behind one key. See pricing.
Why do most astrology APIs miss declination aspects?
Most astrology APIs miss declination aspects because their aspect engine only iterates over ecliptic longitude. The standard pipeline computes each planetary longitude, takes pairwise differences, and matches those differences against the classical angles of 0, 60, 90, 120, and 180 degrees. Declination is never sampled, so parallels and contraparallels are structurally invisible to that engine, not merely omitted by choice.
RoxyAPI computes declination and right ascension for all 7 visible planets per call, then checks every one of the 21 unique pairs for parallel and contraparallel inside your orb. Positions are derived from Roxy Ephemeris, verified against NASA JPL Horizons. See the methodology.
This is a breadth gap, not a difficulty gap. The math is a straightforward equatorial-coordinate conversion, but single-domain providers optimize for the longitude aspects that fill a birth-chart wheel and leave declination out of the response schema entirely. The result is that a developer building a serious chart engine has to compute declination themselves or accept an incomplete aspect picture. Exposing the raw declination value, not just a derived verdict, is what lets a client app cross-check and extend the analysis.
How does a parallel differ from a contraparallel?
A parallel and a contraparallel differ by the sign of the declinations involved. A parallel requires both planets on the same side of the celestial equator, both north or both south, with declination values close in magnitude. A contraparallel requires opposite sides, one north and one south, with magnitudes close in absolute value. RoxyAPI labels each result with a type field set to either parallel or contraparallel so the distinction is explicit in the response.
The interpretive weight follows the longitude analogy. A parallel reinforces and blends the two planetary energies like a conjunction. A contraparallel sets them in tension like an opposition. The orb field reports the angular difference from exact, where a smaller number means a tighter and stronger aspect.
| Aspect | Declination condition | Acts like | Detection rule |
|---|---|---|---|
| Parallel | Same sign, near-equal declination | Conjunction | abs(dec1 minus dec2) within orb |
| Contraparallel | Opposite sign, near-equal magnitude | Opposition | abs(dec1 plus dec2) within orb |
| No aspect | Neither condition met within orb | None | both differences exceed orb |
Do not reuse a 6 to 8 degree longitude orb for declination. Declination parallels are tight aspects: the default and standard orb is 1.5 degrees, and the endpoint caps the orb parameter at 3 degrees. A wide orb floods the response with weak pairs and buries the meaningful contacts.
How do I calculate declination parallels with the API?
Calculate declination parallels by sending a date, time, and observer coordinates to POST /vedic-astrology/parallels. The endpoint returns declination and right ascension for each visible planet, then every parallel and contraparallel pair inside your orb. Because the call needs coordinates, resolve the place name first with the location search endpoint, then pass the latitude and longitude into the parallels request.
The location search returns latitude, longitude, and a numeric utcOffset in decimal hours. Pass utcOffset as the timezone value (the parallels endpoint expects a numeric offset, not an IANA string). The time field must be HH:MM:SS in 24-hour form. The optional orb defaults to 1.5 degrees.
# Step 1: resolve coordinates and numeric UTC offset
curl -s "https://roxyapi.com/api/v2/location/search?q=Hyderabad" \
-H "X-API-Key: YOUR_KEY"
# returns cities[0] with latitude, longitude, and a numeric utcOffset of 5.5
# Step 2: declination parallels for that place and moment
curl -s -X POST "https://roxyapi.com/api/v2/vedic-astrology/parallels" \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-02-03","time":"12:00:00","latitude":17.385044,"longitude":78.486671,"timezone":5.5,"orb":1.5}'
const KEY = process.env.ROXY_API_KEY!;
const base = "https://roxyapi.com/api/v2";
const loc = await fetch(`${base}/location/search?q=Hyderabad`, {
headers: { "X-API-Key": KEY },
}).then((r) => r.json());
const city = loc.cities[0];
const res = await fetch(`${base}/vedic-astrology/parallels`, {
method: "POST",
headers: { "X-API-Key": KEY, "Content-Type": "application/json" },
body: JSON.stringify({
date: "2026-02-03",
time: "12:00:00",
latitude: city.latitude,
longitude: city.longitude,
timezone: city.utcOffset,
orb: 1.5,
}),
}).then((r) => r.json());
for (const p of res.parallels) {
console.log(`${p.planet1} ${p.type} ${p.planet2} orb ${p.orb}`);
}
import os, requests
KEY = os.environ["ROXY_API_KEY"]
base = "https://roxyapi.com/api/v2"
headers = {"X-API-Key": KEY}
loc = requests.get(f"{base}/location/search",
params={"q": "Hyderabad"}, headers=headers).json()
city = loc["cities"][0]
res = requests.post(f"{base}/vedic-astrology/parallels",
headers={**headers, "Content-Type": "application/json"},
json={
"date": "2026-02-03",
"time": "12:00:00",
"latitude": city["latitude"],
"longitude": city["longitude"],
"timezone": city["utcOffset"],
"orb": 1.5,
}).json()
for p in res["parallels"]:
print(p["planet1"], p["type"], p["planet2"], "orb", p["orb"])
Each item in parallels carries planet1, planet2, type, orb, dec1, and dec2. The planets array carries name, declination, and rightAscension. Deep-link the spec: POST /vedic-astrology/parallels. For a monthly scan use POST /vedic-astrology/parallels/monthly.
How do parallels relate to ecliptic crossings?
Parallels and ecliptic crossings are different latitude-based events that together complete a picture longitude aspects cannot give you. A declination parallel compares two planets to each other on the equatorial north-south axis. An ecliptic crossing tracks a single planet passing through zero celestial latitude, the moment it moves from one side of the ecliptic plane to the other. RoxyAPI exposes both, where parallels read pairwise aspects and ecliptic crossings read node-style transitions.
The crossings endpoint scans a full year and reports each event with a direction field of ascending (south to north) or descending (north to south), plus the sidereal longitude and zodiac sign at the crossing. The Moon crosses roughly twice per month while outer planets cross far less often. Use POST /vedic-astrology/ecliptic-crossings with a year and numeric timezone. Combining declination parallels with ecliptic crossings gives a chart engine the full out-of-plane geometry that a longitude-only aspect grid misses.
FAQ
What is a declination parallel in astrology?
A declination parallel is two planets at the same declination, meaning the same angular distance north or south of the celestial equator. It is read as equivalent in strength to a conjunction, blending the two planetary energies. Because declination is measured perpendicular to the ecliptic, a parallel can exist between planets that share no longitude aspect.
What is the difference between a parallel and a contraparallel?
A parallel has both planets on the same side of the celestial equator with near-equal declination, acting like a conjunction. A contraparallel has the planets on opposite sides at equal magnitude, acting like an opposition. RoxyAPI returns a type field set to parallel or contraparallel so the two cases are explicit in the response.
Why do most astrology APIs not return declination aspects?
Most astrology APIs compute aspects only along ecliptic longitude, so the declination dimension is never sampled and parallels are structurally invisible. It is a breadth gap rather than a math gap. RoxyAPI returns a signed declination value for each visible planet plus every parallel and contraparallel inside the orb you specify.
What orb should I use for declination parallels?
The standard and default orb for declination parallels is 1.5 degrees, which is far tighter than the 6 to 8 degree orbs common for longitude aspects. The POST /vedic-astrology/parallels endpoint accepts an orb parameter between 0.5 and 3 degrees. A tighter orb returns fewer but stronger contacts.
Which planets does the parallels endpoint cover?
The endpoint covers the 7 visible planets, Sun through Saturn, and checks all 21 unique pairs for parallel and contraparallel within your orb. Each planet entry returns its declination and right ascension. Positions are derived from Roxy Ephemeris, verified against NASA JPL Horizons.
Conclusion
Declination parallels and contraparallels are a real aspect dimension that ecliptic-longitude engines cannot see, and exposing them is a breadth advantage few providers offer. With one call to the parallels endpoint you get signed declination per planet plus every parallel and contraparallel inside your orb, ready to fold into any chart engine. Start with the Vedic Astrology API and review the pricing tiers.