{
  "openapi": "3.1.0",
  "info": {
    "title": "Astro Agents",
    "version": "1.0.1",
    "summary": "Deterministic Western + Vedic astrology API for AI agents: JPL DE440 ephemeris, no LLM, reproducible SHA-256 hashes.",
    "description": "Deterministic Western + Vedic astrology API for AI agents: JPL DE440 ephemeris, no LLM, reproducible SHA-256 hashes.\n\nPay per call with **x402** (USDC on Base or Solana) or **MPP** (Tempo). No account, no API key. First 3 calls free per caller (x402 Sign-In-With-X).\n\n- Positions from NASA/JPL DE440 (NASA/JPL), 1800-01-01..2200-01-01, via Skyfield: geocentric apparent, true equinox of date, IAU 2006/2000A.\n- Historical time zones resolved for you (IANA tz database, DST of the era, Local Mean Time); ambiguous or non-existent local times are flagged, never guessed.\n- Deterministic, no LLM: same input -> same bytes. Every response carries meta.input_sha256 and meta.result_sha256 (also as X-Input-SHA256 / X-Result-SHA256 headers); POST /v1/verify recomputes one.\n- Every convention is in the response: ayanamsa (name, true and mean value), house system, orbs, node type, dasha year length, dosha and koota rule sets.\n- Cross-validated against an independent engine (XALEN, Apache-2.0): ayanamsas agree to < 0.1\", 15/16 divisional charts identically, all 11 house systems in structure.",
    "x-guidance": "Deterministic astrology calculations (no LLM). Every chart endpoint takes a JSON body with a local 'datetime' (e.g. '1990-05-15T14:30'), 'latitude' and 'longitude'; the historical time zone is resolved for you. Cheapest calls: POST /v1/western/positions ($0.01) and /v1/vedic/nakshatra ($0.02). Western natal chart: POST /v1/western/natal. Vedic birth chart: POST /v1/vedic/kundli. Marriage compatibility: POST /v1/vedic/gun-milan with person_a and person_b. Each response carries meta.result_sha256; POST /v1/verify recomputes it. Pay with x402 or MPP; first 3 calls free. Free catalog: GET /v1/catalog.",
    "contact": {
      "name": "Astro Agents support",
      "email": "aidatatools@proton.me",
      "url": "https://astro-agent.dev/support"
    },
    "termsOfService": "https://astro-agent.dev/terms"
  },
  "servers": [
    {
      "url": "https://astro-agent.dev"
    }
  ],
  "tags": [
    {
      "name": "time"
    },
    {
      "name": "western"
    },
    {
      "name": "vedic"
    },
    {
      "name": "free"
    }
  ],
  "paths": {
    "/v1/catalog": {
      "get": {
        "operationId": "getCatalog",
        "summary": "Catalog: every endpoint, price, schema, example (free)",
        "tags": [
          "free"
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Catalog",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/health": {
      "get": {
        "operationId": "getHealth",
        "summary": "Liveness, versions, live payment status (free)",
        "tags": [
          "free"
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/verify": {
      "post": {
        "operationId": "verifyResultHash",
        "tags": [
          "free"
        ],
        "security": [],
        "summary": "Recompute the SHA-256 of a result (free)",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "result"
                ],
                "properties": {
                  "result": {
                    "type": "object"
                  },
                  "result_sha256": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Hash and match flag"
          }
        }
      }
    },
    "/v1/time/resolve": {
      "post": {
        "operationId": "timeResolve",
        "summary": "Birth time resolver ($0.01)",
        "description": "Local birth time + place -> exact UT, historical UTC offset, Delta T, Local Mean Time, true solar time.\n\nThe step LLMs most often get wrong. Resolves the IANA time zone from coordinates, applies the offset in force on that date (historical DST, Local Mean Time before standard time), flags ambiguous or non-existent local times instead of guessing, and returns Julian Days (UT/TT), Delta T, Local Mean Time, true (apparent) solar time and the equation of time.",
        "tags": [
          "time"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  }
                },
                "required": [],
                "description": "Coordinates or a timezone are needed to interpret a local time."
              },
              "example": {
                "datetime": "1947-08-15T00:00",
                "latitude": 28.6139,
                "longitude": 77.209
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "time/resolve",
                  "result": {
                    "time": {
                      "local_input": "1947-08-15T00:00",
                      "time_basis": "civil",
                      "timezone": "Asia/Kolkata",
                      "timezone_source": "resolved_from_coordinates",
                      "utc_offset": "+05:30",
                      "is_dst": false,
                      "utc": "1947-08-14T18:30:00Z",
                      "julian_day_ut": 2432412.270996,
                      "julian_day_tt": 2432412.271322,
                      "delta_t_seconds": 28.109,
                      "time_known": true,
                      "local_mean_time": "1947-08-14T23:38:50",
                      "true_solar_time": "1947-08-14T23:34:10",
                      "equation_of_time_minutes": -4.6635
                    },
                    "location": {
                      "latitude": 28.6139,
                      "longitude": 77.209
                    },
                    "warnings": [
                      {
                        "code": "HISTORICAL_TIMEZONE",
                        "message": "offset +05:30 for Asia/Kolkata comes from the IANA tz database, whose pre-1970 history is best-effort. If the birth record states the clock offset, pass it inside 'datetime' (e.g. ...T14:30+01:00)."
                      }
                    ]
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "f0c3fe0873f0faf48339eb52c7ea115f4e0cdcb93431e85199c9a41d74f2929a",
                    "result_sha256": "c44090a343c5399be2ecb9728396283b91a07114611f8cd4db69d21da16fe618",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "10000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Birth time resolver - Local birth time + place -> exact UT, historical UTC offset, Delta T, Local Mean Time, true solar time.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "resolve_birth_time"
      }
    },
    "/v1/western/positions": {
      "post": {
        "operationId": "westernPositions",
        "summary": "Planetary positions ($0.01)",
        "description": "Tropical (or sidereal) longitudes, latitudes, speeds and retrograde flags of Sun..Pluto, nodes, Lilith.\n\nGeocentric apparent positions from NASA/JPL DE440 for any moment 1800-2200, with sign, degree, element, modality, daily speed and retrograde status. Location is optional (only used to interpret a local time).",
        "tags": [
          "western"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "alcabitius",
                          "campanus",
                          "equal",
                          "koch",
                          "meridian",
                          "morinus",
                          "placidus",
                          "porphyry",
                          "regiomontanus",
                          "topocentric",
                          "whole_sign"
                        ],
                        "default": "placidus"
                      },
                      "zodiac": {
                        "type": "string",
                        "enum": [
                          "tropical",
                          "sidereal"
                        ],
                        "default": "tropical"
                      },
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri",
                        "description": "Only with zodiac=sidereal."
                      },
                      "points": {
                        "description": "'all' or a list from ['sun', 'moon', 'mercury', 'venus', 'mars', 'jupiter', 'saturn', 'uranus', 'neptune', 'pluto', 'mean_node', 'true_node', 'mean_lilith']. Default: 10 planets + true node + mean Lilith.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "sun",
                                "moon",
                                "mercury",
                                "venus",
                                "mars",
                                "jupiter",
                                "saturn",
                                "uranus",
                                "neptune",
                                "pluto",
                                "mean_node",
                                "true_node",
                                "mean_lilith"
                              ]
                            }
                          }
                        ]
                      },
                      "aspects": {
                        "description": "'all' or a list from ['conjunction', 'opposition', 'trine', 'square', 'sextile', 'quincunx', 'semisextile', 'semisquare', 'sesquiquadrate', 'quintile', 'biquintile']. Default: the 5 majors.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "conjunction",
                                "opposition",
                                "trine",
                                "square",
                                "sextile",
                                "quincunx",
                                "semisextile",
                                "semisquare",
                                "sesquiquadrate",
                                "quintile",
                                "biquintile"
                              ]
                            }
                          }
                        ]
                      },
                      "orbs": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 15
                        },
                        "description": "Override orbs per aspect, degrees."
                      },
                      "luminary_orb_bonus": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 5,
                        "default": 2
                      }
                    }
                  }
                },
                "required": []
              },
              "example": {
                "datetime": "2026-10-01T12:00:00Z"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "western/positions",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "2026-10-01T12:00:00Z",
                        "time_basis": "civil",
                        "timezone": null,
                        "timezone_source": "offset_in_datetime",
                        "utc_offset": "+00:00",
                        "is_dst": null,
                        "utc": "2026-10-01T12:00:00Z",
                        "julian_day_ut": 2461315.000001,
                        "julian_day_tt": 2461315.000801,
                        "delta_t_seconds": 69.091,
                        "time_known": true
                      }
                    },
                    "settings": {
                      "zodiac": "tropical"
                    },
                    "points": [
                      {
                        "point": "sun",
                        "name": "Sun",
                        "longitude": 188.33017,
                        "sign": "Libra",
                        "sign_index": 6,
                        "degree_in_sign": 8.33017,
                        "position": "8°19'49\" Libra",
                        "element": "air",
                        "modality": "cardinal",
                        "latitude": 0.000187,
                        "speed_longitude": 0.982927,
                        "retrograde": false,
                        "distance_au": 1.001186
                      },
                      {
                        "point": "moon",
                        "name": "Moon",
                        "longitude": 71.048302,
                        "sign": "Gemini",
                        "sign_index": 2,
                        "degree_in_sign": 11.048302,
                        "position": "11°02'54\" Gemini",
                        "element": "air",
                        "modality": "mutable",
                        "latitude": 5.056642,
                        "speed_longitude": 14.283559,
                        "retrograde": false,
                        "distance_au": 0.002469
                      },
                      {
                        "point": "mercury",
                        "name": "Mercury",
                        "longitude": 211.339088,
                        "sign": "Scorpio",
                        "sign_index": 7,
                        "degree_in_sign": 1.339088,
                        "position": "1°20'21\" Scorpio",
                        "element": "water",
                        "modality": "fixed",
                        "latitude": -1.80707,
                        "speed_longitude": 1.313986,
                        "retrograde": false,
                        "distance_au": 1.169303
                      }
                    ]
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "34b719359ced9d2d01130742d40810c8dcebdc0abf6c11e22e9161b55c3cd5f6",
                    "result_sha256": "269109e17efc86d60897373ac8244ecff90f9c71f9dd1836d848fddba92fcae1",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "10000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Planetary positions - Tropical (or sidereal) longitudes, latitudes, speeds and retrograde flags of Sun..Pluto, nodes, Lilith.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "planet_positions"
      }
    },
    "/v1/western/aspects": {
      "post": {
        "operationId": "westernAspects",
        "summary": "Aspects ($0.02)",
        "description": "Aspects (with orb, exactness, applying/separating) for a moment, or for any longitudes you supply.\n\nEither give a moment (datetime, optional place) and get the aspects among all planets, or give 'longitudes' {name: degrees} and get the pure geometry. Orbs are explicit and overridable.",
        "tags": [
          "western"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "longitudes": {
                    "type": "object",
                    "description": "Optional {name: degrees} or {name: {longitude, speed}}; when given, no ephemeris is used.",
                    "additionalProperties": true
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "alcabitius",
                          "campanus",
                          "equal",
                          "koch",
                          "meridian",
                          "morinus",
                          "placidus",
                          "porphyry",
                          "regiomontanus",
                          "topocentric",
                          "whole_sign"
                        ],
                        "default": "placidus"
                      },
                      "zodiac": {
                        "type": "string",
                        "enum": [
                          "tropical",
                          "sidereal"
                        ],
                        "default": "tropical"
                      },
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri",
                        "description": "Only with zodiac=sidereal."
                      },
                      "points": {
                        "description": "'all' or a list from ['sun', 'moon', 'mercury', 'venus', 'mars', 'jupiter', 'saturn', 'uranus', 'neptune', 'pluto', 'mean_node', 'true_node', 'mean_lilith']. Default: 10 planets + true node + mean Lilith.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "sun",
                                "moon",
                                "mercury",
                                "venus",
                                "mars",
                                "jupiter",
                                "saturn",
                                "uranus",
                                "neptune",
                                "pluto",
                                "mean_node",
                                "true_node",
                                "mean_lilith"
                              ]
                            }
                          }
                        ]
                      },
                      "aspects": {
                        "description": "'all' or a list from ['conjunction', 'opposition', 'trine', 'square', 'sextile', 'quincunx', 'semisextile', 'semisquare', 'sesquiquadrate', 'quintile', 'biquintile']. Default: the 5 majors.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "conjunction",
                                "opposition",
                                "trine",
                                "square",
                                "sextile",
                                "quincunx",
                                "semisextile",
                                "semisquare",
                                "sesquiquadrate",
                                "quintile",
                                "biquintile"
                              ]
                            }
                          }
                        ]
                      },
                      "orbs": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 15
                        },
                        "description": "Override orbs per aspect, degrees."
                      },
                      "luminary_orb_bonus": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 5,
                        "default": 2
                      }
                    }
                  }
                },
                "required": []
              },
              "example": {
                "longitudes": {
                  "sun": 54.4,
                  "moon": 297.4,
                  "saturn": 295.2,
                  "venus": 12.8
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "western/aspects",
                  "result": {
                    "settings": {
                      "aspects": {
                        "types": [
                          "conjunction",
                          "opposition",
                          "trine"
                        ],
                        "orbs": {
                          "conjunction": 8.0,
                          "opposition": 8.0,
                          "trine": 7.0,
                          "square": 7.0,
                          "sextile": 5.0
                        },
                        "luminary_orb_bonus": 2.0
                      },
                      "source": "longitudes"
                    },
                    "aspects": [
                      {
                        "point_a": "sun",
                        "point_b": "saturn",
                        "aspect": "trine",
                        "angle": 120.0,
                        "orb": 0.8,
                        "orb_allowed": 9.0,
                        "exactness_pct": 91.1
                      },
                      {
                        "point_a": "moon",
                        "point_b": "saturn",
                        "aspect": "conjunction",
                        "angle": 0.0,
                        "orb": 2.2,
                        "orb_allowed": 10.0,
                        "exactness_pct": 78.0
                      },
                      {
                        "point_a": "sun",
                        "point_b": "moon",
                        "aspect": "trine",
                        "angle": 120.0,
                        "orb": 3.0,
                        "orb_allowed": 9.0,
                        "exactness_pct": 66.7
                      }
                    ]
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "2cdc593e3cfb8d86604f58a0e70b0ded76974a0e25a362e32797bc132b3e61cf",
                    "result_sha256": "d9b6880d14220f7cafea3de8822c09202288b87349b8cd71f67e169591ad39f0",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "20000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Aspects - Aspects (with orb, exactness, applying/separating) for a moment, or for any longitudes you supply.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "aspects"
      }
    },
    "/v1/western/natal": {
      "post": {
        "operationId": "westernNatal",
        "summary": "Western natal chart ($0.06)",
        "description": "Complete natal chart: planets in signs and houses, ascendant, MC, 11 house systems, aspects, summary.\n\nEverything a natal reading needs, computed exactly: positions, house cusps (Placidus by default; Koch, Whole Sign, Equal, Porphyry, Regiomontanus, Campanus, Topocentric, Alcabitius, Morinus, Meridian), ascendant/MC/DSC/IC, aspects with orbs and applying/separating state, element and modality balance, chart ruler, sect and Part of Fortune.",
        "tags": [
          "western"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "alcabitius",
                          "campanus",
                          "equal",
                          "koch",
                          "meridian",
                          "morinus",
                          "placidus",
                          "porphyry",
                          "regiomontanus",
                          "topocentric",
                          "whole_sign"
                        ],
                        "default": "placidus"
                      },
                      "zodiac": {
                        "type": "string",
                        "enum": [
                          "tropical",
                          "sidereal"
                        ],
                        "default": "tropical"
                      },
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri",
                        "description": "Only with zodiac=sidereal."
                      },
                      "points": {
                        "description": "'all' or a list from ['sun', 'moon', 'mercury', 'venus', 'mars', 'jupiter', 'saturn', 'uranus', 'neptune', 'pluto', 'mean_node', 'true_node', 'mean_lilith']. Default: 10 planets + true node + mean Lilith.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "sun",
                                "moon",
                                "mercury",
                                "venus",
                                "mars",
                                "jupiter",
                                "saturn",
                                "uranus",
                                "neptune",
                                "pluto",
                                "mean_node",
                                "true_node",
                                "mean_lilith"
                              ]
                            }
                          }
                        ]
                      },
                      "aspects": {
                        "description": "'all' or a list from ['conjunction', 'opposition', 'trine', 'square', 'sextile', 'quincunx', 'semisextile', 'semisquare', 'sesquiquadrate', 'quintile', 'biquintile']. Default: the 5 majors.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "conjunction",
                                "opposition",
                                "trine",
                                "square",
                                "sextile",
                                "quincunx",
                                "semisextile",
                                "semisquare",
                                "sesquiquadrate",
                                "quintile",
                                "biquintile"
                              ]
                            }
                          }
                        ]
                      },
                      "orbs": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 15
                        },
                        "description": "Override orbs per aspect, degrees."
                      },
                      "luminary_orb_bonus": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 5,
                        "default": 2
                      }
                    }
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "example": {
                "datetime": "1990-05-15T14:30",
                "latitude": 48.8566,
                "longitude": 2.3522
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "western/natal",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "1990-05-15T14:30",
                        "time_basis": "civil",
                        "timezone": "Europe/Paris",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+02:00",
                        "is_dst": true,
                        "utc": "1990-05-15T12:30:00Z",
                        "julian_day_ut": 2448027.020834,
                        "julian_day_tt": 2448027.021495,
                        "delta_t_seconds": 57.14,
                        "time_known": true,
                        "local_mean_time": "1990-05-15T12:39:24",
                        "true_solar_time": "1990-05-15T12:43:06",
                        "equation_of_time_minutes": 3.7054
                      },
                      "location": {
                        "latitude": 48.8566,
                        "longitude": 2.3522
                      }
                    },
                    "settings": {
                      "zodiac": "tropical",
                      "house_system": "placidus",
                      "aspects": {
                        "types": [
                          "conjunction",
                          "opposition",
                          "trine"
                        ],
                        "orbs": {
                          "conjunction": 8.0,
                          "opposition": 8.0,
                          "trine": 7.0,
                          "square": 7.0,
                          "sextile": 5.0
                        },
                        "luminary_orb_bonus": 2.0
                      }
                    },
                    "angles": {
                      "ascendant": {
                        "longitude": 160.24557,
                        "sign": "Virgo",
                        "sign_index": 5,
                        "degree_in_sign": 10.24557,
                        "position": "10°14'44\" Virgo",
                        "element": "earth",
                        "modality": "mutable"
                      },
                      "midheaven": {
                        "longitude": 64.783203,
                        "sign": "Gemini",
                        "sign_index": 2,
                        "degree_in_sign": 4.783203,
                        "position": "4°47'00\" Gemini",
                        "element": "air",
                        "modality": "mutable"
                      },
                      "descendant": {
                        "longitude": 340.24557,
                        "sign": "Pisces",
                        "sign_index": 11,
                        "degree_in_sign": 10.24557,
                        "position": "10°14'44\" Pisces",
                        "element": "water",
                        "modality": "mutable"
                      },
                      "imum_coeli": {
                        "longitude": 244.783203,
                        "sign": "Sagittarius",
                        "sign_index": 8,
                        "degree_in_sign": 4.783203,
                        "position": "4°47'00\" Sagittarius",
                        "element": "fire",
                        "modality": "mutable"
                      }
                    },
                    "houses": [
                      {
                        "house": 1,
                        "cusp": 160.24557,
                        "sign": "Virgo",
                        "sign_index": 5,
                        "degree_in_sign": 10.24557,
                        "position": "10°14'44\" Virgo",
                        "element": "earth",
                        "modality": "mutable"
                      },
                      {
                        "house": 2,
                        "cusp": 182.316905,
                        "sign": "Libra",
                        "sign_index": 6,
                        "degree_in_sign": 2.316905,
                        "position": "2°19'01\" Libra",
                        "element": "air",
                        "modality": "cardinal"
                      },
                      {
                        "house": 3,
                        "cusp": 210.401537,
                        "sign": "Scorpio",
                        "sign_index": 7,
                        "degree_in_sign": 0.401537,
                        "position": "0°24'06\" Scorpio",
                        "element": "water",
                        "modality": "fixed"
                      }
                    ],
                    "sidereal_time": {
                      "armc_deg": 62.829109,
                      "true_obliquity_deg": 23.442164
                    },
                    "points": [
                      {
                        "point": "sun",
                        "name": "Sun",
                        "longitude": 54.416197,
                        "sign": "Taurus",
                        "sign_index": 1,
                        "degree_in_sign": 24.416197,
                        "position": "24°24'58\" Taurus",
                        "element": "earth",
                        "modality": "fixed",
                        "latitude": -1.9e-05,
                        "speed_longitude": 0.964154,
                        "retrograde": false,
                        "distance_au": 1.010905,
                        "house": 9
                      },
                      {
                        "point": "moon",
                        "name": "Moon",
                        "longitude": 297.419463,
                        "sign": "Capricorn",
                        "sign_index": 9,
                        "degree_in_sign": 27.419463,
                        "position": "27°25'10\" Capricorn",
                        "element": "earth",
                        "modality": "cardinal",
                        "latitude": -1.124087,
                        "speed_longitude": 12.360083,
                        "retrograde": false,
                        "distance_au": 0.002643,
                        "house": 5
                      },
                      {
                        "point": "mercury",
                        "name": "Mercury",
                        "longitude": 38.009973,
                        "sign": "Taurus",
                        "sign_index": 1,
                        "degree_in_sign": 8.009973,
                        "position": "8°00'36\" Taurus",
                        "element": "earth",
                        "modality": "fixed",
                        "latitude": -2.523528,
                        "speed_longitude": -0.118848,
                        "retrograde": true,
                        "distance_au": 0.602159,
                        "house": 9
                      }
                    ],
                    "aspects": [
                      {
                        "point_a": "jupiter",
                        "point_b": "uranus",
                        "aspect": "opposition",
                        "angle": 180.0,
                        "orb": 0.362323,
                        "orb_allowed": 8.0,
                        "exactness_pct": 95.5,
                        "state": "separating"
                      },
                      {
                        "point_a": "jupiter",
                        "point_b": "ascendant",
                        "aspect": "sextile",
                        "angle": 60.0,
                        "orb": 0.699881,
                        "orb_allowed": 5.0,
                        "exactness_pct": 86.0
                      },
                      {
                        "point_a": "sun",
                        "point_b": "saturn",
                        "aspect": "trine",
                        "angle": 120.0,
                        "orb": 0.832861,
                        "orb_allowed": 9.0,
                        "exactness_pct": 90.7,
                        "state": "applying"
                      }
                    ],
                    "summary": {
                      "sun_sign": "Taurus",
                      "moon_sign": "Capricorn",
                      "rising_sign": "Virgo",
                      "element_balance": {
                        "earth": 6,
                        "fire": 1,
                        "water": 3
                      },
                      "modality_balance": {
                        "fixed": 3,
                        "cardinal": 6,
                        "mutable": 1
                      },
                      "retrograde_planets": [
                        "mercury",
                        "saturn",
                        "uranus"
                      ],
                      "chart_ruler": {
                        "traditional": "Mercury",
                        "modern": "Mercury"
                      },
                      "sect": "day",
                      "part_of_fortune": {
                        "longitude": 43.248836,
                        "sign": "Taurus",
                        "sign_index": 1,
                        "degree_in_sign": 13.248836,
                        "position": "13°14'56\" Taurus",
                        "element": "earth",
                        "modality": "fixed",
                        "formula": "ASC + Moon - Sun (day) / ASC + Sun - Moon (night)"
                      }
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "bfef1219bc6db2225ab6fd459d5c15b6d448ee730cad073399b878047d800c65",
                    "result_sha256": "be1fb244a2d60d64f2996cbccab5d7603af0c17e9127b5cb558c58e72f56adfe",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.060000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "60000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Western natal chart - Complete natal chart: planets in signs and houses, ascendant, MC, 11 house systems, aspects, summary.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "natal_chart"
      }
    },
    "/v1/western/transits": {
      "post": {
        "operationId": "westernTransits",
        "summary": "Transits ($0.08)",
        "description": "Transits to a natal chart at a moment, and exact hit times over a window of up to a year.\n\n'transit': aspects from the sky at a moment to every natal point, with the natal house each transiting planet occupies. 'window': the exact UTC minute every transiting planet perfects each aspect to each natal point over up to 366 days (62 with the Moon), retrograde passes included.",
        "tags": [
          "western"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "natal"
                ],
                "properties": {
                  "natal": {
                    "type": "object",
                    "properties": {
                      "datetime": {
                        "type": "string",
                        "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                        "examples": [
                          "1990-05-15T14:30"
                        ]
                      },
                      "date": {
                        "type": "string",
                        "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                      },
                      "time": {
                        "type": "string",
                        "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                      },
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90,
                        "description": "Decimal degrees, north positive."
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180,
                        "description": "Decimal degrees, east positive."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                      },
                      "time_basis": {
                        "type": "string",
                        "enum": [
                          "civil",
                          "utc",
                          "lmt",
                          "true_solar"
                        ],
                        "default": "civil",
                        "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                      },
                      "ambiguous_time": {
                        "type": "string",
                        "enum": [
                          "earlier",
                          "later"
                        ],
                        "default": "earlier",
                        "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ],
                    "description": "Birth data."
                  },
                  "transit": {
                    "type": "object",
                    "properties": {
                      "datetime": {
                        "type": "string",
                        "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                        "examples": [
                          "1990-05-15T14:30"
                        ]
                      },
                      "timezone": {
                        "type": "string",
                        "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                      },
                      "time_basis": {
                        "type": "string",
                        "enum": [
                          "civil",
                          "utc",
                          "lmt",
                          "true_solar"
                        ],
                        "default": "civil",
                        "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                      }
                    },
                    "description": "The transit moment. A bare local time is read in the natal place's zone."
                  },
                  "window": {
                    "type": "object",
                    "properties": {
                      "start": {
                        "type": "string"
                      },
                      "end": {
                        "type": "string"
                      },
                      "include_moon": {
                        "type": "boolean"
                      }
                    },
                    "description": "UTC dates YYYY-MM-DD, at most 366 days apart."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "alcabitius",
                          "campanus",
                          "equal",
                          "koch",
                          "meridian",
                          "morinus",
                          "placidus",
                          "porphyry",
                          "regiomontanus",
                          "topocentric",
                          "whole_sign"
                        ],
                        "default": "placidus"
                      },
                      "zodiac": {
                        "type": "string",
                        "enum": [
                          "tropical",
                          "sidereal"
                        ],
                        "default": "tropical"
                      },
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri",
                        "description": "Only with zodiac=sidereal."
                      },
                      "points": {
                        "description": "'all' or a list from ['sun', 'moon', 'mercury', 'venus', 'mars', 'jupiter', 'saturn', 'uranus', 'neptune', 'pluto', 'mean_node', 'true_node', 'mean_lilith']. Default: 10 planets + true node + mean Lilith.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "sun",
                                "moon",
                                "mercury",
                                "venus",
                                "mars",
                                "jupiter",
                                "saturn",
                                "uranus",
                                "neptune",
                                "pluto",
                                "mean_node",
                                "true_node",
                                "mean_lilith"
                              ]
                            }
                          }
                        ]
                      },
                      "aspects": {
                        "description": "'all' or a list from ['conjunction', 'opposition', 'trine', 'square', 'sextile', 'quincunx', 'semisextile', 'semisquare', 'sesquiquadrate', 'quintile', 'biquintile']. Default: the 5 majors.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "conjunction",
                                "opposition",
                                "trine",
                                "square",
                                "sextile",
                                "quincunx",
                                "semisextile",
                                "semisquare",
                                "sesquiquadrate",
                                "quintile",
                                "biquintile"
                              ]
                            }
                          }
                        ]
                      },
                      "orbs": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 15
                        },
                        "description": "Override orbs per aspect, degrees."
                      },
                      "luminary_orb_bonus": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 5,
                        "default": 2
                      }
                    }
                  }
                }
              },
              "example": {
                "natal": {
                  "datetime": "1990-05-15T14:30",
                  "latitude": 48.8566,
                  "longitude": 2.3522
                },
                "transit": {
                  "datetime": "2026-10-01T12:00"
                },
                "window": {
                  "start": "2026-10-01",
                  "end": "2026-12-31"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "western/transits",
                  "result": {
                    "natal": {
                      "subject": {
                        "time": {
                          "local_input": "1990-05-15T14:30",
                          "time_basis": "civil",
                          "timezone": "Europe/Paris",
                          "timezone_source": "resolved_from_coordinates",
                          "utc_offset": "+02:00",
                          "is_dst": true,
                          "utc": "1990-05-15T12:30:00Z",
                          "julian_day_ut": 2448027.020834,
                          "julian_day_tt": 2448027.021495,
                          "delta_t_seconds": 57.14,
                          "time_known": true,
                          "local_mean_time": "1990-05-15T12:39:24",
                          "true_solar_time": "1990-05-15T12:43:06",
                          "equation_of_time_minutes": 3.7054
                        },
                        "location": {
                          "latitude": 48.8566,
                          "longitude": 2.3522
                        }
                      },
                      "settings": {
                        "zodiac": "tropical",
                        "house_system": "placidus"
                      },
                      "points": [
                        {
                          "point": "sun",
                          "name": "Sun",
                          "longitude": 54.416197,
                          "sign": "Taurus",
                          "sign_index": 1,
                          "degree_in_sign": 24.416197,
                          "position": "24°24'58\" Taurus",
                          "element": "earth",
                          "modality": "fixed",
                          "latitude": -1.9e-05,
                          "speed_longitude": 0.964154,
                          "retrograde": false,
                          "distance_au": 1.010905,
                          "house": 9
                        },
                        {
                          "point": "moon",
                          "name": "Moon",
                          "longitude": 297.419463,
                          "sign": "Capricorn",
                          "sign_index": 9,
                          "degree_in_sign": 27.419463,
                          "position": "27°25'10\" Capricorn",
                          "element": "earth",
                          "modality": "cardinal",
                          "latitude": -1.124087,
                          "speed_longitude": 12.360083,
                          "retrograde": false,
                          "distance_au": 0.002643,
                          "house": 5
                        },
                        {
                          "point": "mercury",
                          "name": "Mercury",
                          "longitude": 38.009973,
                          "sign": "Taurus",
                          "sign_index": 1,
                          "degree_in_sign": 8.009973,
                          "position": "8°00'36\" Taurus",
                          "element": "earth",
                          "modality": "fixed",
                          "latitude": -2.523528,
                          "speed_longitude": -0.118848,
                          "retrograde": true,
                          "distance_au": 0.602159,
                          "house": 9
                        }
                      ],
                      "angles": {
                        "ascendant": {
                          "longitude": 160.24557,
                          "sign": "Virgo",
                          "sign_index": 5,
                          "degree_in_sign": 10.24557,
                          "position": "10°14'44\" Virgo",
                          "element": "earth",
                          "modality": "mutable"
                        },
                        "midheaven": {
                          "longitude": 64.783203,
                          "sign": "Gemini",
                          "sign_index": 2,
                          "degree_in_sign": 4.783203,
                          "position": "4°47'00\" Gemini",
                          "element": "air",
                          "modality": "mutable"
                        },
                        "descendant": {
                          "longitude": 340.24557,
                          "sign": "Pisces",
                          "sign_index": 11,
                          "degree_in_sign": 10.24557,
                          "position": "10°14'44\" Pisces",
                          "element": "water",
                          "modality": "mutable"
                        },
                        "imum_coeli": {
                          "longitude": 244.783203,
                          "sign": "Sagittarius",
                          "sign_index": 8,
                          "degree_in_sign": 4.783203,
                          "position": "4°47'00\" Sagittarius",
                          "element": "fire",
                          "modality": "mutable"
                        }
                      }
                    },
                    "settings": {
                      "aspects": {
                        "types": [
                          "conjunction",
                          "opposition",
                          "trine"
                        ],
                        "orbs": {
                          "conjunction": 2.0,
                          "opposition": 2.0,
                          "trine": 2.0,
                          "square": 2.0,
                          "sextile": 1.5
                        },
                        "luminary_orb_bonus": 0.0
                      }
                    },
                    "transit": {
                      "time": {
                        "local_input": "2026-10-01T12:00",
                        "time_basis": "civil",
                        "timezone": "Europe/Paris",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+02:00",
                        "is_dst": true,
                        "utc": "2026-10-01T10:00:00Z",
                        "julian_day_ut": 2461314.916668,
                        "julian_day_tt": 2461314.917467,
                        "delta_t_seconds": 69.091,
                        "time_known": true,
                        "local_mean_time": "2026-10-01T10:09:24",
                        "true_solar_time": "2026-10-01T10:19:43",
                        "equation_of_time_minutes": 10.3174
                      },
                      "points": [
                        {
                          "point": "sun",
                          "name": "Sun",
                          "longitude": 188.248256,
                          "sign": "Libra",
                          "sign_index": 6,
                          "degree_in_sign": 8.248256,
                          "position": "8°14'54\" Libra",
                          "element": "air",
                          "modality": "cardinal",
                          "latitude": 0.000187,
                          "speed_longitude": 0.982874,
                          "retrograde": false,
                          "distance_au": 1.00121,
                          "natal_house": 2
                        },
                        {
                          "point": "moon",
                          "name": "Moon",
                          "longitude": 69.858053,
                          "sign": "Gemini",
                          "sign_index": 2,
                          "degree_in_sign": 9.858053,
                          "position": "9°51'29\" Gemini",
                          "element": "air",
                          "modality": "mutable",
                          "latitude": 5.077628,
                          "speed_longitude": 14.284505,
                          "retrograde": false,
                          "distance_au": 0.002469,
                          "natal_house": 10
                        },
                        {
                          "point": "mercury",
                          "name": "Mercury",
                          "longitude": 211.229501,
                          "sign": "Scorpio",
                          "sign_index": 7,
                          "degree_in_sign": 1.229501,
                          "position": "1°13'46\" Scorpio",
                          "element": "water",
                          "modality": "fixed",
                          "latitude": -1.797208,
                          "speed_longitude": 1.315753,
                          "retrograde": false,
                          "distance_au": 1.170399,
                          "natal_house": 3
                        }
                      ],
                      "aspects_to_natal": [
                        {
                          "point_a": "transit:moon",
                          "point_b": "natal:ascendant",
                          "aspect": "square",
                          "angle": 90.0,
                          "orb": 0.387516,
                          "orb_allowed": 2.0,
                          "exactness_pct": 80.6,
                          "state": "applying"
                        },
                        {
                          "point_a": "transit:moon",
                          "point_b": "natal:true_node",
                          "aspect": "trine",
                          "angle": 120.0,
                          "orb": 0.399413,
                          "orb_allowed": 2.0,
                          "exactness_pct": 80.0,
                          "state": "applying"
                        },
                        {
                          "point_a": "transit:venus",
                          "point_b": "natal:mercury",
                          "aspect": "opposition",
                          "angle": 180.0,
                          "orb": 0.412961,
                          "orb_allowed": 2.0,
                          "exactness_pct": 79.4,
                          "state": "separating"
                        }
                      ]
                    },
                    "window": {
                      "start": "2026-10-01",
                      "end": "2026-12-31",
                      "include_moon": false,
                      "precision": "+/- 1 minute",
                      "count": 95,
                      "hits": [
                        {
                          "transit_point": "sun",
                          "natal_point": "uranus",
                          "aspect": "square",
                          "exact_utc": "2026-10-02T08:49Z",
                          "transit_retrograde": false
                        },
                        {
                          "transit_point": "sun",
                          "natal_point": "jupiter",
                          "aspect": "square",
                          "exact_utc": "2026-10-02T17:40Z",
                          "transit_retrograde": false
                        },
                        {
                          "transit_point": "sun",
                          "natal_point": "true_node",
                          "aspect": "trine",
                          "exact_utc": "2026-10-03T11:02Z",
                          "transit_retrograde": false
                        }
                      ]
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "08c48864dfa514242c6a89576b3dcf43109c60a7c35c6939e996f3b2acde2f98",
                    "result_sha256": "7e7a7b2568e4629efff09bbaa2b3757bb2da232061273d5aa32beb896236d9f0",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.080000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "80000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Transits - Transits to a natal chart at a moment, and exact hit times over a window of up to a year.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "transits"
      }
    },
    "/v1/western/synastry": {
      "post": {
        "operationId": "westernSynastry",
        "summary": "Synastry ($0.12)",
        "description": "Relationship comparison: cross-aspects, house overlays both ways, composite midpoints.\n\nTwo natal charts compared: every cross-aspect with orbs, where each person's planets fall in the other's houses, harmonious/challenging counts, and composite (midpoint) positions and angles.",
        "tags": [
          "western"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "person_a",
                  "person_b"
                ],
                "properties": {
                  "person_a": {
                    "type": "object",
                    "properties": {
                      "datetime": {
                        "type": "string",
                        "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                        "examples": [
                          "1990-05-15T14:30"
                        ]
                      },
                      "date": {
                        "type": "string",
                        "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                      },
                      "time": {
                        "type": "string",
                        "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                      },
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90,
                        "description": "Decimal degrees, north positive."
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180,
                        "description": "Decimal degrees, east positive."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                      },
                      "time_basis": {
                        "type": "string",
                        "enum": [
                          "civil",
                          "utc",
                          "lmt",
                          "true_solar"
                        ],
                        "default": "civil",
                        "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                      },
                      "ambiguous_time": {
                        "type": "string",
                        "enum": [
                          "earlier",
                          "later"
                        ],
                        "default": "earlier",
                        "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ]
                  },
                  "person_b": {
                    "type": "object",
                    "properties": {
                      "datetime": {
                        "type": "string",
                        "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                        "examples": [
                          "1990-05-15T14:30"
                        ]
                      },
                      "date": {
                        "type": "string",
                        "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                      },
                      "time": {
                        "type": "string",
                        "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                      },
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90,
                        "description": "Decimal degrees, north positive."
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180,
                        "description": "Decimal degrees, east positive."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                      },
                      "time_basis": {
                        "type": "string",
                        "enum": [
                          "civil",
                          "utc",
                          "lmt",
                          "true_solar"
                        ],
                        "default": "civil",
                        "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                      },
                      "ambiguous_time": {
                        "type": "string",
                        "enum": [
                          "earlier",
                          "later"
                        ],
                        "default": "earlier",
                        "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ]
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "alcabitius",
                          "campanus",
                          "equal",
                          "koch",
                          "meridian",
                          "morinus",
                          "placidus",
                          "porphyry",
                          "regiomontanus",
                          "topocentric",
                          "whole_sign"
                        ],
                        "default": "placidus"
                      },
                      "zodiac": {
                        "type": "string",
                        "enum": [
                          "tropical",
                          "sidereal"
                        ],
                        "default": "tropical"
                      },
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri",
                        "description": "Only with zodiac=sidereal."
                      },
                      "points": {
                        "description": "'all' or a list from ['sun', 'moon', 'mercury', 'venus', 'mars', 'jupiter', 'saturn', 'uranus', 'neptune', 'pluto', 'mean_node', 'true_node', 'mean_lilith']. Default: 10 planets + true node + mean Lilith.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "sun",
                                "moon",
                                "mercury",
                                "venus",
                                "mars",
                                "jupiter",
                                "saturn",
                                "uranus",
                                "neptune",
                                "pluto",
                                "mean_node",
                                "true_node",
                                "mean_lilith"
                              ]
                            }
                          }
                        ]
                      },
                      "aspects": {
                        "description": "'all' or a list from ['conjunction', 'opposition', 'trine', 'square', 'sextile', 'quincunx', 'semisextile', 'semisquare', 'sesquiquadrate', 'quintile', 'biquintile']. Default: the 5 majors.",
                        "oneOf": [
                          {
                            "type": "string",
                            "enum": [
                              "all"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "conjunction",
                                "opposition",
                                "trine",
                                "square",
                                "sextile",
                                "quincunx",
                                "semisextile",
                                "semisquare",
                                "sesquiquadrate",
                                "quintile",
                                "biquintile"
                              ]
                            }
                          }
                        ]
                      },
                      "orbs": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 15
                        },
                        "description": "Override orbs per aspect, degrees."
                      },
                      "luminary_orb_bonus": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 5,
                        "default": 2
                      }
                    }
                  }
                }
              },
              "example": {
                "person_a": {
                  "datetime": "1990-05-15T14:30",
                  "latitude": 48.8566,
                  "longitude": 2.3522
                },
                "person_b": {
                  "datetime": "1992-08-03T09:15",
                  "latitude": 45.764,
                  "longitude": 4.8357
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "western/synastry",
                  "result": {
                    "person_a": {
                      "subject": {
                        "time": {
                          "local_input": "1990-05-15T14:30",
                          "time_basis": "civil",
                          "timezone": "Europe/Paris",
                          "timezone_source": "resolved_from_coordinates",
                          "utc_offset": "+02:00",
                          "is_dst": true,
                          "utc": "1990-05-15T12:30:00Z",
                          "julian_day_ut": 2448027.020834,
                          "julian_day_tt": 2448027.021495,
                          "delta_t_seconds": 57.14,
                          "time_known": true,
                          "local_mean_time": "1990-05-15T12:39:24",
                          "true_solar_time": "1990-05-15T12:43:06",
                          "equation_of_time_minutes": 3.7054
                        },
                        "location": {
                          "latitude": 48.8566,
                          "longitude": 2.3522
                        }
                      },
                      "points": [
                        {
                          "point": "sun",
                          "name": "Sun",
                          "longitude": 54.416197,
                          "sign": "Taurus",
                          "sign_index": 1,
                          "degree_in_sign": 24.416197,
                          "position": "24°24'58\" Taurus",
                          "element": "earth",
                          "modality": "fixed",
                          "latitude": -1.9e-05,
                          "speed_longitude": 0.964154,
                          "retrograde": false,
                          "distance_au": 1.010905,
                          "house": 9
                        },
                        {
                          "point": "moon",
                          "name": "Moon",
                          "longitude": 297.419463,
                          "sign": "Capricorn",
                          "sign_index": 9,
                          "degree_in_sign": 27.419463,
                          "position": "27°25'10\" Capricorn",
                          "element": "earth",
                          "modality": "cardinal",
                          "latitude": -1.124087,
                          "speed_longitude": 12.360083,
                          "retrograde": false,
                          "distance_au": 0.002643,
                          "house": 5
                        },
                        {
                          "point": "mercury",
                          "name": "Mercury",
                          "longitude": 38.009973,
                          "sign": "Taurus",
                          "sign_index": 1,
                          "degree_in_sign": 8.009973,
                          "position": "8°00'36\" Taurus",
                          "element": "earth",
                          "modality": "fixed",
                          "latitude": -2.523528,
                          "speed_longitude": -0.118848,
                          "retrograde": true,
                          "distance_au": 0.602159,
                          "house": 9
                        }
                      ],
                      "angles": {
                        "ascendant": {
                          "longitude": 160.24557,
                          "sign": "Virgo",
                          "sign_index": 5,
                          "degree_in_sign": 10.24557,
                          "position": "10°14'44\" Virgo",
                          "element": "earth",
                          "modality": "mutable"
                        },
                        "midheaven": {
                          "longitude": 64.783203,
                          "sign": "Gemini",
                          "sign_index": 2,
                          "degree_in_sign": 4.783203,
                          "position": "4°47'00\" Gemini",
                          "element": "air",
                          "modality": "mutable"
                        },
                        "descendant": {
                          "longitude": 340.24557,
                          "sign": "Pisces",
                          "sign_index": 11,
                          "degree_in_sign": 10.24557,
                          "position": "10°14'44\" Pisces",
                          "element": "water",
                          "modality": "mutable"
                        },
                        "imum_coeli": {
                          "longitude": 244.783203,
                          "sign": "Sagittarius",
                          "sign_index": 8,
                          "degree_in_sign": 4.783203,
                          "position": "4°47'00\" Sagittarius",
                          "element": "fire",
                          "modality": "mutable"
                        }
                      }
                    },
                    "person_b": {
                      "subject": {
                        "time": {
                          "local_input": "1992-08-03T09:15",
                          "time_basis": "civil",
                          "timezone": "Europe/Paris",
                          "timezone_source": "resolved_from_coordinates",
                          "utc_offset": "+02:00",
                          "is_dst": true,
                          "utc": "1992-08-03T07:15:00Z",
                          "julian_day_ut": 2448837.802088,
                          "julian_day_tt": 2448837.802768,
                          "delta_t_seconds": 58.788,
                          "time_known": true,
                          "local_mean_time": "1992-08-03T07:34:20",
                          "true_solar_time": "1992-08-03T07:28:12",
                          "equation_of_time_minutes": -6.1364
                        },
                        "location": {
                          "latitude": 45.764,
                          "longitude": 4.8357
                        }
                      },
                      "points": [
                        {
                          "point": "sun",
                          "name": "Sun",
                          "longitude": 131.200205,
                          "sign": "Leo",
                          "sign_index": 4,
                          "degree_in_sign": 11.200205,
                          "position": "11°12'01\" Leo",
                          "element": "fire",
                          "modality": "fixed",
                          "latitude": -5.9e-05,
                          "speed_longitude": 0.957455,
                          "retrograde": false,
                          "distance_au": 1.014645,
                          "house": 11
                        },
                        {
                          "point": "moon",
                          "name": "Moon",
                          "longitude": 193.764851,
                          "sign": "Libra",
                          "sign_index": 6,
                          "degree_in_sign": 13.764851,
                          "position": "13°45'53\" Libra",
                          "element": "air",
                          "modality": "cardinal",
                          "latitude": -5.01898,
                          "speed_longitude": 14.171772,
                          "retrograde": false,
                          "distance_au": 0.002477,
                          "house": 2
                        },
                        {
                          "point": "mercury",
                          "name": "Mercury",
                          "longitude": 130.450348,
                          "sign": "Leo",
                          "sign_index": 4,
                          "degree_in_sign": 10.450348,
                          "position": "10°27'01\" Leo",
                          "element": "fire",
                          "modality": "fixed",
                          "latitude": -4.877185,
                          "speed_longitude": -0.74787,
                          "retrograde": true,
                          "distance_au": 0.599715,
                          "house": 11
                        }
                      ],
                      "angles": {
                        "ascendant": {
                          "longitude": 161.713528,
                          "sign": "Virgo",
                          "sign_index": 5,
                          "degree_in_sign": 11.713528,
                          "position": "11°42'49\" Virgo",
                          "element": "earth",
                          "modality": "mutable"
                        },
                        "midheaven": {
                          "longitude": 67.507493,
                          "sign": "Gemini",
                          "sign_index": 2,
                          "degree_in_sign": 7.507493,
                          "position": "7°30'27\" Gemini",
                          "element": "air",
                          "modality": "mutable"
                        },
                        "descendant": {
                          "longitude": 341.713528,
                          "sign": "Pisces",
                          "sign_index": 11,
                          "degree_in_sign": 11.713528,
                          "position": "11°42'49\" Pisces",
                          "element": "water",
                          "modality": "mutable"
                        },
                        "imum_coeli": {
                          "longitude": 247.507493,
                          "sign": "Sagittarius",
                          "sign_index": 8,
                          "degree_in_sign": 7.507493,
                          "position": "7°30'27\" Sagittarius",
                          "element": "fire",
                          "modality": "mutable"
                        }
                      }
                    },
                    "settings": {
                      "zodiac": "tropical",
                      "house_system": "placidus",
                      "aspects": {
                        "types": [
                          "conjunction",
                          "opposition",
                          "trine"
                        ],
                        "orbs": {
                          "conjunction": 8.0,
                          "opposition": 8.0,
                          "trine": 7.0,
                          "square": 7.0,
                          "sextile": 5.0
                        },
                        "luminary_orb_bonus": 2.0
                      }
                    },
                    "cross_aspects": [
                      {
                        "point_a": "a:true_node",
                        "point_b": "b:mercury",
                        "aspect": "opposition",
                        "angle": 180.0,
                        "orb": 0.192882,
                        "orb_allowed": 8.0,
                        "exactness_pct": 97.6
                      },
                      {
                        "point_a": "a:midheaven",
                        "point_b": "b:mars",
                        "aspect": "conjunction",
                        "angle": 0.0,
                        "orb": 0.287077,
                        "orb_allowed": 8.0,
                        "exactness_pct": 96.4
                      },
                      {
                        "point_a": "a:mean_lilith",
                        "point_b": "b:mean_lilith",
                        "aspect": "square",
                        "angle": 90.0,
                        "orb": 0.325766,
                        "orb_allowed": 7.0,
                        "exactness_pct": 95.3
                      }
                    ],
                    "aspect_counts": {
                      "harmonious": 27,
                      "challenging": 28,
                      "conjunctions": 11
                    },
                    "house_overlays": {
                      "a_points_in_b_houses": [
                        {
                          "point": "sun",
                          "position": "24°24'58\" Taurus",
                          "house": 9
                        },
                        {
                          "point": "moon",
                          "position": "27°25'10\" Capricorn",
                          "house": 5
                        },
                        {
                          "point": "mercury",
                          "position": "8°00'36\" Taurus",
                          "house": 9
                        }
                      ],
                      "b_points_in_a_houses": [
                        {
                          "point": "sun",
                          "position": "11°12'01\" Leo",
                          "house": 11
                        },
                        {
                          "point": "moon",
                          "position": "13°45'53\" Libra",
                          "house": 2
                        },
                        {
                          "point": "mercury",
                          "position": "10°27'01\" Leo",
                          "house": 11
                        }
                      ]
                    },
                    "composite_midpoints": {
                      "points": [
                        {
                          "point": "sun",
                          "longitude": 92.808201,
                          "sign": "Cancer",
                          "sign_index": 3,
                          "degree_in_sign": 2.808201,
                          "position": "2°48'30\" Cancer",
                          "element": "water",
                          "modality": "cardinal"
                        },
                        {
                          "point": "moon",
                          "longitude": 245.592157,
                          "sign": "Sagittarius",
                          "sign_index": 8,
                          "degree_in_sign": 5.592157,
                          "position": "5°35'32\" Sagittarius",
                          "element": "fire",
                          "modality": "mutable"
                        },
                        {
                          "point": "mercury",
                          "longitude": 84.23016,
                          "sign": "Gemini",
                          "sign_index": 2,
                          "degree_in_sign": 24.23016,
                          "position": "24°13'49\" Gemini",
                          "element": "air",
                          "modality": "mutable"
                        }
                      ],
                      "angles": {
                        "ascendant": {
                          "longitude": 160.979549,
                          "sign": "Virgo",
                          "sign_index": 5,
                          "degree_in_sign": 10.979549,
                          "position": "10°58'46\" Virgo",
                          "element": "earth",
                          "modality": "mutable"
                        },
                        "midheaven": {
                          "longitude": 66.145348,
                          "sign": "Gemini",
                          "sign_index": 2,
                          "degree_in_sign": 6.145348,
                          "position": "6°08'43\" Gemini",
                          "element": "air",
                          "modality": "mutable"
                        }
                      },
                      "method": "shorter-arc midpoints of each pair of positions"
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "8a915595782b77a68c6846741bda67321452b71797d9ed101f1d901745b1ae84",
                    "result_sha256": "d73954df219854b1f2ad98476b58986d82ee19cfffc91b8adaea011df6eb4f01",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.120000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "120000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Synastry - Relationship comparison: cross-aspects, house overlays both ways, composite midpoints.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "synastry"
      }
    },
    "/v1/vedic/nakshatra": {
      "post": {
        "operationId": "vedicNakshatra",
        "summary": "Nakshatras ($0.02)",
        "description": "Sidereal nakshatra, pada and lord of every graha; janma nakshatra with gana, yoni, nadi, varna.\n\nThe 27 lunar mansions for each of the 9 grahas at a moment (Lahiri by default, 6 ayanamsas), with the birth star's attributes used in matching. Or pass 'longitude_sidereal' for a direct lookup.",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "longitude_sidereal": {
                    "type": "number",
                    "description": "Optional direct lookup, degrees 0-360."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  }
                },
                "required": []
              },
              "example": {
                "datetime": "1990-05-15T14:30",
                "timezone": "Asia/Kolkata"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/nakshatra",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "1990-05-15T14:30",
                        "time_basis": "civil",
                        "timezone": "Asia/Kolkata",
                        "timezone_source": "input",
                        "utc_offset": "+05:30",
                        "is_dst": false,
                        "utc": "1990-05-15T09:00:00Z",
                        "julian_day_ut": 2448026.875001,
                        "julian_day_tt": 2448026.875662,
                        "delta_t_seconds": 57.139,
                        "time_known": true
                      }
                    },
                    "settings": {
                      "zodiac": "sidereal",
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764
                      },
                      "node_type": "mean"
                    },
                    "janma_nakshatra": {
                      "nakshatra": "Uttara Ashadha",
                      "nakshatra_index": 21,
                      "pada": 2,
                      "nakshatra_lord": "Sun",
                      "deity": "Vishvedevas",
                      "fraction_elapsed": 0.392032
                    },
                    "janma_nakshatra_attributes": {
                      "yoni": "Mongoose",
                      "gana": "Manushya",
                      "nadi": "Antya",
                      "lord": "Sun"
                    },
                    "grahas": [
                      {
                        "graha": "Sun",
                        "longitude": 30.549815,
                        "rashi": "Vrishabha",
                        "sign": "Taurus",
                        "sign_index": 1,
                        "degree_in_sign": 0.549815,
                        "position": "0°32'59\" Taurus",
                        "sign_lord": "Venus",
                        "nakshatra": "Krittika",
                        "nakshatra_index": 3,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Agni",
                        "degree_in_nakshatra": 3.883149,
                        "fraction_elapsed": 0.291236
                      },
                      {
                        "graha": "Moon",
                        "longitude": 271.893763,
                        "rashi": "Makara",
                        "sign": "Capricorn",
                        "sign_index": 9,
                        "degree_in_sign": 1.893763,
                        "position": "1°53'38\" Capricorn",
                        "sign_lord": "Saturn",
                        "nakshatra": "Uttara Ashadha",
                        "nakshatra_index": 21,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Vishvedevas",
                        "degree_in_nakshatra": 5.227097,
                        "fraction_elapsed": 0.392032
                      },
                      {
                        "graha": "Mars",
                        "longitude": 324.515246,
                        "rashi": "Kumbha",
                        "sign": "Aquarius",
                        "sign_index": 10,
                        "degree_in_sign": 24.515246,
                        "position": "24°30'55\" Aquarius",
                        "sign_lord": "Saturn",
                        "nakshatra": "Purva Bhadrapada",
                        "nakshatra_index": 25,
                        "pada": 2,
                        "nakshatra_lord": "Jupiter",
                        "deity": "Aja Ekapada",
                        "degree_in_nakshatra": 4.515246,
                        "fraction_elapsed": 0.338643
                      }
                    ]
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "5a55d4b18e9c8466a1c1fcbb69acf84b058d3a91569b78049366fb207bc3b2e2",
                    "result_sha256": "b06f53384a24ffa061b80b7fce083ee7f8e1a1d07d22e7f6342ea60a06a48767",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "20000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Nakshatras - Sidereal nakshatra, pada and lord of every graha; janma nakshatra with gana, yoni, nadi, varna.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "nakshatras"
      }
    },
    "/v1/vedic/panchang": {
      "post": {
        "operationId": "vedicPanchang",
        "summary": "Panchang ($0.02)",
        "description": "Tithi, vara, nakshatra, yoga, karana with the exact time each ends, plus sunrise and sunset.\n\nThe Hindu almanac for any moment and place: the five limbs with their end times (to the minute), paksha, Moon and Sun rashi, sunrise/sunset, and the vara by the sunrise-to-sunrise rule.",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "example": {
                "datetime": "2026-10-01T06:00",
                "latitude": 25.3176,
                "longitude": 82.9739
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/panchang",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "2026-10-01T06:00",
                        "time_basis": "civil",
                        "timezone": "Asia/Kolkata",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+05:30",
                        "is_dst": false,
                        "utc": "2026-10-01T00:30:00Z",
                        "julian_day_ut": 2461314.520834,
                        "julian_day_tt": 2461314.521634,
                        "delta_t_seconds": 69.091,
                        "time_known": true,
                        "local_mean_time": "2026-10-01T06:01:53",
                        "true_solar_time": "2026-10-01T06:12:05",
                        "equation_of_time_minutes": 10.1889
                      },
                      "location": {
                        "latitude": 25.3176,
                        "longitude": 82.9739
                      }
                    },
                    "panchang": {
                      "tithi": {
                        "index": 20,
                        "name": "Panchami",
                        "paksha": "Krishna (waning)",
                        "number_in_paksha": 5,
                        "fraction_elapsed": 0.695407,
                        "ends_at": "2026-10-01T07:06Z"
                      },
                      "nakshatra": {
                        "name": "Krittika",
                        "index": 3,
                        "pada": 4,
                        "lord": "Sun",
                        "deity": "Agni",
                        "fraction_elapsed": 0.997833,
                        "ends_at": "2026-10-01T00:33Z"
                      },
                      "yoga": {
                        "index": 16,
                        "name": "Siddhi",
                        "ends_at": "2026-10-01T15:48Z"
                      },
                      "karana": {
                        "index": 40,
                        "name": "Taitila",
                        "ends_at": "2026-10-01T07:06Z"
                      },
                      "moon": {
                        "longitude": 39.971112,
                        "rashi": "Vrishabha",
                        "sign": "Taurus"
                      },
                      "sun": {
                        "longitude": 163.626223,
                        "rashi": "Kanya",
                        "sign": "Virgo"
                      },
                      "moon_phase_angle": 236.34489,
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 24.233005
                      },
                      "sunrise": "2026-10-01T00:20Z",
                      "sunset": "2026-10-01T12:15Z",
                      "vara": {
                        "name": "Guruvara (Thursday)",
                        "lord": "Jupiter",
                        "rule": "the Vedic day runs from sunrise to sunrise"
                      }
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "a054b165615cc9ab4d48adc647369051dc41d86eae83afd831b923c250f2645c",
                    "result_sha256": "d0cbd72a6f167caae2fac301f81534026d87c549daba9134646e63bcc889db98",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "20000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Panchang - Tithi, vara, nakshatra, yoga, karana with the exact time each ends, plus sunrise and sunset.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "panchang"
      }
    },
    "/v1/vedic/kundli": {
      "post": {
        "operationId": "vedicKundli",
        "summary": "Kundli (Vedic birth chart) ($0.15)",
        "description": "Sidereal D1 + D9: lagna, 9 grahas with rashi, nakshatra, pada, house, dignity, combustion, bhavas.\n\nThe Jyotish birth chart: ayanamsa (Lahiri default; Raman, KP, Yukteshwar, Fagan-Bradley, True Chitrapaksha), lagna, grahas with rashi, nakshatra/pada/lord, bhava, dignity (exalted, debilitated, moolatrikona, own sign), retrograde and combustion, house table with lords and occupants, and the Navamsa (D9).",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "example": {
                "datetime": "1990-05-15T14:30",
                "latitude": 28.6139,
                "longitude": 77.209
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/kundli",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "1990-05-15T14:30",
                        "time_basis": "civil",
                        "timezone": "Asia/Kolkata",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+05:30",
                        "is_dst": false,
                        "utc": "1990-05-15T09:00:00Z",
                        "julian_day_ut": 2448026.875001,
                        "julian_day_tt": 2448026.875662,
                        "delta_t_seconds": 57.139,
                        "time_known": true,
                        "local_mean_time": "1990-05-15T14:08:50",
                        "true_solar_time": "1990-05-15T14:12:32",
                        "equation_of_time_minutes": 3.7067
                      },
                      "location": {
                        "latitude": 28.6139,
                        "longitude": 77.209
                      }
                    },
                    "settings": {
                      "zodiac": "sidereal",
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764,
                        "mean_deg": 23.722507,
                        "true_dms": "23°43'33\""
                      },
                      "node_type": "mean",
                      "house_system": "whole_sign",
                      "varga_rules": "Parashara (BPHS); D24 counts forward from Cancer in even signs"
                    },
                    "lagna": {
                      "longitude": 151.904824,
                      "rashi": "Kanya",
                      "sign": "Virgo",
                      "sign_index": 5,
                      "degree_in_sign": 1.904824,
                      "position": "1°54'17\" Virgo",
                      "sign_lord": "Mercury",
                      "nakshatra": "Uttara Phalguni",
                      "nakshatra_index": 12,
                      "pada": 2,
                      "nakshatra_lord": "Sun",
                      "deity": "Aryaman",
                      "degree_in_nakshatra": 5.238157,
                      "fraction_elapsed": 0.392862
                    },
                    "grahas": [
                      {
                        "graha": "Sun",
                        "longitude": 30.549815,
                        "rashi": "Vrishabha",
                        "sign": "Taurus",
                        "sign_index": 1,
                        "degree_in_sign": 0.549815,
                        "position": "0°32'59\" Taurus",
                        "sign_lord": "Venus",
                        "nakshatra": "Krittika",
                        "nakshatra_index": 3,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Agni",
                        "degree_in_nakshatra": 3.883149,
                        "fraction_elapsed": 0.291236,
                        "house": 9,
                        "retrograde": false,
                        "speed": 0.964203,
                        "dignity": null,
                        "navamsa_sign": "Capricorn"
                      },
                      {
                        "graha": "Moon",
                        "longitude": 271.893763,
                        "rashi": "Makara",
                        "sign": "Capricorn",
                        "sign_index": 9,
                        "degree_in_sign": 1.893763,
                        "position": "1°53'38\" Capricorn",
                        "sign_lord": "Saturn",
                        "nakshatra": "Uttara Ashadha",
                        "nakshatra_index": 21,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Vishvedevas",
                        "degree_in_nakshatra": 5.227097,
                        "fraction_elapsed": 0.392032,
                        "house": 5,
                        "retrograde": false,
                        "speed": 12.326869,
                        "dignity": null,
                        "combust": false,
                        "distance_from_sun": 118.656052,
                        "navamsa_sign": "Capricorn"
                      },
                      {
                        "graha": "Mars",
                        "longitude": 324.515246,
                        "rashi": "Kumbha",
                        "sign": "Aquarius",
                        "sign_index": 10,
                        "degree_in_sign": 24.515246,
                        "position": "24°30'55\" Aquarius",
                        "sign_lord": "Saturn",
                        "nakshatra": "Purva Bhadrapada",
                        "nakshatra_index": 25,
                        "pada": 2,
                        "nakshatra_lord": "Jupiter",
                        "deity": "Aja Ekapada",
                        "degree_in_nakshatra": 4.515246,
                        "fraction_elapsed": 0.338643,
                        "house": 6,
                        "retrograde": false,
                        "speed": 0.742659,
                        "dignity": null,
                        "combust": false,
                        "distance_from_sun": 66.034569,
                        "navamsa_sign": "Taurus"
                      }
                    ],
                    "bhavas": [
                      {
                        "house": 1,
                        "sign": "Virgo",
                        "rashi": "Kanya",
                        "lord": "Mercury",
                        "occupants": []
                      },
                      {
                        "house": 2,
                        "sign": "Libra",
                        "rashi": "Tula",
                        "lord": "Venus",
                        "occupants": []
                      },
                      {
                        "house": 3,
                        "sign": "Scorpio",
                        "rashi": "Vrishchika",
                        "lord": "Mars",
                        "occupants": []
                      }
                    ],
                    "summary": {
                      "lagna_sign": "Virgo",
                      "lagna_rashi": "Kanya",
                      "lagna_lord": "Mercury",
                      "moon_sign": "Capricorn",
                      "moon_rashi": "Makara",
                      "sun_sign_sidereal": "Taurus",
                      "janma_nakshatra": "Uttara Ashadha",
                      "janma_nakshatra_pada": 2,
                      "janma_nakshatra_lord": "Sun",
                      "exalted": [
                        "Venus"
                      ],
                      "debilitated": [],
                      "retrograde": [
                        "Mercury",
                        "Saturn"
                      ],
                      "combust": []
                    },
                    "vargas": {
                      "D1": {
                        "varga": "D1",
                        "meaning": "Rashi (body, overall life)",
                        "lagna_sign": "Virgo",
                        "placements": {
                          "Sun": "Taurus",
                          "Moon": "Capricorn",
                          "Mars": "Aquarius",
                          "Mercury": "Aries",
                          "Jupiter": "Gemini",
                          "Venus": "Pisces",
                          "Saturn": "Capricorn",
                          "Rahu": "Capricorn",
                          "Ketu": "Cancer"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Virgo",
                            "occupants": []
                          },
                          {
                            "house": 2,
                            "sign": "Libra",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Scorpio",
                            "occupants": []
                          }
                        ]
                      },
                      "D9": {
                        "varga": "D9",
                        "meaning": "Navamsa (spouse, dharma, planetary strength)",
                        "lagna_sign": "Capricorn",
                        "placements": {
                          "Sun": "Capricorn",
                          "Moon": "Capricorn",
                          "Mars": "Taurus",
                          "Mercury": "Leo",
                          "Jupiter": "Aquarius",
                          "Venus": "Sagittarius",
                          "Saturn": "Capricorn",
                          "Rahu": "Gemini",
                          "Ketu": "Sagittarius"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Capricorn",
                            "occupants": [
                              "Sun",
                              "Moon",
                              "Saturn"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Aquarius",
                            "occupants": [
                              "Jupiter"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Pisces",
                            "occupants": []
                          }
                        ]
                      }
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "fcd314ed8ac513bf91b6019201559d8441d19e20d0e0cc0c918cae67703f8670",
                    "result_sha256": "80cea312fedebd8ffdd1b8a5c0e78b32bb972dfc1405e5cb6bcf4228236c00b2",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.150000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "150000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Kundli (Vedic birth chart) - Sidereal D1 + D9: lagna, 9 grahas with rashi, nakshatra, pada, house, dignity, combustion, bhavas.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "kundli"
      }
    },
    "/v1/vedic/kundli-full": {
      "post": {
        "operationId": "vedicKundliFull",
        "summary": "Kundli with all 16 vargas ($0.32)",
        "description": "The kundli plus all Shodashavarga divisional charts D1..D60 (Parashara rules).\n\nEverything in /vedic/kundli plus D1, D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D45 and D60, each with its lagna, placements and house table.",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "example": {
                "datetime": "1990-05-15T14:30",
                "latitude": 28.6139,
                "longitude": 77.209
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/kundli-full",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "1990-05-15T14:30",
                        "time_basis": "civil",
                        "timezone": "Asia/Kolkata",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+05:30",
                        "is_dst": false,
                        "utc": "1990-05-15T09:00:00Z",
                        "julian_day_ut": 2448026.875001,
                        "julian_day_tt": 2448026.875662,
                        "delta_t_seconds": 57.139,
                        "time_known": true,
                        "local_mean_time": "1990-05-15T14:08:50",
                        "true_solar_time": "1990-05-15T14:12:32",
                        "equation_of_time_minutes": 3.7067
                      },
                      "location": {
                        "latitude": 28.6139,
                        "longitude": 77.209
                      }
                    },
                    "settings": {
                      "zodiac": "sidereal",
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764,
                        "mean_deg": 23.722507,
                        "true_dms": "23°43'33\""
                      },
                      "node_type": "mean",
                      "house_system": "whole_sign",
                      "varga_rules": "Parashara (BPHS); D24 counts forward from Cancer in even signs"
                    },
                    "lagna": {
                      "longitude": 151.904824,
                      "rashi": "Kanya",
                      "sign": "Virgo",
                      "sign_index": 5,
                      "degree_in_sign": 1.904824,
                      "position": "1°54'17\" Virgo",
                      "sign_lord": "Mercury",
                      "nakshatra": "Uttara Phalguni",
                      "nakshatra_index": 12,
                      "pada": 2,
                      "nakshatra_lord": "Sun",
                      "deity": "Aryaman",
                      "degree_in_nakshatra": 5.238157,
                      "fraction_elapsed": 0.392862
                    },
                    "grahas": [
                      {
                        "graha": "Sun",
                        "longitude": 30.549815,
                        "rashi": "Vrishabha",
                        "sign": "Taurus",
                        "sign_index": 1,
                        "degree_in_sign": 0.549815,
                        "position": "0°32'59\" Taurus",
                        "sign_lord": "Venus",
                        "nakshatra": "Krittika",
                        "nakshatra_index": 3,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Agni",
                        "degree_in_nakshatra": 3.883149,
                        "fraction_elapsed": 0.291236,
                        "house": 9,
                        "retrograde": false,
                        "speed": 0.964203,
                        "dignity": null,
                        "navamsa_sign": "Capricorn"
                      },
                      {
                        "graha": "Moon",
                        "longitude": 271.893763,
                        "rashi": "Makara",
                        "sign": "Capricorn",
                        "sign_index": 9,
                        "degree_in_sign": 1.893763,
                        "position": "1°53'38\" Capricorn",
                        "sign_lord": "Saturn",
                        "nakshatra": "Uttara Ashadha",
                        "nakshatra_index": 21,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Vishvedevas",
                        "degree_in_nakshatra": 5.227097,
                        "fraction_elapsed": 0.392032,
                        "house": 5,
                        "retrograde": false,
                        "speed": 12.326869,
                        "dignity": null,
                        "combust": false,
                        "distance_from_sun": 118.656052,
                        "navamsa_sign": "Capricorn"
                      },
                      {
                        "graha": "Mars",
                        "longitude": 324.515246,
                        "rashi": "Kumbha",
                        "sign": "Aquarius",
                        "sign_index": 10,
                        "degree_in_sign": 24.515246,
                        "position": "24°30'55\" Aquarius",
                        "sign_lord": "Saturn",
                        "nakshatra": "Purva Bhadrapada",
                        "nakshatra_index": 25,
                        "pada": 2,
                        "nakshatra_lord": "Jupiter",
                        "deity": "Aja Ekapada",
                        "degree_in_nakshatra": 4.515246,
                        "fraction_elapsed": 0.338643,
                        "house": 6,
                        "retrograde": false,
                        "speed": 0.742659,
                        "dignity": null,
                        "combust": false,
                        "distance_from_sun": 66.034569,
                        "navamsa_sign": "Taurus"
                      }
                    ],
                    "bhavas": [
                      {
                        "house": 1,
                        "sign": "Virgo",
                        "rashi": "Kanya",
                        "lord": "Mercury",
                        "occupants": []
                      },
                      {
                        "house": 2,
                        "sign": "Libra",
                        "rashi": "Tula",
                        "lord": "Venus",
                        "occupants": []
                      },
                      {
                        "house": 3,
                        "sign": "Scorpio",
                        "rashi": "Vrishchika",
                        "lord": "Mars",
                        "occupants": []
                      }
                    ],
                    "summary": {
                      "lagna_sign": "Virgo",
                      "lagna_rashi": "Kanya",
                      "lagna_lord": "Mercury",
                      "moon_sign": "Capricorn",
                      "moon_rashi": "Makara",
                      "sun_sign_sidereal": "Taurus",
                      "janma_nakshatra": "Uttara Ashadha",
                      "janma_nakshatra_pada": 2,
                      "janma_nakshatra_lord": "Sun",
                      "exalted": [
                        "Venus"
                      ],
                      "debilitated": [],
                      "retrograde": [
                        "Mercury",
                        "Saturn"
                      ],
                      "combust": []
                    },
                    "vargas": {
                      "D1": {
                        "varga": "D1",
                        "meaning": "Rashi (body, overall life)",
                        "lagna_sign": "Virgo",
                        "placements": {
                          "Sun": "Taurus",
                          "Moon": "Capricorn",
                          "Mars": "Aquarius",
                          "Mercury": "Aries",
                          "Jupiter": "Gemini",
                          "Venus": "Pisces",
                          "Saturn": "Capricorn",
                          "Rahu": "Capricorn",
                          "Ketu": "Cancer"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Virgo",
                            "occupants": []
                          },
                          {
                            "house": 2,
                            "sign": "Libra",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Scorpio",
                            "occupants": []
                          }
                        ]
                      },
                      "D2": {
                        "varga": "D2",
                        "meaning": "Hora (wealth)",
                        "lagna_sign": "Cancer",
                        "placements": {
                          "Sun": "Cancer",
                          "Moon": "Cancer",
                          "Mars": "Cancer",
                          "Mercury": "Leo",
                          "Jupiter": "Cancer",
                          "Venus": "Leo",
                          "Saturn": "Cancer",
                          "Rahu": "Leo",
                          "Ketu": "Leo"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Cancer",
                            "occupants": [
                              "Sun",
                              "Moon",
                              "Mars"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Leo",
                            "occupants": [
                              "Mercury",
                              "Venus",
                              "Rahu"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Virgo",
                            "occupants": []
                          }
                        ]
                      },
                      "D3": {
                        "varga": "D3",
                        "meaning": "Drekkana (siblings, courage)",
                        "lagna_sign": "Virgo",
                        "placements": {
                          "Sun": "Taurus",
                          "Moon": "Capricorn",
                          "Mars": "Libra",
                          "Mercury": "Leo",
                          "Jupiter": "Libra",
                          "Venus": "Cancer",
                          "Saturn": "Capricorn",
                          "Rahu": "Taurus",
                          "Ketu": "Scorpio"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Virgo",
                            "occupants": []
                          },
                          {
                            "house": 2,
                            "sign": "Libra",
                            "occupants": [
                              "Mars",
                              "Jupiter"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Scorpio",
                            "occupants": [
                              "Ketu"
                            ]
                          }
                        ]
                      },
                      "D4": {
                        "varga": "D4",
                        "meaning": "Chaturthamsa (property, fortune)",
                        "lagna_sign": "Virgo",
                        "placements": {
                          "Sun": "Taurus",
                          "Moon": "Capricorn",
                          "Mars": "Scorpio",
                          "Mercury": "Cancer",
                          "Jupiter": "Sagittarius",
                          "Venus": "Virgo",
                          "Saturn": "Capricorn",
                          "Rahu": "Cancer",
                          "Ketu": "Capricorn"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Virgo",
                            "occupants": [
                              "Venus"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Libra",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Scorpio",
                            "occupants": [
                              "Mars"
                            ]
                          }
                        ]
                      },
                      "D7": {
                        "varga": "D7",
                        "meaning": "Saptamsa (children)",
                        "lagna_sign": "Pisces",
                        "placements": {
                          "Sun": "Scorpio",
                          "Moon": "Cancer",
                          "Mars": "Cancer",
                          "Mercury": "Cancer",
                          "Jupiter": "Virgo",
                          "Venus": "Capricorn",
                          "Saturn": "Cancer",
                          "Rahu": "Scorpio",
                          "Ketu": "Taurus"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Pisces",
                            "occupants": []
                          },
                          {
                            "house": 2,
                            "sign": "Aries",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Taurus",
                            "occupants": [
                              "Ketu"
                            ]
                          }
                        ]
                      },
                      "D9": {
                        "varga": "D9",
                        "meaning": "Navamsa (spouse, dharma, planetary strength)",
                        "lagna_sign": "Capricorn",
                        "placements": {
                          "Sun": "Capricorn",
                          "Moon": "Capricorn",
                          "Mars": "Taurus",
                          "Mercury": "Leo",
                          "Jupiter": "Aquarius",
                          "Venus": "Sagittarius",
                          "Saturn": "Capricorn",
                          "Rahu": "Gemini",
                          "Ketu": "Sagittarius"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Capricorn",
                            "occupants": [
                              "Sun",
                              "Moon",
                              "Saturn"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Aquarius",
                            "occupants": [
                              "Jupiter"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Pisces",
                            "occupants": []
                          }
                        ]
                      },
                      "D10": {
                        "varga": "D10",
                        "meaning": "Dasamsa (career)",
                        "lagna_sign": "Taurus",
                        "placements": {
                          "Sun": "Capricorn",
                          "Moon": "Virgo",
                          "Mars": "Libra",
                          "Mercury": "Leo",
                          "Jupiter": "Scorpio",
                          "Venus": "Taurus",
                          "Saturn": "Virgo",
                          "Rahu": "Aquarius",
                          "Ketu": "Leo"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Taurus",
                            "occupants": [
                              "Venus"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Gemini",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Cancer",
                            "occupants": []
                          }
                        ]
                      },
                      "D12": {
                        "varga": "D12",
                        "meaning": "Dwadasamsa (parents)",
                        "lagna_sign": "Virgo",
                        "placements": {
                          "Sun": "Taurus",
                          "Moon": "Capricorn",
                          "Mars": "Scorpio",
                          "Mercury": "Virgo",
                          "Jupiter": "Sagittarius",
                          "Venus": "Libra",
                          "Saturn": "Capricorn",
                          "Rahu": "Leo",
                          "Ketu": "Aquarius"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Virgo",
                            "occupants": [
                              "Mercury"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Libra",
                            "occupants": [
                              "Venus"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Scorpio",
                            "occupants": [
                              "Mars"
                            ]
                          }
                        ]
                      },
                      "D16": {
                        "varga": "D16",
                        "meaning": "Shodasamsa (vehicles, comforts)",
                        "lagna_sign": "Capricorn",
                        "placements": {
                          "Sun": "Leo",
                          "Moon": "Taurus",
                          "Mars": "Virgo",
                          "Mercury": "Scorpio",
                          "Jupiter": "Leo",
                          "Venus": "Libra",
                          "Saturn": "Aries",
                          "Rahu": "Capricorn",
                          "Ketu": "Capricorn"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Capricorn",
                            "occupants": [
                              "Rahu",
                              "Ketu"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Aquarius",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Pisces",
                            "occupants": []
                          }
                        ]
                      },
                      "D20": {
                        "varga": "D20",
                        "meaning": "Vimsamsa (spiritual progress)",
                        "lagna_sign": "Virgo",
                        "placements": {
                          "Sun": "Sagittarius",
                          "Moon": "Taurus",
                          "Mars": "Aries",
                          "Mercury": "Capricorn",
                          "Jupiter": "Gemini",
                          "Venus": "Leo",
                          "Saturn": "Taurus",
                          "Rahu": "Pisces",
                          "Ketu": "Pisces"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Virgo",
                            "occupants": []
                          },
                          {
                            "house": 2,
                            "sign": "Libra",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Scorpio",
                            "occupants": []
                          }
                        ]
                      },
                      "D24": {
                        "varga": "D24",
                        "meaning": "Chaturvimsamsa (education)",
                        "lagna_sign": "Leo",
                        "placements": {
                          "Sun": "Cancer",
                          "Moon": "Leo",
                          "Mars": "Pisces",
                          "Mercury": "Cancer",
                          "Jupiter": "Leo",
                          "Venus": "Libra",
                          "Saturn": "Leo",
                          "Rahu": "Virgo",
                          "Ketu": "Virgo"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Leo",
                            "occupants": [
                              "Moon",
                              "Jupiter",
                              "Saturn"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Virgo",
                            "occupants": [
                              "Rahu",
                              "Ketu"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Libra",
                            "occupants": [
                              "Venus"
                            ]
                          }
                        ]
                      },
                      "D27": {
                        "varga": "D27",
                        "meaning": "Saptavimsamsa / Bhamsa (strengths and weaknesses)",
                        "lagna_sign": "Leo",
                        "placements": {
                          "Sun": "Cancer",
                          "Moon": "Leo",
                          "Mars": "Leo",
                          "Mercury": "Aries",
                          "Jupiter": "Sagittarius",
                          "Venus": "Gemini",
                          "Saturn": "Leo",
                          "Rahu": "Libra",
                          "Ketu": "Aries"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Leo",
                            "occupants": [
                              "Moon",
                              "Mars",
                              "Saturn"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Virgo",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Libra",
                            "occupants": [
                              "Rahu"
                            ]
                          }
                        ]
                      },
                      "D30": {
                        "varga": "D30",
                        "meaning": "Trimsamsa (misfortunes)",
                        "lagna_sign": "Taurus",
                        "placements": {
                          "Sun": "Taurus",
                          "Moon": "Taurus",
                          "Mars": "Gemini",
                          "Mercury": "Sagittarius",
                          "Jupiter": "Sagittarius",
                          "Venus": "Pisces",
                          "Saturn": "Taurus",
                          "Rahu": "Pisces",
                          "Ketu": "Pisces"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Taurus",
                            "occupants": [
                              "Sun",
                              "Moon",
                              "Saturn"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Gemini",
                            "occupants": [
                              "Mars"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Cancer",
                            "occupants": []
                          }
                        ]
                      },
                      "D40": {
                        "varga": "D40",
                        "meaning": "Khavedamsa (maternal legacy)",
                        "lagna_sign": "Sagittarius",
                        "placements": {
                          "Sun": "Libra",
                          "Moon": "Sagittarius",
                          "Mars": "Sagittarius",
                          "Mercury": "Scorpio",
                          "Jupiter": "Capricorn",
                          "Venus": "Scorpio",
                          "Saturn": "Sagittarius",
                          "Rahu": "Virgo",
                          "Ketu": "Virgo"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Sagittarius",
                            "occupants": [
                              "Moon",
                              "Mars",
                              "Saturn"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Capricorn",
                            "occupants": [
                              "Jupiter"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Aquarius",
                            "occupants": []
                          }
                        ]
                      },
                      "D45": {
                        "varga": "D45",
                        "meaning": "Akshavedamsa (paternal legacy, character)",
                        "lagna_sign": "Aquarius",
                        "placements": {
                          "Sun": "Leo",
                          "Moon": "Gemini",
                          "Mars": "Leo",
                          "Mercury": "Capricorn",
                          "Jupiter": "Scorpio",
                          "Venus": "Aries",
                          "Saturn": "Gemini",
                          "Rahu": "Gemini",
                          "Ketu": "Gemini"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Aquarius",
                            "occupants": []
                          },
                          {
                            "house": 2,
                            "sign": "Pisces",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Aries",
                            "occupants": [
                              "Venus"
                            ]
                          }
                        ]
                      },
                      "D60": {
                        "varga": "D60",
                        "meaning": "Shashtiamsa (past karma, overall)",
                        "lagna_sign": "Sagittarius",
                        "placements": {
                          "Sun": "Gemini",
                          "Moon": "Aries",
                          "Mars": "Pisces",
                          "Mercury": "Leo",
                          "Jupiter": "Capricorn",
                          "Venus": "Aries",
                          "Saturn": "Aries",
                          "Rahu": "Sagittarius",
                          "Ketu": "Gemini"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Sagittarius",
                            "occupants": [
                              "Rahu"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Capricorn",
                            "occupants": [
                              "Jupiter"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Aquarius",
                            "occupants": []
                          }
                        ]
                      }
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "54032642b444c615b6542415a92ee8b7e86fdc662efaeab1cd257058ddca8133",
                    "result_sha256": "70353b5e079c4a6d5d31dd6225d52cc64894ddff6fc0959e8c127d0525e1b23e",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.320000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "320000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Kundli with all 16 vargas - The kundli plus all Shodashavarga divisional charts D1..D60 (Parashara rules).",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "kundli_full"
      }
    },
    "/v1/vedic/dashas": {
      "post": {
        "operationId": "vedicDashas",
        "summary": "Vimshottari dashas ($0.10)",
        "description": "Vimshottari maha/antar/pratyantar periods with exact dates, birth balance, and the running periods.\n\nThe 120-year Vimshottari sequence from the Moon's exact nakshatra position: balance at birth, all 9 mahadashas with sub-periods down to 4 levels, and (with on_date) the periods running on a date.",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "on_date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (UTC): also report what is active on this date."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      },
                      "depth": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 4,
                        "default": 2,
                        "description": "1 mahadasha, 2 +antardasha, 3 +pratyantardasha, 4 +sookshma."
                      },
                      "year_length": {
                        "type": "string",
                        "enum": [
                          "julian",
                          "gregorian",
                          "sidereal",
                          "savana"
                        ],
                        "default": "julian",
                        "description": "Dasha year: 365.25 (default), 365.2425, 365.256363 or 360 days."
                      }
                    }
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "example": {
                "datetime": "1990-05-15T14:30",
                "latitude": 28.6139,
                "longitude": 77.209,
                "on_date": "2026-10-01"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/dashas",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "1990-05-15T14:30",
                        "time_basis": "civil",
                        "timezone": "Asia/Kolkata",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+05:30",
                        "is_dst": false,
                        "utc": "1990-05-15T09:00:00Z",
                        "julian_day_ut": 2448026.875001,
                        "julian_day_tt": 2448026.875662,
                        "delta_t_seconds": 57.139,
                        "time_known": true,
                        "local_mean_time": "1990-05-15T14:08:50",
                        "true_solar_time": "1990-05-15T14:12:32",
                        "equation_of_time_minutes": 3.7067
                      },
                      "location": {
                        "latitude": 28.6139,
                        "longitude": 77.209
                      }
                    },
                    "settings": {
                      "zodiac": "sidereal",
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764,
                        "mean_deg": 23.722507,
                        "true_dms": "23°43'33\""
                      },
                      "node_type": "mean",
                      "house_system": "whole_sign",
                      "varga_rules": "Parashara (BPHS); D24 counts forward from Cancer in even signs"
                    },
                    "moon": {
                      "longitude": 271.893763,
                      "rashi": "Makara",
                      "sign": "Capricorn",
                      "sign_index": 9,
                      "degree_in_sign": 1.893763,
                      "position": "1°53'38\" Capricorn",
                      "sign_lord": "Saturn",
                      "nakshatra": "Uttara Ashadha",
                      "nakshatra_index": 21,
                      "pada": 2,
                      "nakshatra_lord": "Sun",
                      "deity": "Vishvedevas",
                      "degree_in_nakshatra": 5.227097,
                      "fraction_elapsed": 0.392032
                    },
                    "dasha": {
                      "system": "vimshottari",
                      "year_length": {
                        "name": "julian",
                        "days": 365.25
                      },
                      "depth": 2,
                      "birth_nakshatra_lord": "Sun",
                      "moon_nakshatra_fraction_elapsed": 0.392032,
                      "balance_at_birth": {
                        "lord": "Sun",
                        "years": 3,
                        "months": 7,
                        "days": 23,
                        "total_days": 1332.361337
                      },
                      "mahadashas": [
                        {
                          "lord": "Sun",
                          "level": "mahadasha",
                          "years": 6,
                          "start": "1988-01-07T05:40Z",
                          "end": "1994-01-06T17:40Z",
                          "sub_periods": [
                            {
                              "lord": "Sun",
                              "level": "antardasha",
                              "start": "1988-01-07T05:40Z",
                              "end": "1988-04-25T19:28Z"
                            },
                            {
                              "lord": "Moon",
                              "level": "antardasha",
                              "start": "1988-04-25T19:28Z",
                              "end": "1988-10-25T10:28Z"
                            },
                            {
                              "lord": "Mars",
                              "level": "antardasha",
                              "start": "1988-10-25T10:28Z",
                              "end": "1989-03-02T06:34Z"
                            }
                          ]
                        },
                        {
                          "lord": "Moon",
                          "level": "mahadasha",
                          "years": 10,
                          "start": "1994-01-06T17:40Z",
                          "end": "2004-01-07T05:40Z",
                          "sub_periods": [
                            {
                              "lord": "Moon",
                              "level": "antardasha",
                              "start": "1994-01-06T17:40Z",
                              "end": "1994-11-07T02:40Z"
                            },
                            {
                              "lord": "Mars",
                              "level": "antardasha",
                              "start": "1994-11-07T02:40Z",
                              "end": "1995-06-08T04:10Z"
                            },
                            {
                              "lord": "Rahu",
                              "level": "antardasha",
                              "start": "1995-06-08T04:10Z",
                              "end": "1996-12-07T01:10Z"
                            }
                          ]
                        },
                        {
                          "lord": "Mars",
                          "level": "mahadasha",
                          "years": 7,
                          "start": "2004-01-07T05:40Z",
                          "end": "2011-01-06T23:40Z",
                          "sub_periods": [
                            {
                              "lord": "Mars",
                              "level": "antardasha",
                              "start": "2004-01-07T05:40Z",
                              "end": "2004-06-04T09:07Z"
                            },
                            {
                              "lord": "Rahu",
                              "level": "antardasha",
                              "start": "2004-06-04T09:07Z",
                              "end": "2005-06-22T21:25Z"
                            },
                            {
                              "lord": "Jupiter",
                              "level": "antardasha",
                              "start": "2005-06-22T21:25Z",
                              "end": "2006-05-29T19:01Z"
                            }
                          ]
                        }
                      ],
                      "current": [
                        {
                          "level": "mahadasha",
                          "lord": "Rahu",
                          "start": "2011-01-06T23:40Z",
                          "end": "2029-01-06T11:40Z"
                        },
                        {
                          "level": "antardasha",
                          "lord": "Moon",
                          "start": "2026-06-20T02:22Z",
                          "end": "2027-12-19T23:22Z"
                        }
                      ]
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "ee901f5e82008a60e291eea9bc1f250071e18dd38ba471970272c235d0a44f36",
                    "result_sha256": "a30a0e72fabe6126926d822a8567f0da5116ab04e38a8089b4e07eec9d07ed68",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.100000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "100000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Vimshottari dashas - Vimshottari maha/antar/pratyantar periods with exact dates, birth balance, and the running periods.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "vimshottari_dasha"
      }
    },
    "/v1/vedic/doshas": {
      "post": {
        "operationId": "vedicDoshas",
        "summary": "Doshas ($0.15)",
        "description": "Manglik (Kuja), Kaal Sarp and Sade Sati / Dhaiya, each with the exact rule applied and dates.\n\nManglik from lagna, Moon and Venus with severity and commonly cited cancellations; Kaal Sarp with type and direction (partial cases flagged); Sade Sati cycles and Dhaiya phases with start/end dates over 100 years, plus the status on a given date.",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "on_date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (UTC): also report what is active on this date."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "example": {
                "datetime": "1990-05-15T14:30",
                "latitude": 28.6139,
                "longitude": 77.209,
                "on_date": "2026-10-01"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/doshas",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "1990-05-15T14:30",
                        "time_basis": "civil",
                        "timezone": "Asia/Kolkata",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+05:30",
                        "is_dst": false,
                        "utc": "1990-05-15T09:00:00Z",
                        "julian_day_ut": 2448026.875001,
                        "julian_day_tt": 2448026.875662,
                        "delta_t_seconds": 57.139,
                        "time_known": true,
                        "local_mean_time": "1990-05-15T14:08:50",
                        "true_solar_time": "1990-05-15T14:12:32",
                        "equation_of_time_minutes": 3.7067
                      },
                      "location": {
                        "latitude": 28.6139,
                        "longitude": 77.209
                      }
                    },
                    "settings": {
                      "zodiac": "sidereal",
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764,
                        "mean_deg": 23.722507,
                        "true_dms": "23°43'33\""
                      },
                      "node_type": "mean",
                      "house_system": "whole_sign",
                      "varga_rules": "Parashara (BPHS); D24 counts forward from Cancer in even signs"
                    },
                    "doshas": {
                      "manglik": {
                        "present": true,
                        "severity": "mild",
                        "rule": "Mars in house [1, 2, 4, 7, 8, 12] counted by sign from the lagna or the Moon (Venus reported for reference)",
                        "mars_sign": "Aquarius",
                        "from": {
                          "lagna": {
                            "mars_house": 6,
                            "manglik": false
                          },
                          "moon": {
                            "mars_house": 2,
                            "manglik": true
                          },
                          "venus": {
                            "mars_house": 12,
                            "manglik": true
                          }
                        },
                        "counted_from_with_dosha": [
                          "moon",
                          "venus"
                        ],
                        "commonly_cited_cancellations_present": [],
                        "note": "Matching two manglik charts is traditionally held to neutralise the dosha."
                      },
                      "kaal_sarp": {
                        "present": false,
                        "partial": false,
                        "rule": "all seven planets Sun..Saturn lie on one side of the Rahu-Ketu axis",
                        "rahu_house": 5,
                        "planets_rahu_to_ketu": [
                          "Sun",
                          "Mars",
                          "Mercury"
                        ],
                        "planets_ketu_to_rahu": [
                          "Moon",
                          "Saturn"
                        ]
                      },
                      "sade_sati": {
                        "moon_sign": "Capricorn",
                        "rule": "Saturn (sidereal) in the 12th, 1st or 2nd sign from the natal Moon sign; Dhaiya when in the 4th or 8th",
                        "resolution": "1 day",
                        "span": {
                          "from": "1990-05-15",
                          "to": "2090-05-15"
                        },
                        "sade_sati_cycles": [
                          {
                            "start": "1990-05-15",
                            "end": "1995-06-02"
                          },
                          {
                            "start": "1995-08-10",
                            "end": "1996-02-17"
                          },
                          {
                            "start": "2017-01-27",
                            "end": "2017-06-21"
                          }
                        ],
                        "phases": [
                          {
                            "phase": "sade_sati:peak (over the Moon)",
                            "start": "1990-05-15",
                            "start_is_birth": true,
                            "end": "1990-06-21"
                          },
                          {
                            "phase": "sade_sati:rising (12th from Moon)",
                            "start": "1990-06-21",
                            "start_is_birth": false,
                            "end": "1990-12-15"
                          },
                          {
                            "phase": "sade_sati:peak (over the Moon)",
                            "start": "1990-12-15",
                            "start_is_birth": false,
                            "end": "1993-03-06"
                          }
                        ],
                        "on_date": {
                          "date": "2026-10-01",
                          "active": [],
                          "in_sade_sati": false
                        }
                      }
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "5620146d7f38d1bdd4283ac32a71173b71c3d60429762462e3703d4852b6cb20",
                    "result_sha256": "5c2d7c82b6c240842f10c62d0073e62d1d2d50acfba45a9976456209ab0054a5",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.150000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "150000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Doshas - Manglik (Kuja), Kaal Sarp and Sade Sati / Dhaiya, each with the exact rule applied and dates.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "doshas"
      }
    },
    "/v1/vedic/gun-milan": {
      "post": {
        "operationId": "vedicGunMilan",
        "summary": "Gun Milan (Ashtakoota matching) ($0.25)",
        "description": "36-point Ashtakoota marriage compatibility: all 8 kootas with reasons, doshas and Manglik check.\n\nVarna, Vashya, Tara, Yoni, Graha Maitri, Gana, Bhakoot and Nadi scored from both Moons, each with the attributes and rule behind the score, Nadi/Bhakoot dosha flags with commonly cited cancellations, and both partners' Manglik status. Boy = person_a, girl = person_b by convention.",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "person_a",
                  "person_b"
                ],
                "properties": {
                  "person_a": {
                    "type": "object",
                    "properties": {
                      "datetime": {
                        "type": "string",
                        "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                        "examples": [
                          "1990-05-15T14:30"
                        ]
                      },
                      "date": {
                        "type": "string",
                        "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                      },
                      "time": {
                        "type": "string",
                        "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                      },
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90,
                        "description": "Decimal degrees, north positive."
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180,
                        "description": "Decimal degrees, east positive."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                      },
                      "time_basis": {
                        "type": "string",
                        "enum": [
                          "civil",
                          "utc",
                          "lmt",
                          "true_solar"
                        ],
                        "default": "civil",
                        "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                      },
                      "ambiguous_time": {
                        "type": "string",
                        "enum": [
                          "earlier",
                          "later"
                        ],
                        "default": "earlier",
                        "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ],
                    "description": "Groom / boy (traditional convention)."
                  },
                  "person_b": {
                    "type": "object",
                    "properties": {
                      "datetime": {
                        "type": "string",
                        "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                        "examples": [
                          "1990-05-15T14:30"
                        ]
                      },
                      "date": {
                        "type": "string",
                        "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                      },
                      "time": {
                        "type": "string",
                        "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                      },
                      "latitude": {
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90,
                        "description": "Decimal degrees, north positive."
                      },
                      "longitude": {
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180,
                        "description": "Decimal degrees, east positive."
                      },
                      "timezone": {
                        "type": "string",
                        "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                      },
                      "time_basis": {
                        "type": "string",
                        "enum": [
                          "civil",
                          "utc",
                          "lmt",
                          "true_solar"
                        ],
                        "default": "civil",
                        "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                      },
                      "ambiguous_time": {
                        "type": "string",
                        "enum": [
                          "earlier",
                          "later"
                        ],
                        "default": "earlier",
                        "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ],
                    "description": "Bride / girl."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  }
                }
              },
              "example": {
                "person_a": {
                  "datetime": "1990-05-15T14:30",
                  "latitude": 28.6139,
                  "longitude": 77.209
                },
                "person_b": {
                  "datetime": "1992-08-03T09:15",
                  "latitude": 19.076,
                  "longitude": 72.8777
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/gun-milan",
                  "result": {
                    "settings": {
                      "zodiac": "sidereal",
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764,
                        "mean_deg": 23.722507,
                        "true_dms": "23°43'33\""
                      },
                      "node_type": "mean",
                      "house_system": "whole_sign",
                      "varga_rules": "Parashara (BPHS); D24 counts forward from Cancer in even signs",
                      "ruleset": "ashtakoota-north-indian/majority-v1",
                      "convention": "person_a = groom/boy, person_b = bride/girl"
                    },
                    "person_a": {
                      "subject": {
                        "time": {
                          "local_input": "1990-05-15T14:30",
                          "time_basis": "civil",
                          "timezone": "Asia/Kolkata",
                          "timezone_source": "resolved_from_coordinates",
                          "utc_offset": "+05:30",
                          "is_dst": false,
                          "utc": "1990-05-15T09:00:00Z",
                          "julian_day_ut": 2448026.875001,
                          "julian_day_tt": 2448026.875662,
                          "delta_t_seconds": 57.139,
                          "time_known": true,
                          "local_mean_time": "1990-05-15T14:08:50",
                          "true_solar_time": "1990-05-15T14:12:32",
                          "equation_of_time_minutes": 3.7067
                        }
                      },
                      "moon": {
                        "longitude": 271.893763,
                        "rashi_index": 9,
                        "sign": "Capricorn",
                        "nakshatra_index": 20,
                        "nakshatra": "Uttara Ashadha",
                        "pada": 2,
                        "varna": "Vaishya",
                        "vashya": "Chatushpada",
                        "yoni": "Mongoose",
                        "gana": "Manushya",
                        "nadi": "Antya",
                        "rashi_lord": "Saturn"
                      }
                    },
                    "person_b": {
                      "subject": {
                        "time": {
                          "local_input": "1992-08-03T09:15",
                          "time_basis": "civil",
                          "timezone": "Asia/Kolkata",
                          "timezone_source": "resolved_from_coordinates",
                          "utc_offset": "+05:30",
                          "is_dst": false,
                          "utc": "1992-08-03T03:45:00Z",
                          "julian_day_ut": 2448837.656255,
                          "julian_day_tt": 2448837.656935,
                          "delta_t_seconds": 58.788,
                          "time_known": true,
                          "local_mean_time": "1992-08-03T08:36:30",
                          "true_solar_time": "1992-08-03T08:30:21",
                          "equation_of_time_minutes": -6.1484
                        }
                      },
                      "moon": {
                        "longitude": 167.934588,
                        "rashi_index": 5,
                        "sign": "Virgo",
                        "nakshatra_index": 12,
                        "nakshatra": "Hasta",
                        "pada": 3,
                        "varna": "Vaishya",
                        "vashya": "Manava",
                        "yoni": "Buffalo",
                        "gana": "Deva",
                        "nadi": "Adi",
                        "rashi_lord": "Mercury"
                      }
                    },
                    "kootas": {
                      "varna": {
                        "score": 1,
                        "boy": "Vaishya",
                        "girl": "Vaishya",
                        "rule": "1 point if VARNA_RANK[groom] >= VARNA_RANK[bride], else 0",
                        "max": 1
                      },
                      "vashya": {
                        "score": 1.0,
                        "boy": "Chatushpada",
                        "girl": "Manava",
                        "rule": "group by Moon sign (Sagittarius and Capricorn split at 15 deg); groom row x bride column",
                        "max": 2
                      },
                      "tara": {
                        "score": 3.0,
                        "girl_to_boy": {
                          "remainder": 9,
                          "tara": "Parama Mitra",
                          "auspicious": true
                        },
                        "boy_to_girl": {
                          "remainder": 2,
                          "tara": "Sampat",
                          "auspicious": true
                        },
                        "rule": "count = ((to_nak - from_nak) % 27) + 1 (inclusive); remainder = count % 9, with 0 read as 9. Do this bride->groom and groom->bride. Each direction whose remainder is not in {3,5,7} scores 1.5; the total is 0, 1.5 or 3.",
                        "max": 3
                      },
                      "yoni": {
                        "score": 2,
                        "boy": "Mongoose",
                        "girl": "Buffalo",
                        "sworn_enemies": false,
                        "rule": "14x14 yoni matrix: same 4, friendly 3, neutral 2, inimical 1, sworn enemies 0",
                        "max": 4
                      },
                      "graha_maitri": {
                        "score": 4,
                        "boy_lord": "Saturn",
                        "girl_lord": "Mercury",
                        "boy_lord_sees_girl_lord_as": "friend",
                        "girl_lord_sees_boy_lord_as": "neutral",
                        "rule": "naisargika friendship of the Moon-sign lords: FF 5, FN 4, NN 3, FE 1, NE 0.5, EE 0",
                        "max": 5
                      },
                      "gana": {
                        "score": 6,
                        "boy": "Manushya",
                        "girl": "Deva",
                        "rule": "3x3 gana matrix, groom row x bride column",
                        "max": 6
                      },
                      "bhakoot": {
                        "score": 0,
                        "boy_sign": "Capricorn",
                        "girl_sign": "Virgo",
                        "distance": "9/5",
                        "rule": "0 for sign distances 2/12, 5/9, 6/8; otherwise 7",
                        "max": 7
                      },
                      "nadi": {
                        "score": 8,
                        "boy": "Antya",
                        "girl": "Adi",
                        "rule": "8 if the nadis differ, else 0 (nadi dosha). Same nakshatra is still 0 in the score.",
                        "max": 8
                      }
                    },
                    "total": 25.0,
                    "max": 36,
                    "verdict": "25-32: good match",
                    "doshas": {
                      "bhakoot_dosha": {
                        "present": true,
                        "type": "9/5",
                        "commonly_cited_cancellations_present": [],
                        "cancellation_rules": []
                      }
                    },
                    "manglik": {
                      "person_a": {
                        "present": true,
                        "severity": "mild",
                        "rule": "Mars in house [1, 2, 4, 7, 8, 12] counted by sign from the lagna or the Moon (Venus reported for reference)",
                        "mars_sign": "Aquarius",
                        "from": {
                          "lagna": {
                            "mars_house": 6,
                            "manglik": false
                          },
                          "moon": {
                            "mars_house": 2,
                            "manglik": true
                          },
                          "venus": {
                            "mars_house": 12,
                            "manglik": true
                          }
                        },
                        "counted_from_with_dosha": [
                          "moon",
                          "venus"
                        ],
                        "commonly_cited_cancellations_present": [],
                        "note": "Matching two manglik charts is traditionally held to neutralise the dosha."
                      },
                      "person_b": {
                        "present": false,
                        "severity": "none",
                        "rule": "Mars in house [1, 2, 4, 7, 8, 12] counted by sign from the lagna or the Moon (Venus reported for reference)",
                        "mars_sign": "Taurus",
                        "from": {
                          "lagna": {
                            "mars_house": 10,
                            "manglik": false
                          },
                          "moon": {
                            "mars_house": 9,
                            "manglik": false
                          },
                          "venus": {
                            "mars_house": 10,
                            "manglik": false
                          }
                        },
                        "counted_from_with_dosha": [],
                        "commonly_cited_cancellations_present": [],
                        "note": "Matching two manglik charts is traditionally held to neutralise the dosha."
                      },
                      "match": "only one partner is manglik: traditionally a concern (check the cancellations listed)"
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "333503420c23e7efab574e1d03ea74ac43b2938a4c0e025e133e3e28d45baf64",
                    "result_sha256": "a935a8920bb8bd214b49237d32b2dfcd3f79b101265f3010cc120b2572097246",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.250000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "250000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Gun Milan (Ashtakoota matching) - 36-point Ashtakoota marriage compatibility: all 8 kootas with reasons, doshas and Manglik check.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "gun_milan"
      }
    },
    "/v1/vedic/report": {
      "post": {
        "operationId": "vedicReport",
        "summary": "Complete Vedic report ($0.50)",
        "description": "Kundli + Vimshottari dashas + doshas + janma panchang in one call.\n\nThe full Jyotish dossier for one person in a single deterministic call: everything in /vedic/kundli, /vedic/dashas (2 levels, running periods with on_date), /vedic/doshas and the panchang at birth.",
        "tags": [
          "vedic"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "datetime": {
                    "type": "string",
                    "description": "Local birth date-time, ISO 8601: '1990-05-15T14:30' (local clock time at the place) or with an explicit offset '1990-05-15T14:30:00+02:00'. Alternative: 'date' + 'time'.",
                    "examples": [
                      "1990-05-15T14:30"
                    ]
                  },
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (use with 'time' instead of 'datetime')."
                  },
                  "time": {
                    "type": "string",
                    "description": "HH:MM or HH:MM:SS, 24 h. Omit if unknown (computed at 12:00 with a TIME_UNKNOWN warning)."
                  },
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90,
                    "description": "Decimal degrees, north positive."
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180,
                    "description": "Decimal degrees, east positive."
                  },
                  "timezone": {
                    "type": "string",
                    "description": "IANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date."
                  },
                  "time_basis": {
                    "type": "string",
                    "enum": [
                      "civil",
                      "utc",
                      "lmt",
                      "true_solar"
                    ],
                    "default": "civil",
                    "description": "What the given clock time is: civil wall-clock (default), UTC, Local Mean Time, or true (apparent) solar time."
                  },
                  "ambiguous_time": {
                    "type": "string",
                    "enum": [
                      "earlier",
                      "later"
                    ],
                    "default": "earlier",
                    "description": "Which occurrence to use when a local time happens twice (DST fall-back)."
                  },
                  "on_date": {
                    "type": "string",
                    "description": "YYYY-MM-DD (UTC): also report what is active on this date."
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "ayanamsa": {
                        "type": "string",
                        "enum": [
                          "fagan_bradley",
                          "krishnamurti",
                          "lahiri",
                          "raman",
                          "true_chitrapaksha",
                          "yukteshwar"
                        ],
                        "default": "lahiri"
                      },
                      "node_type": {
                        "type": "string",
                        "enum": [
                          "mean",
                          "true"
                        ],
                        "default": "mean",
                        "description": "Rahu/Ketu from the mean or the true (osculating) lunar node."
                      },
                      "house_system": {
                        "type": "string",
                        "enum": [
                          "whole_sign",
                          "equal",
                          "placidus",
                          "porphyry",
                          "koch"
                        ],
                        "default": "whole_sign",
                        "description": "Bhava system; 'equal' puts the lagna degree mid-house."
                      },
                      "include_outer_planets": {
                        "type": "boolean",
                        "default": false
                      },
                      "depth": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 4,
                        "default": 2,
                        "description": "1 mahadasha, 2 +antardasha, 3 +pratyantardasha, 4 +sookshma."
                      },
                      "year_length": {
                        "type": "string",
                        "enum": [
                          "julian",
                          "gregorian",
                          "sidereal",
                          "savana"
                        ],
                        "default": "julian",
                        "description": "Dasha year: 365.25 (default), 365.2425, 365.256363 or 360 days."
                      }
                    }
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "example": {
                "datetime": "1990-05-15T14:30",
                "latitude": 28.6139,
                "longitude": 77.209,
                "on_date": "2026-10-01"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result envelope with reproducibility hashes",
            "headers": {
              "X-Result-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Input-SHA256": {
                "schema": {
                  "type": "string"
                }
              },
              "PAYMENT-RESPONSE": {
                "schema": {
                  "type": "string"
                },
                "description": "x402 receipt"
              },
              "Payment-Receipt": {
                "schema": {
                  "type": "string"
                },
                "description": "MPP receipt"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "endpoint",
                    "result",
                    "meta"
                  ],
                  "properties": {
                    "endpoint": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "engine": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "string"
                        },
                        "input_sha256": {
                          "type": "string"
                        },
                        "result_sha256": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        },
                        "llm_used": {
                          "type": "boolean"
                        },
                        "payment": {
                          "type": "object"
                        }
                      }
                    }
                  }
                },
                "example": {
                  "endpoint": "vedic/report",
                  "result": {
                    "subject": {
                      "time": {
                        "local_input": "1990-05-15T14:30",
                        "time_basis": "civil",
                        "timezone": "Asia/Kolkata",
                        "timezone_source": "resolved_from_coordinates",
                        "utc_offset": "+05:30",
                        "is_dst": false,
                        "utc": "1990-05-15T09:00:00Z",
                        "julian_day_ut": 2448026.875001,
                        "julian_day_tt": 2448026.875662,
                        "delta_t_seconds": 57.139,
                        "time_known": true,
                        "local_mean_time": "1990-05-15T14:08:50",
                        "true_solar_time": "1990-05-15T14:12:32",
                        "equation_of_time_minutes": 3.7067
                      },
                      "location": {
                        "latitude": 28.6139,
                        "longitude": 77.209
                      }
                    },
                    "settings": {
                      "zodiac": "sidereal",
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764,
                        "mean_deg": 23.722507,
                        "true_dms": "23°43'33\""
                      },
                      "node_type": "mean",
                      "house_system": "whole_sign",
                      "varga_rules": "Parashara (BPHS); D24 counts forward from Cancer in even signs"
                    },
                    "lagna": {
                      "longitude": 151.904824,
                      "rashi": "Kanya",
                      "sign": "Virgo",
                      "sign_index": 5,
                      "degree_in_sign": 1.904824,
                      "position": "1°54'17\" Virgo",
                      "sign_lord": "Mercury",
                      "nakshatra": "Uttara Phalguni",
                      "nakshatra_index": 12,
                      "pada": 2,
                      "nakshatra_lord": "Sun",
                      "deity": "Aryaman",
                      "degree_in_nakshatra": 5.238157,
                      "fraction_elapsed": 0.392862
                    },
                    "grahas": [
                      {
                        "graha": "Sun",
                        "longitude": 30.549815,
                        "rashi": "Vrishabha",
                        "sign": "Taurus",
                        "sign_index": 1,
                        "degree_in_sign": 0.549815,
                        "position": "0°32'59\" Taurus",
                        "sign_lord": "Venus",
                        "nakshatra": "Krittika",
                        "nakshatra_index": 3,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Agni",
                        "degree_in_nakshatra": 3.883149,
                        "fraction_elapsed": 0.291236,
                        "house": 9,
                        "retrograde": false,
                        "speed": 0.964203,
                        "dignity": null,
                        "navamsa_sign": "Capricorn"
                      },
                      {
                        "graha": "Moon",
                        "longitude": 271.893763,
                        "rashi": "Makara",
                        "sign": "Capricorn",
                        "sign_index": 9,
                        "degree_in_sign": 1.893763,
                        "position": "1°53'38\" Capricorn",
                        "sign_lord": "Saturn",
                        "nakshatra": "Uttara Ashadha",
                        "nakshatra_index": 21,
                        "pada": 2,
                        "nakshatra_lord": "Sun",
                        "deity": "Vishvedevas",
                        "degree_in_nakshatra": 5.227097,
                        "fraction_elapsed": 0.392032,
                        "house": 5,
                        "retrograde": false,
                        "speed": 12.326869,
                        "dignity": null,
                        "combust": false,
                        "distance_from_sun": 118.656052,
                        "navamsa_sign": "Capricorn"
                      },
                      {
                        "graha": "Mars",
                        "longitude": 324.515246,
                        "rashi": "Kumbha",
                        "sign": "Aquarius",
                        "sign_index": 10,
                        "degree_in_sign": 24.515246,
                        "position": "24°30'55\" Aquarius",
                        "sign_lord": "Saturn",
                        "nakshatra": "Purva Bhadrapada",
                        "nakshatra_index": 25,
                        "pada": 2,
                        "nakshatra_lord": "Jupiter",
                        "deity": "Aja Ekapada",
                        "degree_in_nakshatra": 4.515246,
                        "fraction_elapsed": 0.338643,
                        "house": 6,
                        "retrograde": false,
                        "speed": 0.742659,
                        "dignity": null,
                        "combust": false,
                        "distance_from_sun": 66.034569,
                        "navamsa_sign": "Taurus"
                      }
                    ],
                    "bhavas": [
                      {
                        "house": 1,
                        "sign": "Virgo",
                        "rashi": "Kanya",
                        "lord": "Mercury",
                        "occupants": []
                      },
                      {
                        "house": 2,
                        "sign": "Libra",
                        "rashi": "Tula",
                        "lord": "Venus",
                        "occupants": []
                      },
                      {
                        "house": 3,
                        "sign": "Scorpio",
                        "rashi": "Vrishchika",
                        "lord": "Mars",
                        "occupants": []
                      }
                    ],
                    "summary": {
                      "lagna_sign": "Virgo",
                      "lagna_rashi": "Kanya",
                      "lagna_lord": "Mercury",
                      "moon_sign": "Capricorn",
                      "moon_rashi": "Makara",
                      "sun_sign_sidereal": "Taurus",
                      "janma_nakshatra": "Uttara Ashadha",
                      "janma_nakshatra_pada": 2,
                      "janma_nakshatra_lord": "Sun",
                      "exalted": [
                        "Venus"
                      ],
                      "debilitated": [],
                      "retrograde": [
                        "Mercury",
                        "Saturn"
                      ],
                      "combust": []
                    },
                    "vargas": {
                      "D1": {
                        "varga": "D1",
                        "meaning": "Rashi (body, overall life)",
                        "lagna_sign": "Virgo",
                        "placements": {
                          "Sun": "Taurus",
                          "Moon": "Capricorn",
                          "Mars": "Aquarius",
                          "Mercury": "Aries",
                          "Jupiter": "Gemini",
                          "Venus": "Pisces",
                          "Saturn": "Capricorn",
                          "Rahu": "Capricorn",
                          "Ketu": "Cancer"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Virgo",
                            "occupants": []
                          },
                          {
                            "house": 2,
                            "sign": "Libra",
                            "occupants": []
                          },
                          {
                            "house": 3,
                            "sign": "Scorpio",
                            "occupants": []
                          }
                        ]
                      },
                      "D9": {
                        "varga": "D9",
                        "meaning": "Navamsa (spouse, dharma, planetary strength)",
                        "lagna_sign": "Capricorn",
                        "placements": {
                          "Sun": "Capricorn",
                          "Moon": "Capricorn",
                          "Mars": "Taurus",
                          "Mercury": "Leo",
                          "Jupiter": "Aquarius",
                          "Venus": "Sagittarius",
                          "Saturn": "Capricorn",
                          "Rahu": "Gemini",
                          "Ketu": "Sagittarius"
                        },
                        "houses": [
                          {
                            "house": 1,
                            "sign": "Capricorn",
                            "occupants": [
                              "Sun",
                              "Moon",
                              "Saturn"
                            ]
                          },
                          {
                            "house": 2,
                            "sign": "Aquarius",
                            "occupants": [
                              "Jupiter"
                            ]
                          },
                          {
                            "house": 3,
                            "sign": "Pisces",
                            "occupants": []
                          }
                        ]
                      }
                    },
                    "dasha": {
                      "system": "vimshottari",
                      "year_length": {
                        "name": "julian",
                        "days": 365.25
                      },
                      "depth": 2,
                      "birth_nakshatra_lord": "Sun",
                      "moon_nakshatra_fraction_elapsed": 0.392032,
                      "balance_at_birth": {
                        "lord": "Sun",
                        "years": 3,
                        "months": 7,
                        "days": 23,
                        "total_days": 1332.361337
                      },
                      "mahadashas": [
                        {
                          "lord": "Sun",
                          "level": "mahadasha",
                          "years": 6,
                          "start": "1988-01-07T05:40Z",
                          "end": "1994-01-06T17:40Z",
                          "sub_periods": [
                            {
                              "lord": "Sun",
                              "level": "antardasha",
                              "start": "1988-01-07T05:40Z",
                              "end": "1988-04-25T19:28Z"
                            },
                            {
                              "lord": "Moon",
                              "level": "antardasha",
                              "start": "1988-04-25T19:28Z",
                              "end": "1988-10-25T10:28Z"
                            },
                            {
                              "lord": "Mars",
                              "level": "antardasha",
                              "start": "1988-10-25T10:28Z",
                              "end": "1989-03-02T06:34Z"
                            }
                          ]
                        },
                        {
                          "lord": "Moon",
                          "level": "mahadasha",
                          "years": 10,
                          "start": "1994-01-06T17:40Z",
                          "end": "2004-01-07T05:40Z",
                          "sub_periods": [
                            {
                              "lord": "Moon",
                              "level": "antardasha",
                              "start": "1994-01-06T17:40Z",
                              "end": "1994-11-07T02:40Z"
                            },
                            {
                              "lord": "Mars",
                              "level": "antardasha",
                              "start": "1994-11-07T02:40Z",
                              "end": "1995-06-08T04:10Z"
                            },
                            {
                              "lord": "Rahu",
                              "level": "antardasha",
                              "start": "1995-06-08T04:10Z",
                              "end": "1996-12-07T01:10Z"
                            }
                          ]
                        },
                        {
                          "lord": "Mars",
                          "level": "mahadasha",
                          "years": 7,
                          "start": "2004-01-07T05:40Z",
                          "end": "2011-01-06T23:40Z",
                          "sub_periods": [
                            {
                              "lord": "Mars",
                              "level": "antardasha",
                              "start": "2004-01-07T05:40Z",
                              "end": "2004-06-04T09:07Z"
                            },
                            {
                              "lord": "Rahu",
                              "level": "antardasha",
                              "start": "2004-06-04T09:07Z",
                              "end": "2005-06-22T21:25Z"
                            },
                            {
                              "lord": "Jupiter",
                              "level": "antardasha",
                              "start": "2005-06-22T21:25Z",
                              "end": "2006-05-29T19:01Z"
                            }
                          ]
                        }
                      ],
                      "current": [
                        {
                          "level": "mahadasha",
                          "lord": "Rahu",
                          "start": "2011-01-06T23:40Z",
                          "end": "2029-01-06T11:40Z"
                        },
                        {
                          "level": "antardasha",
                          "lord": "Moon",
                          "start": "2026-06-20T02:22Z",
                          "end": "2027-12-19T23:22Z"
                        }
                      ]
                    },
                    "doshas": {
                      "manglik": {
                        "present": true,
                        "severity": "mild",
                        "rule": "Mars in house [1, 2, 4, 7, 8, 12] counted by sign from the lagna or the Moon (Venus reported for reference)",
                        "mars_sign": "Aquarius",
                        "from": {
                          "lagna": {
                            "mars_house": 6,
                            "manglik": false
                          },
                          "moon": {
                            "mars_house": 2,
                            "manglik": true
                          },
                          "venus": {
                            "mars_house": 12,
                            "manglik": true
                          }
                        },
                        "counted_from_with_dosha": [
                          "moon",
                          "venus"
                        ],
                        "commonly_cited_cancellations_present": [],
                        "note": "Matching two manglik charts is traditionally held to neutralise the dosha."
                      },
                      "kaal_sarp": {
                        "present": false,
                        "partial": false,
                        "rule": "all seven planets Sun..Saturn lie on one side of the Rahu-Ketu axis",
                        "rahu_house": 5,
                        "planets_rahu_to_ketu": [
                          "Sun",
                          "Mars",
                          "Mercury"
                        ],
                        "planets_ketu_to_rahu": [
                          "Moon",
                          "Saturn"
                        ]
                      },
                      "sade_sati": {
                        "moon_sign": "Capricorn",
                        "rule": "Saturn (sidereal) in the 12th, 1st or 2nd sign from the natal Moon sign; Dhaiya when in the 4th or 8th",
                        "resolution": "1 day",
                        "span": {
                          "from": "1990-05-15",
                          "to": "2090-05-15"
                        },
                        "sade_sati_cycles": [
                          {
                            "start": "1990-05-15",
                            "end": "1995-06-02"
                          },
                          {
                            "start": "1995-08-10",
                            "end": "1996-02-17"
                          },
                          {
                            "start": "2017-01-27",
                            "end": "2017-06-21"
                          }
                        ],
                        "phases": [
                          {
                            "phase": "sade_sati:peak (over the Moon)",
                            "start": "1990-05-15",
                            "start_is_birth": true,
                            "end": "1990-06-21"
                          },
                          {
                            "phase": "sade_sati:rising (12th from Moon)",
                            "start": "1990-06-21",
                            "start_is_birth": false,
                            "end": "1990-12-15"
                          },
                          {
                            "phase": "sade_sati:peak (over the Moon)",
                            "start": "1990-12-15",
                            "start_is_birth": false,
                            "end": "1993-03-06"
                          }
                        ],
                        "on_date": {
                          "date": "2026-10-01",
                          "active": [],
                          "in_sade_sati": false
                        }
                      }
                    },
                    "janma_panchang": {
                      "tithi": {
                        "index": 21,
                        "name": "Shashthi",
                        "paksha": "Krishna (waning)",
                        "number_in_paksha": 6,
                        "fraction_elapsed": 0.111996,
                        "ends_at": "1990-05-16T07:17Z"
                      },
                      "nakshatra": {
                        "name": "Uttara Ashadha",
                        "index": 21,
                        "pada": 2,
                        "lord": "Sun",
                        "deity": "Vishvedevas",
                        "fraction_elapsed": 0.392032,
                        "ends_at": "1990-05-16T00:41Z"
                      },
                      "yoga": {
                        "index": 23,
                        "name": "Shubha",
                        "ends_at": "1990-05-15T16:36Z"
                      },
                      "karana": {
                        "index": 41,
                        "name": "Gara",
                        "ends_at": "1990-05-15T18:48Z"
                      },
                      "moon": {
                        "longitude": 271.893763,
                        "rashi": "Makara",
                        "sign": "Capricorn"
                      },
                      "sun": {
                        "longitude": 30.549815,
                        "rashi": "Vrishabha",
                        "sign": "Taurus"
                      },
                      "moon_phase_angle": 241.343948,
                      "ayanamsa": {
                        "name": "lahiri",
                        "true_deg": 23.725764
                      },
                      "sunrise": "1990-05-15T00:01Z",
                      "sunset": "1990-05-15T13:35Z",
                      "vara": {
                        "name": "Mangalavara (Tuesday)",
                        "lord": "Mars",
                        "rule": "the Vedic day runs from sunrise to sunrise"
                      }
                    }
                  },
                  "meta": {
                    "engine": "astro-agents/1.0.1",
                    "ephemeris": "NASA/JPL DE440 (1800-01-01..2200-01-01)",
                    "astronomy_library": "skyfield/1.55",
                    "frame": "geocentric apparent positions, true ecliptic and equinox of date (IAU 2006/2000A)",
                    "deterministic": true,
                    "llm_used": false,
                    "input_sha256": "16b25afa9026aa6cb1520d068ac2a9d88be916c4fc9a39a69367acf4abcc186d",
                    "result_sha256": "c68a80cbe6c18cc542ad5b329470212285f0fedd9776ea934cc7d188a827e6b8",
                    "reproducibility": "result_sha256 = SHA-256 of the result serialized as JSON with sorted keys, no whitespace, UTF-8, floats rounded to 6 decimals. Same input + same engine version => same hash."
                  },
                  "example_note": "real output of engine 1.0.1; lists shortened to 3 items"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input (never charged)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "field": {
                      "type": "string"
                    },
                    "charged": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Payment required: x402 offer in body / PAYMENT-REQUIRED, MPP offer in WWW-Authenticate",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              },
              "WWW-Authenticate": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.500000"
          },
          "protocols": [
            {
              "x402": {}
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "amount": "500000",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "description": "Complete Vedic report - Kundli + Vimshottari dashas + doshas + janma panchang in one call.",
              "intent": "charge",
              "method": "tempo"
            }
          ]
        },
        "x-mcp-tool": "vedic_report"
      }
    }
  },
  "x-service-info": {
    "categories": [
      "data",
      "ai"
    ],
    "docs": {
      "homepage": "https://astro-agent.dev",
      "apiReference": "https://astro-agent.dev/openapi.json",
      "llms": "https://astro-agent.dev/llms.txt",
      "privacy": "https://astro-agent.dev/privacy",
      "terms": "https://astro-agent.dev/terms",
      "support": "https://astro-agent.dev/support"
    },
    "mcp": "https://astro-agent.dev/mcp",
    "a2a": "https://astro-agent.dev/a2a",
    "catalog": "https://astro-agent.dev/v1/catalog"
  },
  "x-discovery": {
    "ownershipProofs": [
      "0x6d5d44a7db34518bbf90738ec44e5b3d33224f6c36fc9f2171ca681dbd0ca35b36c22541db24e5b66532d3b12dc017b8a610480c75b41322a51fe3e55d0ff06c1b"
    ]
  }
}
