78trust / 100
Geo Distance
by Duo Data Utilities in Company & people data
x402 APIPassing, checked 3 h ago
Distance and direction between WGS-84 coordinates: geodesic distance by Vincenty with a haversine fallback, initial and final bearing, the midpoint, and the destination point reached from a start point on a given bearing and distance. Also computes the cumulative length of a supplied coordinate path. Results in metres, kilometres, nautical miles and miles.
GET https://api.duoleads.com/v1/geo/distance
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 127 ms typical, 566 ms slowest 5%
- Last check
- 3 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X GET "https://api.duoleads.com/v1/geo/distance?lat1=52.3728&lat2=40.7128&lon1=4.8936&lon2=-74.0060"import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.duoleads.com%2Fv1%2Fgeo%2Fdistance
const res = await pay("https://api.duoleads.com/v1/geo/distance?lat1=52.3728&lat2=40.7128&lon1=4.8936&lon2=-74.0060");
console.log(await res.json());Example input
{
"lat1": "52.3728",
"lat2": "40.7128",
"lon1": "4.8936",
"lon2": "-74.0060"
}Example output
{
"data": {
"bearing_final": 228.8713,
"bearing_initial": 290.8461,
"converged": true,
"distance": {
"km": 5878.232354,
"m": 5878232.354,
"mi": 3652.564246,
"nmi": 3173.991552
},
"method": "vincenty",
"midpoint": {
"lat": 53.7242681,
"lon": -39.60892324
}
},
"meta": {
"computed_at": "2026-09-28T12:00:00.000Z",
"deterministic": true,
"disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
"price_usd": "0.05",
"request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D"
},
"ok": true,
"route": "/v1/geo/distance",
"version": "1.0.0"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 3 h ago | Passed | 402 | 153 ms | $0.05 |
| 6 h ago | Passed | 402 | 44 ms | $0.05 |
| 10 h ago | Passed | 402 | 463 ms | $0.05 |
| 13 h ago | Passed | 402 | 127 ms | $0.05 |
| 17 h ago | Passed | 402 | 426 ms | $0.05 |
| 21 h ago | Passed | 402 | 138 ms | $0.05 |
| 24 h ago | Passed | 402 | 49 ms | $0.05 |
| 27 h ago | Passed | 402 | 723 ms | $0.05 |
| 32 h ago | Passed | 402 | 48 ms | $0.05 |
| 35 h ago | Passed | 402 | 45 ms | $0.05 |
| 39 h ago | Passed | 402 | 116 ms | $0.05 |
| 43 h ago | Passed | 402 | 49 ms | $0.05 |
| 45 h ago | Passed | 402 | 498 ms | $0.05 |
| 2 days ago | Passed | 402 | 566 ms | $0.05 |