75trust / 100

Calculations Chart

by Maha Celestial Calculations in Weather & location

x402 APIPassing, checked 4 h ago

Build a reproducible chart view: Tropical and Lahiri Sidereal positions, Sidereal whole-sign houses, mean nodes, geometric aspects and panchanga for one UTC chart. Includes limitations and a deterministic receipt. Public or synthetic inputs only. No interpretation, forecast or predictive certification; bodies are not stored.

POST https://www.mahastrategies.com/api/v1/calculations/chart

Last 30 days

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed

Uptime
100%
Response time
460 ms typical, 661 ms slowest 5%
Last check
4 h ago
Next check
any minute now

How to call it

POST https://www.mahastrategies.com/api/v1/calculations/chart

Each call costs $0.06 in USDC on Base, paid with the request over x402.

Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.

Example request

From the listing.

POST https://www.mahastrategies.com/api/v1/calculations/chart
content-type: application/json

{
  "dataClass": "synthetic",
  "instantUtc": "2000-01-01T12:00:00.000Z",
  "latitudeDegrees": 0,
  "longitudeDegrees": 0
}

Parameters

ParameterTypeRequiredDescription
dataClassstringYes One of: public, synthetic.
instantUtcstringYes
latitudeDegreesnumberYes
longitudeDegreesnumberYes

Example response

The provider's example. We can't check it without paying.

Example response, 208 lines
{
  "boundaries": [
    "Calculation and convention evidence only; no forecasting narrati…"
  ],
  "conventions": {
    "ayanamsa": "maha-lahiri-j2000-iau2006/1",
    "birthBalance": "actual-nakshatra-stay-time",
    "chartVersion": "natal-chart/0.3",
    "elevationMeters": 0,
    "ephemeris": "astronomy-engine-2.1.19",
    "frames": [
      "tropical",
      "lahiri-sidereal"
    ],
    "houses": "sidereal-whole-sign",
    "inputTime": "UTC; caller resolves local time and DST",
    "nodes": "mean",
    "origin": "geocentric",
    "panchangaVersion": "panchanga/0.1",
    "timingVersion": "natal-timing/0.1",
    "yearLengthDays": 365.2425
  },
  "inputDigest": "sha256:59fa3ef59fc2ca178cfe28137263a1b63cc23ebfdf0ef4a09d9f0c2b9…",
  "offerId": "celestial-chart-evidence",
  "receiptDigest": "sha256:2ce07694b98603e43f543a94edad35e11ddcdb89f400b877bd41af72b…",
  "result": {
    "chart": {
      "ascendant": {
        "dailyMotionDegrees": null,
        "method": "Eastern ecliptic–horizon intersection; local apparent sidereal t…",
        "motion": "not-applicable",
        "nakshatra": {
          "fraction": 0.0640776036155124,
          "index": 27,
          "name": "Revatī",
          "pada": 1
        },
        "name": "Ascendant",
        "sidereal": {
          "degreeInSign": 17.521034714873508,
          "longitude": 347.5210347148735,
          "sign": "Pisces"
        },
        "tropical": {
          "degreeInSign": 11.374004714873536,
          "longitude": 11.374004714873536,
          "sign": "Aries"
        },
        "wholeSignHouse": 1
      },
      "aspects": [
        {
          "exactAngle": 180,
          "first": "Rahu",
          "maximumOrbDegrees": 8,
          "name": "opposition",
          "orbDegrees": 0,
          "second": "Ketu",
          "separationDegrees": 180
        }
      ],
      "ayanamsa": {
        "degrees": 23.85297,
        "name": "lahiri"
      },
      "houseSystem": "whole-sign",
      "houses": [
        {
          "number": 1,
          "occupants": [],
          "ruler": "Jupiter",
          "rulerHouse": 2,
          "rulerSign": "Aries",
          "sign": "Pisces"
        }
      ],
      "instantUtc": "2000-01-01T12:00:00.000Z",
      "methodology": [
        "Tropical positions use the true equinox of date; Lahiri sidereal…"
      ],
      "modernPoints": [
        {
          "dailyMotionDegrees": 0.05056855488919609,
          "method": "Apparent geocentric ecliptic longitude of date from astronomy-en…",
          "motion": "direct",
          "nakshatra": {
            "fraction": 0.8214850970370513,
            "index": 22,
            "name": "Śravaṇa",
            "pada": 4
          },
          "name": "Uranus",
          "sidereal": {
            "degreeInSign": 20.953134627160694,
            "longitude": 290.9531346271607,
            "sign": "Capricorn"
          },
          "tropical": {
            "degreeInSign": 14.806104627160721,
            "longitude": 314.8061046271607,
            "sign": "Aquarius"
          },
          "wholeSignHouse": 11
        }
      ],
      "nodalAxis": {
        "ketu": {
          "house": 11,
          "sign": "Capricorn"
        },
        "method": "Ketu is defined as the point exactly opposite the mean ascending…",
        "rahu": {
          "house": 5,
          "sign": "Cancer"
        },
        "separationDegrees": 180
      },
      "nodeModel": "mean-lunar-node",
      "placements": [
        {
          "dailyMotionDegrees": 1.0194843834156018,
          "method": "Apparent geocentric ecliptic longitude of date from astronomy-en…",
          "motion": "direct",
          "nakshatra": {
            "fraction": 0.23867526206570489,
            "index": 20,
            "name": "Pūrva Āṣāḍhā",
            "pada": 1
          },
          "name": "Sun",
          "sidereal": {
            "degreeInSign": 16.515670160876084,
            "longitude": 256.5156701608761,
            "sign": "Sagittarius"
          },
          "tropical": {
            "degreeInSign": 10.368640160876112,
            "longitude": 280.3686401608761,
            "sign": "Capricorn"
          },
          "wholeSignHouse": 10
        }
      ],
      "version": "natal-chart/0.3"
    },
    "panchanga": {
      "ayanamsa": {
        "accuracyNote": "Lahiri (Chitrapakṣa), anchored at J2000.0 and advanced by IAU 20…",
        "degrees": 23.85297,
        "name": "lahiri"
      },
      "day": {
        "sunrise": "2000-01-01T05:59:32.111Z",
        "sunset": "2000-01-01T18:07:02.090Z"
      },
      "elongation": 302.955250966598,
      "instant": "2000-01-01T12:00:00.000Z",
      "karana": {
        "fraction": 0.49254182776633115,
        "index": 51,
        "name": "Bava",
        "nearBoundary": false
      },
      "moonLongitudeSidereal": 199.47092112747407,
      "moonLongitudeTropical": 223.3238911274741,
      "nakshatra": {
        "fraction": 0.9603190845605543,
        "index": 15,
        "name": "Svātī",
        "nearBoundary": false
      },
      "observer": {
        "elevationMeters": 0,
        "latitudeDegrees": 0,
        "longitudeDegrees": 0
      },
      "rahuKala": {
        "end": "2000-01-01T10:32:20.881Z",
        "segment": 3,
        "start": "2000-01-01T09:01:24.624Z"
      },
      "sunLongitudeSidereal": 256.5156701608761,
      "sunLongitudeTropical": 280.3686401608761,
      "tithi": {
        "absoluteIndex": 26,
        "fraction": 0.24627091388316558,
        "index": 11,
        "name": "Ekādaśī",
        "nearBoundary": false,
        "paksha": "kṛṣṇa"
      },
      "uncertainLimbs": [],
      "vara": {
        "index": 7,
        "name": "Śanivāra",
        "note": "The vāra is taken from the sunrise that opens the current civil …"
      },
      "version": "panchanga/0.1",
      "yoga": {
        "fraction": 0.19899434662626092,
        "index": 8,
        "name": "Dhṛti",
        "nearBoundary": false
      }
    }
  },
  "version": "maha-celestial-calculations/0.1"
}

