Voda Astro Data API
HTTP 402x402 · USDC on BaseMPP · Stripe / Tempono API keysno signup
Machine-payable astrology and geographic data. Ephemeris-grade full charts, transit and mundane aspect time series, and a global location dataset — priced per request and payable by humans or agents in one round trip. The live 402 challenge is always authoritative.
Try it in 10 seconds
curl -i https://astro.dutchdata.io/api/locations/count
You'll get a 402 Payment Required carrying both an x402 v2 challenge (Payment-Required header + JSON body) and MPP offers (WWW-Authenticate: Payment). Pay it and repeat the call — or let a client do the whole loop:
import { x402Client } from "@x402/core/client";
import { toClientEvmSigner } from "@x402/evm";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
import { createPublicClient, http } from "viem";
import { base } from "viem/chains";
const account = privateKeyToAccount(PRIVATE_KEY);
const signer = toClientEvmSigner(account, createPublicClient({ chain: base, transport: http() }));
const client = new x402Client();
registerExactEvmScheme(client, { signer });
const fetchWithPay = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPay("https://astro.dutchdata.io/api/full_chart/dt/1767225600000");
console.log(await res.json()); // planets, signs, houses, retrogrades
Payment settles as USDC on Base mainnet (eip155:8453) — the payer needs USDC only, no ETH for gas. MPP agents can pay the same routes with Stripe or Tempo credentials.
Endpoints & pricing
| Route | Price | What you get |
|---|---|---|
GET /api/locations/count | $0.01 | Total number of location records available |
GET /api/locations/countries | $0.50 | List all countries with location coverage |
GET /api/locations/countries/{country_code}/regions | $0.50 | List a country's regions/states |
GET /api/locations/{country_code}/{region_code}/search | $0.50 | Fuzzy-search cities within a country region |
GET /api/locations/{country_code}/{region_code}/{city} | $0.50 | Rich location record with coordinates and timezone |
GET /api/full_chart/dt/{unix_ms_utc} | $0.50 | Full astrological chart for a UTC instant (planets, houses, aspects) |
POST /api/mundane_chart | $0.50 | Mundane (transit-to-transit) aspect time series over a date range |
POST /api/transit_chart/inline | $0.50 | Transit aspect time series with birth data supplied inline (no account) |
Built for agents
/openapi.json
OpenAPI 3.1 with schemas, examples, and x-payment-info on every priced route.
/.well-known/mpp.json
MPP service manifest — offers, schemas, and runtime challenge details.
/.well-known/agent-card.json
Agent card advertising HTTP, MPP, and x402 capabilities.
/llms.txt
Concise route list for LLM context windows. Full detail at /llms-full.txt.
Why pay per request?
No accounts to provision, no keys to rotate, no subscriptions to babysit. Each request is independently paid and independently replay-protected: an identical replay of a settled payment returns 402 again without double-charging. Receipts come back in the response headers (Payment-Receipt / Payment-Response).