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

WhenResultHTTPTimePrice
3 h agoPassed402153 ms$0.05
6 h agoPassed40244 ms$0.05
10 h agoPassed402463 ms$0.05
13 h agoPassed402127 ms$0.05
17 h agoPassed402426 ms$0.05
21 h agoPassed402138 ms$0.05
24 h agoPassed40249 ms$0.05
27 h agoPassed402723 ms$0.05
32 h agoPassed40248 ms$0.05
35 h agoPassed40245 ms$0.05
39 h agoPassed402116 ms$0.05
43 h agoPassed40249 ms$0.05
45 h agoPassed402498 ms$0.05
2 days agoPassed402566 ms$0.05