{"api":"v1","generated_at":"2026-09-15T23:43:16.223Z","licence":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","attribution":"TOLL, with a link to the page cited"},"page":"https://tollindex.com/e/api-geoprimitives-dev-v1-geometry-centroid-d4ab7c","pinned_page":"https://tollindex.com/e/api-geoprimitives-dev-v1-geometry-centroid-d4ab7c/at/2026-09-15T21-20Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-09-15T21:20:12.737Z","snapshot_stamp":"2026-09-15T21-20Z","endpoint":{"slug":"api-geoprimitives-dev-v1-geometry-centroid-d4ab7c","canonical_url":"https://api.geoprimitives.dev/v1/geometry/centroid","resource":"https://api.geoprimitives.dev/v1/geometry/centroid","http_method":"POST","type":"http","x402_version":2,"registries":["cdp"],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Find the area centroid of a polygon: a representative point for labelling, joining, or reverse geocoding a shape you only have a boundary for. It is the centre of mass of the area with holes subtracted, not the average of the vertices, so densely sampled edges do not drag it. Know what a centroid is not: on a concave or ring-shaped polygon the centre of mass can fall outside the polygon itself, and this endpoint returns it anyway rather than nudging the point inside. Test it with POST /v1/pip if you need a point that is guaranteed to be inside. Not turf's centroid, which is the arithmetic mean of the vertices and drifts towards whichever part of the boundary happens to be densely sampled. The moment integral is evaluated in a Lambert cylindrical equal-area projection of the WGS 84 authalic sphere, so the cos(latitude) area weighting is right at high latitude, then inverted back to longitude and latitude. Non-areal input, and polygons that enclose zero area, fall back to the vertex mean and say so in the method field. Input is EPSG:4326 only. Limits: 100000 positions across the whole document, 1 MiB request body.","service_name":"geoprimitives","declared_category":null,"declared_tags":["geometry","polygon","centroid","measurement","wgs84"],"route_template":null,"registry_updated":"2026-08-21T17:25:58.148Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"geometry centroid","category":"search","first_observed_by_toll":"2026-09-10T19:08:24.178Z","last_observed_by_toll":"2026-09-15T21:20:12.737Z","observation_began":"2026-09-10"},"presence":{"listed_now":true,"first_absent_at":null,"delisting_confirmed_at":null,"events":[{"registry":"cdp","at":"2026-09-10T19:08:24.178Z","event":"listed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.01 USDC","amount_units":0.01,"decimals_known":true,"pay_to":"0x76A51b5Dd3729950B3b60c17f19252d221968FCe","scheme":"exact"}],"counters":{"observed_at":"2026-09-15T21:20:12.737Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-08-21T17:25:57.994Z"},"validation":{"latest":{"observed_at":"2026-09-15T06:39:26.147Z","state":"pass","failed_checks":[],"endpoint_http_status":402,"run_id":"daily-2026-09-15"},"uptime":[{"days":7,"observed":5,"passed":5,"ratio":1},{"days":30,"observed":5,"passed":5,"ratio":1},{"days":90,"observed":5,"passed":5,"ratio":1}],"history_90d":[{"observed_at":"2026-09-15T06:39:26.147Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-15","state_changed":false},{"observed_at":"2026-09-14T06:08:04.931Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-14","state_changed":false},{"observed_at":"2026-09-13T05:59:36.385Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-13","state_changed":false},{"observed_at":"2026-09-12T08:16:51.162Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-12","state_changed":false},{"observed_at":"2026-09-11T12:59:08.312Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-11","state_changed":true}]},"seller":{"wallet":"0x76A51b5Dd3729950B3b60c17f19252d221968FCe","page":"https://tollindex.com/seller/0x76A51b5Dd3729950B3b60c17f19252d221968FCe","endpoints":21,"hosts":1},"reports":0,"registry_record":{"cdp":[{"tags":["geometry","polygon","centroid","measurement","wgs84"],"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"},"payTo":"0x76A51b5Dd3729950B3b60c17f19252d221968FCe","amount":"10000","scheme":"exact","network":"eip155:8453","maxTimeoutSeconds":300}],"quality":{"lastCalledAt":"2026-08-21T17:25:57.994Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://api.geoprimitives.dev/v1/geometry/centroid","extensions":{"bazaar":{"info":{"input":{"body":{"geojson":{"type":"Polygon","coordinates":[[[-150,61],[-149.9,61],[-149.9,61.05],[-150,61.05],[-150,61]]]}},"type":"http","method":"POST","bodyType":"json"},"output":{"type":"json","example":{"op":"centroid","notes":[],"method":"area_centroid","geojson":{"type":"Feature","geometry":{"type":"Point","coordinates":[-149.95000000000005,61.02499021252749]},"properties":null},"accuracy":"True area centroid, computed in an equal-area space so the cos(latitude) weighting is right, with holes subtracted. Not the arithmetic mean of the vertices.","inputVertices":5}}},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["geojson"],"properties":{"geojson":{"type":"object","description":"A GeoJSON Feature, FeatureCollection or Geometry in EPSG:4326, longitude then latitude in degrees. At most 100000 positions across the whole document."}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}}}},"description":"Find the area centroid of a polygon: a representative point for labelling, joining, or reverse geocoding a shape you only have a boundary for. It is the centre of mass of the area with holes subtracted, not the average of the vertices, so densely sampled edges do not drag it. Know what a centroid is not: on a concave or ring-shaped polygon the centre of mass can fall outside the polygon itself, and this endpoint returns it anyway rather than nudging the point inside. Test it with POST /v1/pip if you need a point that is guaranteed to be inside. Not turf's centroid, which is the arithmetic mean of the vertices and drifts towards whichever part of the boundary happens to be densely sampled. The moment integral is evaluated in a Lambert cylindrical equal-area projection of the WGS 84 authalic sphere, so the cos(latitude) area weighting is right at high latitude, then inverted back to longitude and latitude. Non-areal input, and polygons that enclose zero area, fall back to the vertex mean and say so in the method field. Input is EPSG:4326 only. Limits: 100000 positions across the whole document, 1 MiB request body.","lastUpdated":"2026-08-21T17:25:58.148Z","serviceName":"geoprimitives","x402Version":2}]}}