{"apiVersion":"1.0.0","schemaVersion":1,"generatedAt":"2026-08-25T07:46:36.735Z","resource":{"id":"d607d301dd38858ee6730d57","key":"POST https://api.geoprimitives.dev/v1/h3/polyfill","method":"POST","resourceUrl":"https://api.geoprimitives.dev/v1/h3/polyfill","alternateResourceUrls":["https://api.geoprimitives.dev/v1/h3/polyfill"],"canonicalUrl":"https://api.geoprimitives.dev/v1/h3/polyfill","origin":"https://api.geoprimitives.dev","hostname":"api.geoprimitives.dev","groupId":"api-geoprimitives-dev-a3da827b","providerName":"geoprimitives","title":"geoprimitives: POST /v1/h3/polyfill","description":"Polyfill: turn a polygon into the set of H3 cells that cover it, so a spatial question becomes a set-membership question you can answer with a join. Send \"geojson\" as a Polygon, a MultiPolygon, or a Feature or FeatureCollection wrapping them, in EPSG:4326, plus exactly one of \"resolution\" or \"resolutions\". Choose the containment rule with \"containment\": \"center\" returns cells whose centre is inside the polygon, which is H3's default and under-covers at the edges; \"overlapping\" returns every cell the polygon touches, so the set fully covers it; \"full\" returns only cells entirely inside. Holes are respected, a MultiPolygon is treated as one polygon with its parts unioned and deduplicated, and feature ids are echoed so rows join back to your records. This route covers polygons and nothing els","tags":["grid","h3","hexagon","polyfill","polygon"],"type":"http","x402Version":2,"routeTemplate":null,"input":{"type":"http","method":"POST","bodyType":"json","bodyFieldNames":["geojson","resolution"],"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:26:05.235Z"},"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:26:05.344Z","recordKey":"POST https://api.geoprimitives.dev/v1/h3/polyfill"}],"verification":{"level":"origin-reachable","checkedAt":"2026-08-25T05:20:56.673Z","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/h3/polyfill","redirectCount":0,"checkedAt":"2026-08-25T05:20:56.673Z","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}}}