78trust / 100

Data Place Geocode

by API Acre in Weather & location

x402 APIPassing, checked 53 min ago

Resolve one global city or locality name into bounded, population-ranked GeoNames coordinates, country and first-level-region identity, population, timezone, feature code, and source freshness without a request-time network call.

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

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
184 ms typical, 345 ms slowest 5%
Last check
53 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/place-geocode" \
  -H "content-type: application/json" \
  -d '{"limit":5,"place":"London, GB"}'
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%2Fplace-geocode
const res = await pay("https://apiacre.com/v1/data/place-geocode", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"limit":5,"place":"London, GB"}),
});
console.log(await res.json());

Example input

{
  "limit": 5,
  "place": "London, GB"
}

Example output

{
  "data": {
    "ambiguous": true,
    "candidateCount": 2,
    "candidateCountCapped": false,
    "limitations": [
      "Coverage follows the GeoNames cities500 extract: populated places above 500 r...",
      "Matching is exact after Unicode-to-ASCII normalization; this endpoint does no...",
      "Unqualified names can be ambiguous. Review country, first-level region, GeoNa...",
      "Population-based ranking is a selection aid, not proof that the first candida...",
      "Results use the bundled 2026-08-18 snapshot and can differ from newer GeoName..."
    ],
    "query": {
      "limit": 5,
      "normalized": "london, gb",
      "place": "London, GB"
    },
    "results": [
      {
        "country": {
          "code": "GB",
          "continentCode": "EU",
          "iso3": "GBR",
          "name": "United Kingdom"
        },
        "geonameId": 2643743,
        "matchedNameType": "primary",
        "name": "London",
        "rank": 1
      }
    ],
    "resultsTruncated": false,
    "source": {
      "aliasRecords": 766415,
      "dataset": "GeoNames cities500",
      "placeRecords": 235408,
      "provider": "GeoNames",
      "snapshotBuiltOn": "2026-08-18"
    },
    "version": "apiacre-place-geocode/1"
  },
  "meta": {
    "cached": false,
    "duration_ms": 42,
    "next_actions": [
      {
        "method": "POST",
        "path": "/v1/data/us-weather-forecast",
        "reason": "Use one selected place candidate's coordinates for a separately authorized cu...",
        "service": "data.us-weather-forecast",
        "title": "Global weather forecast"
      }
    ],
    "sources": [],
    "warnings": []
  },
  "request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
  "service": "data.place-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
53 min agoPassed402184 ms$0.002
5 h agoPassed40280 ms$0.002
8 h agoPassed40268 ms$0.002
12 h agoPassed402196 ms$0.002
15 h agoPassed402249 ms$0.002
19 h agoPassed402345 ms$0.002
23 h agoPassed402178 ms$0.002
26 h agoPassed4024.6 s$0.002
30 h agoPassed40268 ms$0.002
34 h agoPassed402275 ms$0.002
37 h agoPassed40269 ms$0.002
42 h agoPassed402305 ms$0.002