Animica x402 Directory

Directory / api.geoprimitives.dev

api.geoprimitives.dev/v1/geojson/validate

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 order, consecutive duplicate vertices, self-intersections, and hole nesting. Every issue carries the feature, geometry, ring and position index it sits on, so a 500-feature collection is actionable rather than merely condemned. Reach for it before paying for an operation on data you did not author, and to find out why /v1/geometry, /v1/h3/polyfill or /v1/pip refused a document: those endpoints reject unclosed rings and out-of-range coordinates rather than guessing. Errors make a document invalid; warnings -- duplicate vertices, the crs member RFC 7946 removed -- do not, and are reported separately. One price per call whatever the document: a single Point costs exactly what a 1 MiB FeatureCollection costs, so send the whole collection rather than a document at a time. That is measured rather than assumed -- a Point is about 0.0015 ms of compute on this runtime and a 1 MiB collection about 10 ms, a spread far below what it costs to settle one payment -- which is why there is no size tier here to choose between and no bulk sib

Call it

# 1. Ask the endpoint what it costs (no payment, no wallet needed):
curl -i -X POST 'https://api.geoprimitives.dev/v1/geojson/validate'

# -> 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 -X POST 'https://api.geoprimitives.dev/v1/geojson/validate'

Endpoint: https://api.geoprimitives.dev/v1/geojson/validate. 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.

Other endpoints on api.geoprimitives.dev

api.geoprimitives.dev/v1/elevation

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. Pa…

GET · $0.005

api.geoprimitives.dev/v1/marine/depth

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…

GET · $0.005

api.geoprimitives.dev/v1/marine/hazards

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…

GET · $0.005

api.geoprimitives.dev/v1/timezone

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 …

GET · $0.005

api.geoprimitives.dev/v1/us/geographies

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…

GET · $0.01

All 6 endpoints on api.geoprimitives.dev →