Calculate transit windows and ranked timing results programmatically. ♄ GET API KEY
♄ AUTHENTICATION & BILLING
/api/v1/transits, /api/v1/electional-spellcasting, /api/v1/synastry, /api/v1/timeline/full, /api/v1/month/full, /api/v1/vedic-chart/full, /api/v1/natal-reading/full, /api/v1/aspect-interpretations/expand, and /api/v1/ai-guidance require a Bearer token. Get your key from the API Keys page.
Developer plan checkout returns through verified checkout to /api-keys. Key creation remains explicit: checkout never creates a key or runs a chargeable API request automatically.
Authorization: Bearer sk_tr_your_key_here
/api/v1/transits: 1 credit per billable calendar month (×3 when a secondChart adds the secondary and composite scans), plus 1 flat credit when transitToTransit: true. Credits exposed via x-credits-remaining.
/api/v1/electional-spellcasting: 1 credit per intent per billable calendar month, multiplied by 3 when a secondChart adds the secondary and composite scans. Transit-to-transit data is always calculated, but its scoring contribution can be disabled per request or via saved account settings.
Transit and Electional ranges may extend through the same calendar date next year. Paid work is durably queued first; jobs estimated at five minutes or more always return 202. Reuse one Idempotency-Key for network retries, then poll the returned Bearer-scoped statusUrl and hydrate resultUrl when complete.
/api/v1/synastry: 1 credit per successful compatibility report (two charts → domain-scored synastry, house overlays, and composite evidence).
/api/v1/daily-elections: 3 free uses per IP per week, then 1 credit after a successful scan. Browser users can use an app session; API and MCP clients can send Bearer-token auth.
/api/v1/timeline: free Timeline teaser, no Bearer token required. It accepts up to 5 optional dated events and returns proof moments, hinge years, and date-only age-cycle/profection signatures without persistence or credit billing.
/api/v1/timeline/full: paid full Timeline report, Bearer token required, 3 credits after a successful exact-time scan. It auto-saves the report for the API-key owner and keeps the free teaser separate.
/api/v1/month: free Month Ahead teaser, no Bearer token required. It returns deterministic daily intensity, peak windows, domains, and timing spine without persistence or credit billing.
/api/v1/month/full: paid full Month Ahead report, Bearer token required, 5 credits after a successful exact-time forecast. It adds the generated narrative, auto-saves the report for the API-key owner, and returns raw JSON only.
/api/v1/vedic-chart: free exact-birth Vedic Chart scored reading, no Bearer token required. It returns tropical Vedic confidence-weighted domain claims, Vimshottari timing, nakshatra, vargas, and a technical comparison drawer without persistence or credit billing.
/api/v1/vedic-chart/full: paid full Vedic Chart report, Bearer token required, 3 credits after a successful exact-time scan. It auto-saves the report for the API-key owner and returns raw JSON only.
/api/v1/natal-reading: free exact-birth Natal Reading teaser, no Bearer token required. It returns the hero answer, placements, the top three tensions, one growth lever, and the parenting block in child mode, without persistence or credit billing (anonymous callers: 20 per day).
/api/v1/natal-reading/full: paid full Natal Reading, Bearer token required, 3 creditsafter a successful exact-time reading. It adds every tension's pair-specific reading, the full aspect inventory, the full growth plan, the Vedic lens, the three-frame house table, midpoints, and a grounded narrative, auto-saves the reading for the API-key owner, and returns raw JSON only.
/api/v1/ai-guidance: a flat 3 credits per request, whether the request contains one item or many. Prompt templates live in prompts/*.md.
/api/v1/aspect-interpretations/expand: 1 credit only when a new exact aspect/sign/house/dignity blend is saved. Existing blends are returned without another charge.
COMPLETE PUBLIC ROUTE INDEX
Every public POST /api/v1 route is listed here with its auth model, credit behavior, and matching MCP tool name. The generated endpoint reference below gives a request example, response shape, and consumer notes for every route.
ROUTE
AUTH
CREDITS
MCP TOOL
USE
/api/v1/ai-guidance
bearer
3 credits per successful guidance request.
generate_ai_guidance
Paid grounded guidance over transit, election, solar-return, or timeline payloads.
/api/v1/aspect-interpretations/expand
bearer
1 credit only when a new blend is created.
expand_aspect_interpretation
Creates or returns a permanent exact aspect/sign/house/dignity interpretation blend.
/api/v1/daily-elections
session_or_bearer
3 free IP uses per week, then 1 credit; paid overlays add credits.
calculate_daily_elections
Scans all electional intents for the next 24 hours or scores one exact now chart.
/api/v1/electional-spellcasting
bearer
1 credit per intent per billable calendar month, times chart count; overlays are additive.
calculate_electional_spellcasting
Finds ranked election windows for one or many intents from one shared scan.
/api/v1/eclipse-hits
free
Free; public scans are capped at 10 years.
calculate_eclipse_hits
Free exact-time natal eclipse contact checker over a capped public scan range.
/api/v1/month
free
Free.
calculate_month_forecast_teaser
Free exact-birth Month Ahead forecast shell without persistence.
/api/v1/month/full
bearer
5 credits per successful report.
calculate_month_forecast
Paid Month Ahead report with generated narrative and auto-save.
/api/v1/personality-interpretation
free
Free; cache-miss generation is IP-rate-limited.
generate_personality_interpretations
Batch cache endpoint for big-three, pair, and stack personality interpretation text.
/api/v1/placement-interpretation
free
Free; generated once per unique placement when configured.
generate_placement_interpretation
Cache endpoint for one planet/sign/house placement interpretation.
/api/v1/retrograde-hits
free
Free; public scans are capped at 10 years.
calculate_personalized_retrograde_hits
Free exact-time Mercury, Venus, and Mars retrograde contact checker.
/api/v1/solar-return
bearer
1 credit per successful report.
calculate_solar_return
Computes annual profection, solar-return chart context, and SR transit windows.
/api/v1/solar-return/elect-location
bearer
3 credits per successful location election.
calculate_solar_return_location_election
Ranks birthday cities for a solar-return intent category using the curated city set.
/api/v1/synastry
bearer
1 credit per successful compatibility report.
calculate_synastry_compatibility
Domain-scored relationship compatibility (marriage, business, and more) from synastry inter-aspects, house overlays, and the composite chart.
/api/v1/timeline
free
Free.
calculate_timeline_teaser
Free date-only or partial timeline teaser with proof moments and hinge years.
/api/v1/timeline/full
bearer
3 credits per successful report.
calculate_timeline_full_report
Paid exact-time full timeline with dated-event retrodiction and auto-save.
/api/v1/transit-interpretation
free
Free; generated once per unique transit pattern when configured.
generate_transit_interpretations
Batch cache endpoint for generic transit-to-natal interpretation text.
/api/v1/transits
bearer
1 credit per billable calendar month, times chart count; transit-to-transit and overlays are additive.
calculate_transits
Calculates natal-to-transit and optional transit-to-transit aspect hits.
/api/v1/vedic-chart
free
Free.
calculate_vedic_chart_teaser
Free exact-birth Vedic scored reading with frame comparison and predictive timing.
/api/v1/vedic-chart/full
bearer
3 credits per successful report.
calculate_vedic_chart
Paid full Vedic Chart report with saved scored reading and deep technical sections.
/api/v1/vedic-chart/predictions
free
Free.
calculate_vedic_chart_predictions
Free deterministic predictive Vedic report used by the predictions route and overlays.
/api/v1/natal-reading
free
Free.
calculate_natal_reading_teaser
Free exact-birth natal reading teaser: placements, top tensions, one growth lever, and a child/parenting mode.
/api/v1/natal-reading/full
bearer
3 credits per successful report.
calculate_natal_reading
Paid full natal reading with every tension's pair-specific reading, full aspect inventory, growth plan, Vedic lens, house-frame comparison, midpoints, grounded AI narrative, and auto-save.
/api/v1/proof-synthesis
free
Free.
calculate_proof_synthesis
Free cross-system life-guess synthesis: combines Timeline dated cycles with Vedic domain scores into concrete, window-level, falsifiable life guesses.
/api/v1/window-synthesis
session_or_ip
Free; anonymous usage is IP-rate-limited.
generate_window_synthesis
Free grounded synthesis over rendered election, transit, Vedic, synastry, or natal reading result items.
COMPLETE ENDPOINT REFERENCE
This section is generated from the shared public API catalog used by the MCP server docs. Treat each response as a representative shape; production responses can include additional evidence fields.
POST
AI Guidance
/api/v1/ai-guidance
Paid grounded guidance over transit, election, solar-return, or timeline payloads.
/api/v1/personality-interpretation response example
{
"interpretations": [
{
"tier": "bigthree",
"key": "v1|bigthree|sagittarius|pisces|gemini",
"text": "A concise grounded interpretation for this Big Three stack."
}
],
"rateLimited": false
}
CONSUMER NOTES
Accepts up to 40 items and silently drops malformed items after normalization.
Cache hits are unlimited; cache-miss generation is IP-rate-limited.
The endpoint returns generic reusable text and does not consume credits.
POST
Placement Interpretation
/api/v1/placement-interpretation
Cache endpoint for one planet/sign/house placement interpretation.
AUTH
free
CREDITS
Free; generated once per unique placement when configured.
Bearer token required; charges 1 credit per billable calendar month times chart count, plus optional add-ons.
Provide either locationQuery or latitude plus longitude; relocation settings affect transit frame only.
Each transit hit includes enter/exact/exit ISO timestamps when a span can be resolved.
Optional secondChart (person or event) scans the second and composite charts too (monthly base credits ×3) and returns chartResults plus a synastry relationship compatibility report.
POST
Vedic Chart Teaser
/api/v1/vedic-chart
Free exact-birth Vedic scored reading with frame comparison and predictive timing.
{
"metadata": {
"version": "v1",
"locationLabel": "Dunedin, FL, USA",
"frames": [
"western_tropical",
"tropical_vedic",
"sidereal_vedic"
],
"savedItemId": "calc_vedic_123"
},
"comparisonFrames": [],
"domains": [],
"dashaClock": null,
"predictiveWindows": [],
"vargaDeepDives": [
{
"code": "D9",
"title": "D9 · Navamsa — the inner self, spouse, dharma",
"sections": [
"In the tropical navamsa the lagna lord holds its own sign, traditionally read as a steady core rather than a promise.",
"The D9 lagna lord sits in the 1st in its own sign (D9 lagna Leo · Sun Leo 1st (own))"
]
}
]
}
CONSUMER NOTES
Bearer token required; successful full reports cost 3 credits and auto-save to the user account.
vargaDeepDives carries all sixteen evaluated Shodashavarga readings with receipted findings.
Use includeVargaDeepDive when the consumer needs technical varga sections.
The response is raw JSON and preserves the frame-comparison evidence rather than returning HTML.
POST
Vedic Chart Predictions
/api/v1/vedic-chart/predictions
Free deterministic predictive Vedic report used by the predictions route and overlays.
{
"metadata": {
"creditsCharged": 0,
"fullReportAvailable": true,
"reportMode": "teaser",
"locationLabel": "Dunedin, FL, USA",
"houseSystem": "P",
"subject": "self",
"generatedAtIso": "2026-08-23T12:00:00.000Z"
},
"report": {
"version": "natal-reading-v1",
"mode": "self",
"subjectLabel": "you",
"teaser": true,
"hero": {
"eyebrow": "Natal reading",
"title": "Saturn-led chart with a Sun square Saturn tension to work",
"summary": "Structure is the strength; self-permission is the practice.",
"signals": [
"Saturn angular in the 10th",
"Sun square Saturn, 1.8 degrees"
],
"receipt": "Saturn ♑ 10th"
},
"placements": [],
"signatures": [],
"tensions": [],
"gifts": [],
"growth": [],
"caveats": [
"Dates and positions are astronomy; meanings are traditional astrology, not certainties."
]
}
}
CONSUMER NOTES
Free, no bearer token: requires exact birth date, time, and place (city query or latitude/longitude).
subject "child" switches to parenting mode: tendencies, what helps, what backfires; romance, sexuality, and career-legacy domains are never named for minors.
Teaser responses are trimmed (top 3 tensions, one growth lever, empty aspect inventory, no house-frame table or midpoints); use /api/v1/natal-reading/full for the complete reading.
Every interpretive item carries a receipt such as "Venus ♋ 4th □ Saturn ♈ 1st, 1.8°"; tensions surface only within 6 degrees in exact/tight/moderate tiers.
POST
Natal Reading Full Report
/api/v1/natal-reading/full
Paid full natal reading with every tension's pair-specific reading, full aspect inventory, growth plan, Vedic lens, house-frame comparison, midpoints, grounded AI narrative, and auto-save.
{
"metadata": {
"creditsCharged": 3,
"creditsRemaining": 7,
"fullReportAvailable": true,
"reportMode": "deep",
"locationLabel": "Dunedin, FL, USA",
"houseSystem": "P",
"subject": "child",
"savedItemId": "calc_natal_123",
"generatedAtIso": "2026-08-23T12:00:00.000Z"
},
"report": {
"version": "natal-reading-v1",
"mode": "child",
"subjectLabel": "Eli",
"ageBand": "7-12",
"teaser": false,
"hero": {
"eyebrow": "Natal reading",
"title": "Moon-led chart with a Moon opposition Saturn tension to support",
"summary": "Feelings run deep and want proof of safety; steady routines help.",
"signals": [
"Moon angular in the 4th",
"Moon opposition Saturn, 2.4 degrees"
],
"receipt": "Moon ♋ 4th"
},
"placements": [],
"signatures": [],
"tensions": [],
"gifts": [],
"growth": [],
"parenting": {
"ageBand": "7-12",
"voice": "Written for the adult raising this child.",
"cautions": []
},
"houseFrames": {
"table": [],
"divergences": []
},
"caveats": []
},
"aiNarrative": {
"text": "A grounded natal portrait anchored to the receipts above.",
"model": "glm-5.2",
"receipts": [
"Moon ♋ 4th"
]
}
}
CONSUMER NOTES
Bearer token required; successful full reports cost 3 credits, auto-save as a natal_reading item, and refund on failure.
aiNarrative is nullable: the deterministic report always ships and the grounded narrative degrades to null when the provider is down or the output stays ungrounded.
The session equivalent is POST /api/calculations/natal-reading (durable report job); this route returns the finished JSON synchronously.
POST
Proof Synthesis
/api/v1/proof-synthesis
Free cross-system life-guess synthesis: combines Timeline dated cycles with Vedic domain scores into concrete, window-level, falsifiable life guesses.
{
"metadata": {
"creditsCharged": 0,
"birthTimeMode": "exact",
"locationLabel": "Dunedin, FL, USA",
"referenceDateIso": "2026-07-01"
},
"guesses": [
{
"kind": "past_event",
"lifeArea": "marriage",
"claim": "You likely formed or ended a major committed partnership around 2018.",
"window": "2018",
"confidence": "strong",
"falsifiableCheck": "Did a marriage, engagement, or serious breakup happen around then?",
"evidenceRefs": [
"Pluto conjunction natal Venus",
"Marriage & spouse (score 78)"
]
}
],
"evidence": {
"pastWindows": [],
"lifeDomains": [],
"hingeYears": []
},
"synthesisError": null
}
CONSUMER NOTES
Free, no bearer token: requires exact birth date, time, and place; reuses the Vedic chart request schema.
Combines Timeline dated cycles and Vedic domain scores into concrete, window-level, falsifiable life guesses.
Guesses are window-level only; the deterministic evidence bundle always ships and the AI guess layer degrades to an empty list when the provider is down.
Optional streaming: send `Accept: application/x-ndjson` to receive two NDJSON events — `{type:"evidence"}` (deterministic report, fast) then `{type:"complete"}` (full report with AI guesses). Default JSON behavior is unchanged.
POST
Window Synthesis
/api/v1/window-synthesis
Free grounded synthesis over rendered election, transit, Vedic, synastry, or natal reading result items.
{
"synthesis": {
"headline": "Best used for outreach with a clear ask.",
"bullets": [
"Lead with the strongest contact window.",
"Keep the follow-up within the same afternoon."
]
}
}
CONSUMER NOTES
Accepts election, transits, vedic, synastry, or natal domains and up to 96 items after truncation.
Anonymous usage is IP-rate-limited; signed-in users bypass the weekly anonymous cap.
Failures degrade to synthesis null so clients should keep deterministic fallback copy.
POST/api/v1/month
Free Month Ahead teaser for exact birth data. No Bearer token required. It returns the deterministic forecast shell: verdict, daily intensity, peak windows, confidence-ranked domains, timing spine, flat evidence events, and provenance.
REQUEST BODY - JSON
FIELD
TYPE
DEFAULT
DESCRIPTION
birthDate*
string
REQ
Birth date YYYY-MM-DD.
birthTime*
string
REQ
Exact birth time HH:MM.
locationQuery
string?
—
City search, e.g. "Denver, CO"; required unless latitude and longitude are supplied.
latitude
number?
—
Birth latitude. Must be supplied with longitude when no locationQuery is used.
longitude
number?
—
Birth longitude. Must be supplied with latitude when no locationQuery is used.
Paid full Month Ahead report for exact birth data. Bearer token required. Costs 5 credits only after payload validation and sufficient-credit checks succeed.
This route returns raw JSON only: the deterministic forecast plus the generated narrative, credit metadata, and the saved Month Ahead item id. Web-session customers use the same engine through /api/calculations/month.
Free Vedic Chart scored reading for exact birth data. No Bearer token required. The default reportMode is scored_reading: tropical Vedic domain claims with deterministic confidence weights, frame-proof flags, the current Vimshottari dasha spine, Moon nakshatra, vargas, and a secondary tropical/sidereal comparison.
REQUEST BODY - JSON
FIELD
TYPE
DEFAULT
DESCRIPTION
birthDate*
string
REQ
Birth date YYYY-MM-DD.
birthTime*
string
REQ
Exact birth time HH:MM.
locationQuery
string?
—
City search, e.g. "Denver, CO"; required unless latitude and longitude are supplied.
latitude
number?
—
Birth latitude. Must be supplied with longitude when no locationQuery is used.
longitude
number?
—
Birth longitude. Must be supplied with latitude when no locationQuery is used.
timezone
string?
—
Optional IANA timezone override.
houseSystem
string
P
House system for lagna, houses, and comparison frames.
relocationQuery
string?
—
Optional current or relocated city, e.g. "Boulder, CO".
frames
array?
all
western_tropical, tropical_vedic, sidereal_vedic.
reportMode
string
scored_reading
scored_reading for the default domain tables; compare keeps the legacy comparison-first contract reachable.
Paid full Vedic Chart report for exact birth data. Bearer token required. Costs 3 credits only after payload validation and sufficient-credit checks succeed.
This route returns raw JSON only: the full scored reading plus Western tropical, Tropical Vedic, and sidereal Vedic technical comparison, Vimshottari dasha, nakshatra stack, varga summaries, and predictive domain cards. No HTML is returned.
Free Natal Reading teaser for exact birth data. No Bearer token required. It casts the chart once and returns a deterministic, receipt-backed reading: a hero answer, placements with dignity, four signatures (rising, Sun, Moon, Saturn), the top three ranked tensions, one gift, one growth lever, and, with subject: "child", a trimmed parenting block written for the adult raising the child. The MCP tool is calculate_natal_reading_teaser.
REQUEST BODY - JSON
FIELD
TYPE
DEFAULT
DESCRIPTION
birthDate*
string
REQ
Birth date YYYY-MM-DD (1900 through next year).
birthTime*
string
REQ
Exact birth time HH:MM. Rising sign and houses need it; there is no date-only mode.
locationQuery
string?
—
City search, e.g. "Denver, CO"; required unless latitude and longitude are supplied.
latitude
number?
—
Birth latitude. Must be supplied with longitude when no locationQuery is used.
longitude
number?
—
Birth longitude. Must be supplied with latitude when no locationQuery is used.
timezone
string?
—
Optional IANA timezone override; otherwise resolved from the coordinates.
houseSystem
string
P
Primary house frame. Placidus, Koch, and whole-sign are always also cast for the comparison table.
subject
string
self
self or child. child switches the framing layer: parent-addressed copy, no Lilith, no adult themes.
subjectName
string?
—
Optional name (letters, spaces, apostrophes, hyphens; max 40) used to address a child reading.
includeLilith
boolean
true
false drops Black Moon Lilith from signatures, tensions, and growth levers.
referenceDate
string?
—
YYYY-MM-DD used only for the child age band; defaults to the generation date.
Paid full Natal Reading for exact birth data. Bearer token required. Costs 3 credits only after payload validation and sufficient-credit checks succeed; a failure after the reservation refunds the credits.
This route returns raw JSON only: the untrimmed reading with every tension and its pair-specific reading, the full aspect inventory, up to four gifts, the full growth plan, the Vedic lens, the Placidus/Koch/whole-sign house-frame table, display-only midpoints, and a grounded narrative that is null when no AI provider is available. The reading auto-saves as a natal_reading item for the API-key owner. The MCP tool is calculate_natal_reading.
Free Timeline teaser: past-only proof moments and hinge years from your birth date alone, plus optional retrodiction of up to 5 dated past events against universal age cycles, approximate noon UTC planetary hits, and profection basics. No Bearer token required.
REQUEST BODY - JSON
FIELD
TYPE
DEFAULT
DESCRIPTION
birthDate*
string
REQ
Birth date YYYY-MM-DD.
natalAscLongitude
number?
—
Optional natal Ascendant longitude, 0 <= longitude < 360, used to name profected sign and Lord of Year.
events
array?
[]
Up to 5 optional dated events shaped as { id, label, date }.
{
"metadata": {
"eventCount": 3,
"birthTimeMode": "date_only",
"creditsCharged": 0,
"fullReportAvailable": false
},
"analysis": {
"events": [
{
"label": "Moved cities",
"ageDecimal": 29.567,
"universalAgeCycles": [{ "cycleId": "saturn-return-1" }],
"dateOnlyPlanetaryHits": [
{ "transitingPoint": "saturn", "aspect": "square", "natalPoint": "sun", "orbDegrees": 0.2 }
],
"profection": { "mode": "date_only", "profectionHouse": 6 }
}
],
"caveats": [
"Birth time not supplied; house cusps, angles, and Lord of Year are omitted.",
"Date-only planetary hits use noon UTC birth/event planetary positions; Moon, angles, houses, and exact timing require the full report."
]
}
}
POST/api/v1/timeline/full
Paid full Timeline report for exact birth data. Bearer token required. Costs 3 credits only after payload validation and sufficient-credit checks succeed.
This route runs exact-time natal angles, Fortune and Spirit lots, generated eclipse contacts, event transit windows, annual profections, and optional lifetime transit scanning, then saves the finished report to the authenticated user account.
REQUEST BODY - JSON
FIELD
TYPE
DEFAULT
DESCRIPTION
birthDate*
string
REQ
Birth date YYYY-MM-DD.
birthTime*
string
REQ
Exact birth time HH:MM.
locationQuery
string?
—
City search, e.g. "Denver, CO"; required unless latitude and longitude are supplied.
latitude
number?
—
Birth latitude. Must be supplied with longitude when no locationQuery is used.
longitude
number?
—
Birth longitude. Must be supplied with latitude when no locationQuery is used.
timezone
string?
—
Optional IANA timezone override for the birth location.
houseSystem
string
P
House system for natal angles and profected house labels.
events
array?
[]
Up to 5 optional dated events shaped as { id, label, date }.
eventTransitWindowDays
integer
30
Days to scan around each dated event. Range 1-90.
lifetimeEndDate
string?
—
Optional YYYY-MM-DD end date for a lifetime transit scan; must be after birthDate.
Find top discoverable asteroid contacts at 1 degree conjunction/opposition only.
fixedStarFinder
boolean
false
Find top-ten fixed-star plus galactic-point contacts at 1 degree conjunction/opposition only.
midpoints
boolean
false
Include the natal Ebertin midpoint layer (Sun/Moon + ASC/MC midpoints, midpoint pictures) plus transit-to-midpoint activation windows over the scanned range. No extra credits.
secondChart
object?
—
Optional second chart (person or exactly-timed event; same fields as the electional secondChart). The scan also runs for this chart and the composite (midpoint) chart — monthly base credits ×3 — and the response adds chartResults plus a synastry compatibility report.
{
"error": "Insufficient API credits.",
"code": "INSUFFICIENT_API_CREDITS",
"remainingCredits": 0
}
✦ ERROR CODES
STATUS
MEANING
401
Missing, invalid, or revoked API key.
402
Insufficient API credits.
400
Invalid request body.
500
Server calculation error.
POST/api/v1/electional-spellcasting
Generate ranked timing windows for a selected goal using house-first scoring.
Credit model: 1 CREDIT PER INTENT PER BILLABLE CALENDAR MONTH. Transit-to-transit data is still calculated for every electional request, while its scoring contribution can now be disabled through request scoring settings.
Engine: Layered Electional Scoring. 40 live rule layers across 7 ordered passes, with transit-to-natal weighting kept above transit-to-transit refinement.
☽ REQUIRED FIELDS
FIELD
TYPE
DEFAULT
DESCRIPTION
intentId
string?
—
Singular timing goal; provide exactly one of intentId or intentIds.
intentIds
string[]?
—
One to 72 unique timing goals, scored from one shared scan.
birthDate*
string
REQ
Birth date YYYY-MM-DD.
birthTime*
string
REQ
Birth time HH:MM (24h).
locationQuery
string?
—
City search text.
latitude
number?
—
Latitude coordinate.
longitude
number?
—
Longitude coordinate.
timezone
string?
—
Birth timezone override for natal conversion.
startDate
string?
today
Scan start.
endDate
string?
+7d
Scan end.
rangeDays
integer?
7
Compatibility duration; normalized to an absolute end date. Maximum one calendar year.
delivery
string?
auto
"auto" briefly waits for short jobs; "async" always returns 202. Five-minute estimates are forced async.
transitingPoints
string[]
Magi 11
Transiting bodies included in scoring and chart output.
aspects
string[]
All 13
Transit aspect types to calculate. Session-based UI requests fall back to saved account defaults.
orbDegrees
number
3
Longitude orb (0.01-6).
declinationOrbDegrees
number
1.2
Declination orb (0.01-3).
houseSystem
string
P
House system for angles and cusps.
strictness
string
standard
"relaxed" | "standard" | "strict".
natalWeight
number
1
Natal weight (0-2).
maxWindows
integer
2
Max windows (1-20).
asteroidFinder
boolean
true
Find asteroid discovery contacts at 1 degree conjunction/opposition only; curated ones add a small hard-capped Pass 7 contribution and never create a window.
fixedStarFinder
boolean
true
Find top-ten fixed-star plus galactic-point discovery contacts at 1 degree conjunction/opposition only; curated ones add a small hard-capped Pass 7 contribution and never create a window.
scoring.enabledPasses
string[]?
All 7
Optional pass ids to keep active in the returned score.
scoring.enabledRules
string[]?
All rule groups
Optional scoring-rule ids to keep active in the returned score.
scoring.aspectPotencies
object?
Production defaults
Optional per-aspect strength multipliers, e.g. make sextile weaker or stronger for this request.
scoring.useNatalHouseFrameOnly
boolean?
false
The elected chart is the default frame. Set true to ignore temporary election Asc/MC, election-frame sect/hayz, lots, and node-to-angle scoring while retaining natal-house transit placement.
relocationQuery
string?
—
Optional current-location search text for relocated angles/houses.
relocationLatitude
number?
—
Manual relocation latitude.
relocationLongitude
number?
—
Manual relocation longitude.
secondChart
object?
—
Optional second chart (another person or an exactly-timed event). When set, the scan runs across the primary chart, this chart, and their composite (midpoint) chart; extra results return in chartResults and the credit cost is multiplied by 3.
secondChart.kind
string?
person
"person" | "event".
secondChart.label
string?
—
Display label echoed back on chartResults.
secondChart.birthDate*
string
REQ
Second chart date YYYY-MM-DD (birth or event).
secondChart.birthTime*
string
REQ
Second chart time HH:MM (24h).
secondChart.locationQuery
string?
—
City search text, or supply latitude+longitude.
secondChart.latitude
number?
—
Second chart latitude.
secondChart.longitude
number?
—
Second chart longitude.
secondChart.timezone
string?
—
Timezone override for the second chart's local time.
Window rationale may include advanced diagnostics already active in production, including natal target condition, return windows, true void-of-course with exact sign-exit time in moonVoidOfCourse.endsAtIso, Via Combusta, besiegement, lots, antiscia, and nodal or translation/perfection notes when present. Asteroid, fixed-star, and galactic discovery contacts are returned in discoveryHits/discoveryHitInsights. Curated catalog members score as bounded minor testimonies in score.pass7DiscoveryContacts (cap 3/-3); matches outside the catalog stay display-only. They never create a candidate window and never define a window's span.
Integrity receipts are observational only. Each window's integrityDiagnostics identifies the nearest exact syzygy and the Moon's next major perfected aspect (or its void/unavailable state). Top-level scanDiagnostics records gaps longer than three hours between candidate exactitudes plus Mars/Saturn-on-ASC/MC intervals that contain no candidate peak. These fields do not alter nomination, scoring, gates, or rank. Multi-chart responses place additional timing-frame audits in chartScanDiagnostics.
With secondChart set, the top-level windows stay the primary chart's results and an additional chartResults array carries one entry per extra chart (chartKey of secondary or composite, its label, per-chart natal geometry, and its own windows). The composite chart uses shortest-arc midpoints, skips declination contacts and annual (solar-return) context, and anchors planetary day/hour timing at the primary chart's location. A relationship field also rides along with the same domain-scored synastry compatibility report returned by /api/v1/synastry, at no extra credit cost.
POST/api/v1/synastry
Domain-scored relationship compatibility for two charts (people or exactly-timed events): marriage & romance, business & partnership, communication, chemistry, stability, and friction — derived from synastry inter-aspects, bidirectional house overlays, and the composite (midpoint) chart's internal aspects. Every domain ships its contributing contacts as receipts.
Credit model: 1 CREDIT per successful report. Raw JSON only; not auto-saved.
☽ REQUEST FIELDS
FIELD
TYPE
DEFAULT
DESCRIPTION
chartA / chartB*
object
REQ
Two charts; each needs birthDate (YYYY-MM-DD), birthTime (HH:MM), and locationQuery OR latitude+longitude, plus optional label and timezone.
houseSystem
string
P
House system used for overlay cusps.
orbDegrees
number
3
Synastry inter-aspect orb (0.5-6). Composite internal aspects use a fixed 4-degree orb.
The friction_challenges domain is inverted: a high percent means more friction and its band reads accordingly. Domains without qualifying contacts carry an explicit neutral caveat instead of implying a negative verdict; house-overlay evidence requires both exact birth times.
POST/api/v1/daily-elections
Scan all 72 intents across the next 24 hours from the user's browser-time moment and return up to 2 ranked windows per intent in one flattened, score-sorted list. Use now mode to score one exact election at browser time.
Auth model: 3 free uses per IP per week. After that, the route requires an authenticated app session and charges 1 credit after a successful scan.
Advanced windowing: optional startTime and endTime narrow the actual scan window inside that rolling 24-hour range. They do not filter a full-range result set after the fact, and they cannot be combined with scanMode: "now".
☿ REQUEST BODY — JSON
FIELD
TYPE
DEFAULT
DESCRIPTION
birthDate*
string
REQ
Birth date YYYY-MM-DD.
birthTime*
string
REQ
Birth time HH:MM (24h).
scanMode
"day" | "now"
"day"
Use day for the rolling 24-hour scan, or now to score exactly browserNowIso.
startTime
string?
—
Optional local scan start HH:MM, clipped to the rolling 24-hour range. Must be paired with endTime.
endTime
string?
—
Optional local scan end HH:MM, clipped to the rolling 24-hour range. Must be later than startTime.
locationQuery
string?
—
Birthplace search, e.g. "Paris, France".
latitude
number?
—
Birth latitude (-90..90).
longitude
number?
—
Birth longitude (-180..180).
timezone
string?
—
Birth timezone override for natal conversion.
browserNowIso
string?
—
Optional browser timestamp that anchors the rolling 24-hour scan.
browserTimezone
string?
—
Optional browser IANA timezone used to resolve scan labels and clock windows.
aspects
string[]?
All 13
Optional transit aspects to calculate for the daily scan.
asteroidFinder
boolean
true
Find asteroid discovery contacts at 1 degree conjunction/opposition only; curated ones add a small hard-capped Pass 7 contribution and never create a window.
fixedStarFinder
boolean
true
Find fixed-star and galactic-point discovery contacts at 1 degree conjunction/opposition only; curated ones add a small hard-capped Pass 7 contribution and never create a window.
scoring.enabledPasses
string[]?
All 7
Optional pass ids to keep active in daily-election scoring.
scoring.enabledRules
string[]?
All rule groups
Optional scoring-rule ids to keep active in daily-election scoring.
scoring.aspectPotencies
object?
Production defaults
Optional per-aspect strength multipliers for daily-election scoring.
scoring.useNatalHouseFrameOnly
boolean?
false
The elected chart is the default frame. Set true to suppress temporary election Asc/MC and related election-frame evidence while retaining natal-house transit placement.
relocationQuery
string?
—
Optional current-location search text for relocated angles and houses.
Day-mode responses include the same observational integrity receipts as the full electional endpoint: per-window syzygy/next-Moon-perfection context and a shared candidate-gap plus malefic-angle scan audit. They do not affect window selection or ordering. Exact-now mode has no scan interval, so it returns only the per-window receipt.
POST/api/v1/aspect-interpretations/expand
Save an exact aspect interpretation blend for reuse across the app. The permanent key includes chart surface, relationship type, aspect domain, aspect, both points, roles, signs, houses, and dignity; orb and applying/separating state are excluded.
Credit model: 1 CREDIT when the exact blend does not already exist. Existing saved blends return with creditsCharged: 0.
{
"expansionKey": "expand|v1|transits|natal_to_transit|zodiac|transiting|sun|Leo|11|domicile|square|natal|moon|Scorpio|3|fall",
"created": true,
"creditsCharged": 1,
"creditsRemaining": 6,
"interpretation": {
"title": "Sun square Moon",
"summary": "Sun (Leo, H11) square Moon (Scorpio, H3): ...",
"chartFlavor": "Leo injects expressive visibility into Sun... Sun is in domicile in Leo...",
"practical": "..."
}
}
POST/api/v1/ai-guidance
Generate grounded guidance from transit hits, election windows, solar-return dossiers, or Timeline reports using editable Markdown prompt templates. Z.ai GLM is primary; the Gemini Developer API is the automatic fallback.
Credit model: FLAT 3 CREDITS PER REQUEST. The route reserves credits before provider generation, saves successful guidance before returning it, and refunds credits if both providers fail or auto-save fails. Invalid requests, missing provider configuration, and insufficient-credit responses do not call a provider or consume credits.
Prompt selection: prompts/{domain}-{orientation}-{scope}.md. The accepted domain values are sourced from the request schema below; orientation is pragmatic or esoteric, and scope is single or many.
Chooses the transit, election, solar-return, or Timeline prompt family.
orientation*
"pragmatic" | "esoteric"
REQ
Chooses practical action guidance or magical/ritual guidance.
scope*
"single" | "many"
REQ
Chooses single-item or multi-item prompt structure.
item
object
—
Required when scope is single. The request keeps the same flat cost.
items
object[]
—
Required when scope is many. Direct prompt input is compacted and capped at 96 items; the request keeps the same flat cost.
context
object?
—
Optional non-item metadata such as natal data, intent, scan metadata, or user settings.
question
string?
—
Optional user-specific question to steer the guidance.
model
string?
—
Optional provider-family model override. glm-* applies to Z.ai generation; gemini-* applies if Gemini fallback is used. It does not force provider selection.
1. Clone this repository locally and run npm install in the repo root.
2. Download the Claude Desktop template above and open your local MCP config file.
3. Replace /ABSOLUTE/PATH/TO/transits/src/mcp/index.ts with the full absolute path to your local checkout.
4. Set TRANSITS_API_URL to your Electional API base URL and TRANSITS_API_KEY to a live API key from /api-keys.
5. Save the config and fully restart Claude Desktop so the MCP server is reloaded.
Important: desktop MCP clients generally need an absolute file path here. A relative path like src/mcp/index.ts is not reliable outside the repo root.
WHAT YOU GET
The MCP server currently exposes generate_ai_guidance, expand_aspect_interpretation, calculate_daily_elections, calculate_electional_spellcasting, calculate_eclipse_hits, calculate_month_forecast_teaser, calculate_month_forecast, generate_personality_interpretations, generate_placement_interpretation, calculate_personalized_retrograde_hits, calculate_solar_return, calculate_solar_return_location_election, calculate_synastry_compatibility, calculate_timeline_teaser, calculate_timeline_full_report, generate_transit_interpretations, calculate_transits, calculate_vedic_chart_teaser, calculate_vedic_chart, calculate_vedic_chart_predictions, calculate_natal_reading_teaser, calculate_natal_reading, calculate_proof_synthesis, generate_window_synthesis. All tools call the same live REST API documented on this page. Credit costs match direct API calls; calculate_timeline_full_report uses /api/v1/timeline/full and follows its 3 credits successful-report charge, calculate_month_forecast uses /api/v1/month/full and follows its 5 credits successful-report charge, calculate_vedic_chart uses /api/v1/vedic-chart/full and follows its 3 credits successful-report charge, and calculate_natal_reading uses /api/v1/natal-reading/full and follows its 3 credits successful-report charge (calculate_natal_reading_teaser stays free).