{"api":"v1","generated_at":"2026-09-15T18:48:20.228Z","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-buffer-c7319c","pinned_page":"https://tollindex.com/e/api-geoprimitives-dev-v1-geometry-buffer-c7319c/at/2026-09-15T16-57Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-09-15T16:57:44.360Z","snapshot_stamp":"2026-09-15T16-57Z","endpoint":{"slug":"api-geoprimitives-dev-v1-geometry-buffer-c7319c","canonical_url":"https://api.geoprimitives.dev/v1/geometry/buffer","resource":"https://api.geoprimitives.dev/v1/geometry/buffer","http_method":"POST","type":"http","x402_version":2,"registries":["cdp"],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Buffer a geometry by a distance in metres and get the offset polygon back. Use it for service areas, setbacks, and proximity envelopes you will later test with POST /v1/pip. Accepts any geometry -- point, line, polygon, or a collection of them, each buffered about its own centre latitude -- and answers with a Feature, or a FeatureCollection when you sent several. A buffer that collapses (a negative distance larger than the shape, or any negative distance on a point or a line) answers geojson:null with empty:true, which is an answer and not an error. Geodesic-aware: turf buffers in an azimuthal equidistant plane scaled by a sphere, which is a systematic -0.56% error at the equator running to +0.44% at 80 deg latitude, and this endpoint cancels that by scaling the distance to the Gaussian radius of curvature at the feature's own centre latitude. Measured against GeographicLib the result is then within +/-0.34% of the requested distance at the equator, +/-0.08% at 60 deg, +/-0.04% at 70 deg and +/-0.01% at 80 deg; the residual is the ellipsoid's north-south versus east-west curvature, which no single sphere can represent, and it shrinks towards the poles. Between vertices the polygon edge cuts a further 1 - cos(pi/(4*steps)) inside the true offset curve, 0.054% at the default steps=24. Input is EPSG:4326 only. Limits: 2000 positions across the whole document, 1 MiB request body, distance within +/-1000000 m, steps 1 to 128.","service_name":"geoprimitives","declared_category":null,"declared_tags":["geometry","polygon","buffer","turf"],"route_template":null,"registry_updated":"2026-08-21T17:25:57.773Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"geometry buffer","category":"inference","first_observed_by_toll":"2026-09-10T19:08:24.178Z","last_observed_by_toll":"2026-09-15T16:57:44.360Z","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-15T16:57:44.360Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-08-21T17:25:56.903Z"},"validation":{"latest":{"observed_at":"2026-09-15T06:30:14.015Z","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:30:14.015Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-15","state_changed":false},{"observed_at":"2026-09-14T05:59:20.408Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-14","state_changed":false},{"observed_at":"2026-09-13T05:51:28.390Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-13","state_changed":false},{"observed_at":"2026-09-12T08:08:43.399Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-12","state_changed":false},{"observed_at":"2026-09-11T12:06:43.538Z","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","buffer","turf"],"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:56.903Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://api.geoprimitives.dev/v1/geometry/buffer","extensions":{"bazaar":{"info":{"input":{"body":{"steps":2,"geojson":{"type":"Point","coordinates":[-149.9003,61.2181]},"distance":500},"type":"http","method":"POST","bodyType":"json"},"output":{"type":"json","example":{"op":"buffer","empty":false,"notes":[],"steps":2,"geojson":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-149.8909880026692,61.218099680669816],[-149.89371476021455,61.2212701612782],[-149.9003,61.2225835109001],[-149.90688523978542,61.2212701612782],[-149.90961199733076,61.218099680669816],[-149.90688391332412,61.214929519391646],[-149.9003,61.213616489099905],[-149.89371608667585,61.214929519391646],[-149.8909880026692,61.218099680669816]]]},"properties":null},"accuracy":"Buffer distance is accurate to +/-0.34% at the equator falling to +/-0.01% at 80 deg latitude, plus 1 - cos(pi/(4*steps)) of inward chord error between vertices.","radiusScale":0.9970887085271185,"inputVertices":1,"distanceMeters":500}}},"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","distance"],"properties":{"steps":{"type":"integer","default":24,"maximum":128,"minimum":1,"description":"Segments per quadrant, so four times this many vertices per full circle. Default 24, maximum 128. The polygon edge cuts 1 - cos(pi/(4*steps)) inside the true offset curve: 0.48% at turf's own default of 8, 0.054% at 24, 0.008% at 64."},"geojson":{"type":"object","description":"A GeoJSON Feature, FeatureCollection or Geometry in EPSG:4326, longitude then latitude in degrees. At most 2000 positions across the whole document. Reproject with POST /v1/transform first if your data is in anything else."},"distance":{"type":"number","maximum":1000000,"minimum":-1000000,"description":"Buffer distance in metres. Negative erodes a polygon inwards, and collapses a point or a line to nothing. At most 1000000 m either way, because past about 1000 km the azimuthal equidistant plane distorts more than every other error here combined."}},"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":"Buffer a geometry by a distance in metres and get the offset polygon back. Use it for service areas, setbacks, and proximity envelopes you will later test with POST /v1/pip. Accepts any geometry -- point, line, polygon, or a collection of them, each buffered about its own centre latitude -- and answers with a Feature, or a FeatureCollection when you sent several. A buffer that collapses (a negative distance larger than the shape, or any negative distance on a point or a line) answers geojson:null with empty:true, which is an answer and not an error. Geodesic-aware: turf buffers in an azimuthal equidistant plane scaled by a sphere, which is a systematic -0.56% error at the equator running to +0.44% at 80 deg latitude, and this endpoint cancels that by scaling the distance to the Gaussian radius of curvature at the feature's own centre latitude. Measured against GeographicLib the result is then within +/-0.34% of the requested distance at the equator, +/-0.08% at 60 deg, +/-0.04% at 70 deg and +/-0.01% at 80 deg; the residual is the ellipsoid's north-south versus east-west curvature, which no single sphere can represent, and it shrinks towards the poles. Between vertices the polygon edge cuts a further 1 - cos(pi/(4*steps)) inside the true offset curve, 0.054% at the default steps=24. Input is EPSG:4326 only. Limits: 2000 positions across the whole document, 1 MiB request body, distance within +/-1000000 m, steps 1 to 128.","lastUpdated":"2026-08-21T17:25:57.773Z","serviceName":"geoprimitives","x402Version":2}]}}