78trust / 100

Data Reverse Geocode

by API Acre in Weather & location

x402 APIPassing, checked 36 min ago

Resolve one latitude/longitude pair into bounded, great-circle-distance-ranked nearby GeoNames populated places with country, first-level region, population, timezone, feature code, and source freshness without a request-time network call.

POST https://apiacre.com/v1/data/reverse-geocode

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
181 ms typical, 358 ms slowest 5%
Last check
36 min ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://apiacre.com/v1/data/reverse-geocode" \
  -H "content-type: application/json" \
  -d '{"latitude":51.5074,"limit":3,"longitude":-0.1278,"radius_km":10}'
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%2Fapiacre.com%2Fv1%2Fdata%2Freverse-geocode
const res = await pay("https://apiacre.com/v1/data/reverse-geocode", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"latitude":51.5074,"limit":3,"longitude":-0.1278,"radius_km":10}),
});
console.log(await res.json());

Example input

{
  "latitude": 51.5074,
  "limit": 3,
  "longitude": -0.1278,
  "radius_km": 10
}

Example output

{
  "data": {
    "candidateCount": 99,
    "limitations": [
      "Coverage follows the GeoNames cities500 extract: populated places above 500 r...",
      "This endpoint returns nearby populated places, not street addresses, parcels,...",
      "The nearest populated place is not proof of the queried coordinate's postal a...",
      "Distances are rounded great-circle distances between coordinates and place ce...",
      "The search radius is capped at 500 km and results use the bundled 2026-08-18 ..."
    ],
    "matched": true,
    "query": {
      "latitude": 51.5074,
      "limit": 3,
      "longitude": -0.1278,
      "radiusKm": 10
    },
    "results": [
      {
        "admin1": {
          "code": "ENG",
          "name": "England"
        },
        "country": {
          "code": "GB",
          "continentCode": "EU",
          "iso3": "GBR",
          "name": "United Kingdom"
        },
        "geonameId": 2643743,
        "name": "London",
        "rank": 1
      }
    ],
    "resultsTruncated": true,
    "source": {
      "aliasRecords": 766415,
      "dataset": "GeoNames cities500",
      "placeRecords": 235408,
      "provider": "GeoNames",
      "snapshotBuiltOn": "2026-08-18"
    },
    "version": "apiacre-reverse-geocode/1"
  },
  "meta": {
    "cached": false,
    "duration_ms": 42,
    "next_actions": [
      {
        "method": "POST",
        "path": "/v1/data/us-weather-forecast",
        "reason": "Use the queried coordinates for a separately authorized current global forecast.",
        "service": "data.us-weather-forecast",
        "title": "Global weather forecast"
      }
    ],
    "sources": [],
    "warnings": []
  },
  "request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
  "service": "data.reverse-geocode",
  "version": "1"
}

Security scan

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

Recent checks

WhenResultHTTPTimePrice
36 min agoPassed402213 ms$0.002
4 h agoPassed40295 ms$0.002
8 h agoPassed40270 ms$0.002
11 h agoPassed402138 ms$0.002
15 h agoPassed402711 ms$0.002
18 h agoPassed402290 ms$0.002
23 h agoPassed402181 ms$0.002
26 h agoPassed402174 ms$0.002
29 h agoPassed402204 ms$0.002
34 h agoPassed40273 ms$0.002
37 h agoPassed402358 ms$0.002
42 h agoPassed402338 ms$0.002