Directory / api.geoprimitives.dev
Give it a latitude and longitude and it answers with the ground elevation there in metres above NAVD88, read from the USGS 3D Elevation Program seamless DEM. Parameters go in the query string: this is a GET, there is no body. COVERAGE, stated up front because it is the first thing to check: the state of Alaska, whole, and nothing else yet. The coverage gate reads the coordinate, so it runs in the handler and after payment, not in front of the 402: a coordinate outside Alaska is quoted like any other and then refused with outside_coverage. A refusal does not settle, so nothing is charged, but it costs a signature and a second round trip to find out. Check the coverage against this description or the free catalog first. The conterminous United States and Hawaii are the next extension and arrive through the same pipeline with no change to this interface; every response repeats the coverage under `coverage` so an agent never infers it from an error. Canada is not served even where USGS publishes pixels over it: those come from Natural Resources Canada under a licence with an attribution clause, and this catalog carries public-domain data only, so they were not stored. SOURCE AND VINTAG
# 1. Ask the endpoint what it costs (no payment, no wallet needed): curl -i -X GET 'https://api.geoprimitives.dev/v1/elevation' # -> HTTP/1.1 402 Payment Required # the response carries the price, asset and pay-to address. # 2. Pay and retry with any x402 client: npx x402-fetch 'https://api.geoprimitives.dev/v1/elevation'
Endpoint: https://api.geoprimitives.dev/v1/elevation. Operated by api.geoprimitives.dev, not by Animica. Price and availability were correct at the last probe on 2026-09-02 and are set by the operator, who may change them.
Validate GeoJSON against RFC 7946 and get back a structured list of problems, not a bare boolean. Checks structure, coordinate range, ring closure, ring winding…
Give it a latitude and longitude and it answers with what the nautical chart says about the water there: the depth range of the charted depth area containing th…
Give it a latitude, a longitude and a radius in metres and it answers with every charted underwater rock, obstruction and wreck inside that circle, nearest firs…
Give it a longitude and latitude and it answers with the IANA timezone identifier (America/New_York), the UTC offset in force there right now, whether daylight …
Give it a longitude and latitude inside the United States and it answers with the Census FIPS codes for that point: the 2-digit state code, the 5-digit county G…