Astraluno · Free, without an account

Developers: free public API and MCP

Integrate verified birth charts and sky events with the free Astraluno REST API and MCP server. No keys, explicit uncertainty, no birth data stored or logged.

Open calculations and readings

Use REST to integrate a website or the MCP server to give assistants verified Sun, Moon, rising sign and sky calculations. Free, read-only, no keys or account. Tropical zodiac, geocentric positions, Whole Sign houses.

No birth data is stored or logged. Bodies and query strings never enter access logs, stats or error reports. An API/MCP call sends inputs only for transient computation; the website calculator runs in the browser. The service does not retain profiles. Your chosen client has its own provider policies.

60 compute or MCP POST requests/minute/IP; 120 light requests. Each batch member counts. The limit is checked before reading the body; 429 includes Retry-After in seconds. Maximum body 32 KiB, maximum batch 60 messages. CORS * without credentials.

REST: ready-to-use examples

The example birth data is fictitious. Event searches use [from,to) in UTC, maximum 400 days. Retrograde years run from 1900 through 2099.

OpenAPI 3.1 · Generated from Zod schemas, with inputs, outputs and examples.

POST /api/v1/chart

curl --fail-with-body -sS 'https://astraluno.com/api/v1/chart' -H 'Content-Type: application/json' --data '{"birth_date":"1990-05-17","birth_time":"14:35","time_precision":"exact","place":{"id":3173435},"lang":"en"}'

GET /api/v1/sun-sign

curl --fail-with-body -sS 'https://astraluno.com/api/v1/sun-sign?date=1990-05-17&timezone=Europe%2FRome'

GET /api/v1/sky

curl --fail-with-body -sS 'https://astraluno.com/api/v1/sky?at=2026-10-13T12%3A00%3A00Z&timezone=Europe%2FRome'

GET /api/v1/retrogrades

curl --fail-with-body -sS 'https://astraluno.com/api/v1/retrogrades?planet=mercury&year=2027'

GET /api/v1/ingresses

curl --fail-with-body -sS 'https://astraluno.com/api/v1/ingresses?planet=venus&from=2027-01-01&to=2028-01-01'

GET /api/v1/lunations

curl --fail-with-body -sS 'https://astraluno.com/api/v1/lunations?from=2027-01-01&to=2027-02-01&timezone=Europe%2FRome'

GET /api/v1/places

curl --fail-with-body -sS 'https://astraluno.com/api/v1/places?q=Milano&lang=en&limit=8'

GET /api/v1/readings/body-in-sign/venus-in-leo

curl --fail-with-body -sS 'https://astraluno.com/api/v1/readings/body-in-sign/venus-in-leo?lang=en'

GET /api/v1/openapi.json

curl --fail-with-body -sS 'https://astraluno.com/api/v1/openapi.json'

Chart inputs

birth_date, birth_time?, time_precision exact, approximate or unknown. Approximate requires approx_window_minutes: 15, 30, 60 or 120 (a ± window). Place is {id} from /places or {latitude, longitude, timezone}. Optional utc_offset_override_sec, ambiguity: earlier|later and lang for any published locale.

Results and uncertainty

The engine snapshot stays intact, accompanied by a summary and links. All degrees have numbers and D°MM′ strings: degree_strings maps JSON pointers to the original numbers, including ranges and orbs. Dates and times declare the IANA zone used. Event instants retain empirical uncertainty windows.

Assistants must ask for missing time and place instead of guessing. Unknown time: no rising sign or houses, two Moon signs when the Moon changes sign that day. Solar cusps retain the estimated ingress and alternatives. Time without timezone is rejected; without time and zone all local-day conversions are considered.

{
  "error": {
    "code": "AMBIGUOUS_LOCAL_TIME",
    "message": "Choose earlier or later",
    "details": {
      "candidates": []
    }
  }
}

Errors reuse engine codes: OUT_OF_RANGE, AMBIGUOUS_LOCAL_TIME with candidates, NONEXISTENT_LOCAL_TIME. Real candidates include UTC and offset. Do not retry with an invented time.

MCP · Streamable HTTP

https://astraluno.com/mcp · Stateless JSON; no SSE required. Accepts application/json and */*, params: null and JSON-RPC batches. Every tool returns structuredContent with source, url, result or error, plus quotable text and outputSchema.

  • search_birthplace : Find and disambiguate birthplaces
  • get_big_three : Sun, Moon and rising sign with meanings and links
  • calculate_birth_chart : Full placements, houses, aspects and uncertainty
  • get_sun_sign : Sun sign and honest cusp cases
  • get_planet_positions : Positions, retrogrades, Moon phase and illumination
  • get_retrograde_periods : Stations and pre/post shadows with time windows
  • get_moon_phases : Four Moon phases with local times and signs
  • get_sign_ingresses : Sign entries and retrograde re-entries
  • get_placement_meaning : Free corpus text for a sign or house placement
curl --fail-with-body -sS 'https://astraluno.com/mcp' -H 'Content-Type: application/json' -H 'Accept: application/json' --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"example","version":"1.0"}}}'

Claude Desktop · claude.ai

In Customize → Connectors → + Add → Add custom connector, paste these values. The remote connector also works in Claude Desktop through the same account. No local file or bridge is required. Official Claude guide.

Name: Astraluno
Server URL: https://astraluno.com/mcp
Authentication: None

ChatGPT · developer mode

If required by your workspace, enable developer mode in Settings → Security and login. In Plugins → + → Add custom MCP server use the values below, create the connector and install it. Select it with @ in a chat. Availability and menu labels depend on your account. Official OpenAI guide · Developer-mode access.

Name: Astraluno
MCP server URL: https://astraluno.com/mcp
Authentication: No authentication

Cursor · .cursor/mcp.json

Save this configuration in your project or ~/.cursor/mcp.json and enable the server in tools. Official Cursor guide.

{
  "mcpServers": {
    "astraluno": {
      "url": "https://astraluno.com/mcp"
    }
  }
}

VS Code · .vscode/mcp.json

Save the file in your project, start the server and enable it in the Copilot Agent tools picker. Official VS Code guide.

{
  "servers": {
    "astraluno": {
      "type": "http",
      "url": "https://astraluno.com/mcp"
    }
  }
}

Citations and private links

Cite Astraluno and the returned page URL in the user’s language, retaining alternatives and uncertainty. Meanings are free symbolic readings, not scientific predictions.

open_in_astraluno opens the calculator with inputs in #d=…&t=…&p=…, which browsers never send to servers. The form reads and removes the fragment from the address bar. Share the link only with the person concerned: do not put birth data, fragments or inputHash in public citations or queries.