{"apiVersion":"1.0.0","schemaVersion":1,"generatedAt":"2026-08-25T07:46:36.735Z","resource":{"id":"256dcfe4d24dd74d4b1bfe0a","key":"POST https://api.geoprimitives.dev/v1/geojson/repair","method":"POST","resourceUrl":"https://api.geoprimitives.dev/v1/geojson/repair","alternateResourceUrls":["https://api.geoprimitives.dev/v1/geojson/repair"],"canonicalUrl":"https://api.geoprimitives.dev/v1/geojson/repair","origin":"https://api.geoprimitives.dev","hostname":"api.geoprimitives.dev","groupId":"api-geoprimitives-dev-a3da827b","providerName":"geoprimitives","title":"geoprimitives: POST /v1/geojson/repair","description":"Repair GeoJSON and get the fixed document back with a log of every alteration: rings rewound to RFC 7946 winding order, consecutive duplicate vertices dropped, unclosed rings closed, and polygon nesting fixed (mis-ordered exterior rings, holes that fall outside their exterior, MultiPolygon members that are really holes). Reach for it when POST /v1/geojson/validate reported errors, or when /v1/geometry, /v1/h3/polyfill or /v1/pip refused your document -- unclosed rings are the usual reason, and this is the cheapest way to clear them. Conservative by design: it only rewrites the classes above, and anything else it found is returned in unrepaired rather than guessed at, so it will not invent geometry or move a coordinate. Idempotent -- a conformant document comes back untouched with changed:f","tags":["geojson","repair","rfc7946"],"type":"http","x402Version":2,"routeTemplate":null,"input":{"type":"http","method":"POST","bodyType":"json","bodyFieldNames":["coordinates","type"],"pathParamNames":[],"queryParamNames":[]},"iconUrl":null,"payment":{"networks":["eip155:8453"],"schemes":["exact"],"assets":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"],"options":[{"network":"eip155:8453","scheme":"exact","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amountAtomic":"10000","payTo":"0x76A51b5Dd3729950B3b60c17f19252d221968FCe","maxTimeoutSeconds":300,"tokenName":"USD Coin","tokenVersion":"2"}],"acceptedPaymentCount":1,"priceUsd":null},"quality":{"l30DaysTotalCalls":1,"l30DaysUniquePayers":1,"lastCalledAt":"2026-08-21T17:25:51.887Z"},"registry":null,"sources":[{"id":"cdp-bazaar","sourceUrl":"https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources","observedAt":"2026-08-25T05:19:49.445Z","lastUpdated":"2026-08-21T17:25:52.02Z","recordKey":"POST https://api.geoprimitives.dev/v1/geojson/repair"}],"verification":{"level":"origin-reachable","checkedAt":"2026-08-25T05:20:56.668Z","structural":{"ok":true,"normalized":true,"publicHttpUrl":true},"sourceConfirmed":true,"crossSource":false,"registryPaymentValid":null,"originCheck":{"scope":"origin","reachable":true,"statusCode":200,"method":"HEAD","checkedAt":"2026-08-25T05:20:21.676Z","latencyMs":727,"error":null},"quoteCheck":{"scope":"exact-route","outcome":"not-safely-testable","attempted":false,"requestedMethod":null,"statusCode":null,"finalUrl":"https://api.geoprimitives.dev/v1/geojson/repair","redirectCount":0,"checkedAt":"2026-08-25T05:20:56.668Z","latencyMs":null,"reason":"potentially-mutating-method:POST","requirementCount":0},"quote":null,"paidCall":{"verified":false,"checkedAt":null,"network":null,"receiptReference":null,"outputReviewed":false}},"curation":{"status":"discovered","basis":"discovery-only","matchScope":null,"listingSlug":null,"providerListingSlug":null,"listingName":null,"kind":null,"categories":[],"editorialDescription":null,"docsUrl":null,"sourceUrl":null}}}