Call it from code

The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.06.

curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i -X POST 'https://www.mahastrategies.com/api/v1/calculations/chart' \
  -H 'content-type: application/json' \
  --data-raw '{"dataClass":"synthetic","instantUtc":"2000-01-01T12:00:00.000Z","latitudeDegrees":0,"longitudeDegrees":0}'

# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - -X POST 'https://www.mahastrategies.com/api/v1/calculations/chart' \
  -H 'content-type: application/json' \
  --data-raw '{"dataClass":"synthetic","instantUtc":"2000-01-01T12:00:00.000Z","latitudeDegrees":0,"longitudeDegrees":0}' \
  | grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decode
JavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// Pays at most $0.06 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.06" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.06 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fwww.mahastrategies.com%2Fapi%2Fv1%2Fcalculations%2Fchart&method=POST
const res = await pay("https://www.mahastrategies.com/api/v1/calculations/chart", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    "dataClass": "synthetic",
    "instantUtc": "2000-01-01T12:00:00.000Z",
    "latitudeDegrees": 0,
    "longitudeDegrees": 0
  }),
});
console.log(res.status, await res.text());
Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

# Pays at most $0.06 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.06"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as session:
    res = session.post(
        "https://www.mahastrategies.com/api/v1/calculations/chart",
        json={
            "dataClass": "synthetic",
            "instantUtc": "2000-01-01T12:00:00.000Z",
            "latitudeDegrees": 0,
            "longitudeDegrees": 0,
        },
    )
    print(res.status_code, res.text)

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
4 h agoPassed402641 ms$0.06
8 h agoPassed402274 ms$0.06
12 h agoPassed402590 ms$0.06
16 h agoPassed402483 ms$0.06
20 h agoPassed402259 ms$0.06
24 h agoPassed402476 ms$0.06
28 h agoPassed402454 ms$0.06
31 h agoPassed402281 ms$0.06
35 h agoPassed402585 ms$0.06
39 h agoPassed402794 ms$0.06
42 h agoPassed402291 ms$0.06
46 h agoPassed402290 ms$0.06
2 days agoPassed402372 ms$0.06
2 days agoPassed402596 ms$0.06
2 days agoPassed402631 ms$0.06