Endpoint · extractionPOSTapi.geoprimitives.dev /v1/geojson/validate
Validate GeoJSON against RFC 7946 and get back a structured list of problems, not a bare boolean.
Read more
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 sibling to look for. Nothing is modified here: POST /v1/geojson/repair is the endpoint that rewrites. Limits: 1 MiB request body, and a self-intersection budget of 2000000 segment-pair comparisons per request, enough for any ring under about 1400 vertices. Rings past the budget are listed in checksSkipped with the reason, never silently passed as clean.Overview
Grade?
UNRATED
0 of 30 paid calls toward a letter
Price
$0.005 per call
Paid calls
none yet
delivery unknown until someone pays
More info
Seller?
URL
https://api.geoprimitives.dev/v1/geojson/validate
Seen
first 35 days ago · last 14 days ago
54 free handshakes
Payment
Pays through
x402
Offered on?
Base USDC
Listed on?
Base
Score, from free handshakes onlyweights 2026.09.6
UN
RATED
RATED
0.728 liveness verified, no letter
To a letter · 30 paid calls
0 of 30
Held down by latency p95 · gap to 1.000 is 0.272: 0.072 uncertain ? + 0.200 short ? · 0.072 to B
| Component | Weight | Measured | Lower bound ? | Adds | Short ? | Uncertain ? | |
|---|---|---|---|---|---|---|---|
| latency p95costs the most it answered as fast as its class |
0.20 | 0.00 | 0.000 | 0.000 | −0.200 | 0 | |
| liveness it answered at all |
0.60 | 1.00 | 0.879 | 0.528 | 0 | −0.072 | |
| price stability the price stayed where it was listed |
0.20 | 1.00 | 1.000 | 0.200 | 0 | 0 | |
| Composite | 1.00 | 0.728 | gap to 1.000 = 0.272 · 0.200 short · 0.072 uncertain | 0.728 | −0.200 | −0.072 |
Not measured: correctness · nobody paid; honesty · nobody paid; schema conformance · no answer had a published shape to check
The multiplication, written out
0.200 × 0.000 latency p95
+ 0.600 × 0.879 liveness
+ 0.200 × 1.000 price stability
= 0.728 → UNRATED: 51 of 30 paid calls weights 2026.09.6 · 51 samples · seed cap_01M1A59RXH56C07G15VJYFTQ8B|2026-08-27T02:54:20.335Z|2026.09.6
Verify it yourself
npx teppi-check https://api.geoprimitives.dev/v1/geojson/validatecurl -s https://api.teppi.xyz/v1/trust/cap_01M1A59RXH56C07G15VJYFTQ8B