Geo distance (haversine)
POST /api/geo-distanceGreat-circle distance between two latitude/longitude points using the haversine formula. Returns kilometers and miles. Deterministic.
Input
| Field | Type | Description |
|---|---|---|
from * | object | { lat, lng } in decimal degrees |
to * | object | { lat, lng } in decimal degrees |
Example output
{
"km": 3935.75,
"miles": 2445.56
}
Try it - see the 402 challenge (free)
curl -i -X POST https://agent402.tools/api/geo-distance \
-H "Content-Type: application/json" \
-d '{"from":{"lat":40.7128,"lng":-74.006},"to":{"lat":34.0522,"lng":-118.2437}}'
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/geo-distance", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"from": {
"lat": 40.7128,
"lng": -74.006
},
"to": {
"lat": 34.0522,
"lng": -118.2437
}
}),
});
No wallet? Pay with compute
This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits - a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=geo-distance")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/geo-distance", { method: "POST", headers: { "X-Pow-Solution": c.token + ":" + n, "Content-Type": "application/json" }, body: JSON.stringify({"from":{"lat":40.7128,"lng":-74.006},"to":{"lat":34.0522,"lng":-118.2437}}) });
Part of these workflows
This tool is one step in a curated multi-tool workflow - agents can fetch the whole sequence as an MCP prompt or call https://agent402.tools/api/skill-packs/{slug}/prompt.
- Multi-stop trip planner - Plan a multi-stop journey deterministically: geocode each stop, sum the pairwise haversine distances, estimate arrival times by adding driving hours per leg, count business days from today to each arrival, and pull the weather forecast at every US stop. Six tools - three pure-CPU (math + time), three egress (geocoding + weather) - covering the deterministic skeleton of every road-trip / sales-tour / delivery-route planning problem.
Related tools
Calculator
POST /api/calcSafely evaluate an arithmetic expression (+ - * / % ^ and parentheses). No code execution - a real parser, not eval.
Statistics
POST /api/statsDescriptive statistics for an array of numbers: count, sum, mean, median, mode, min, max, range, variance, stddev, and p…
Unit convert
POST /api/unit-convertConvert a value between units of length, mass, temperature, volume, area, speed, time, data, pressure, energy, power, an…