Isochrones
An isochrone is the area reachable from (or to) a census block within a
travel-time budget. GET /v1/isochrone returns it as GeoJSON contour polygons or
as a list of reachable blocks. It is the cheapest way to ask “how far can I get”:
one flat price regardless of how large the area is.
Building a request
Section titled “Building a request”Identify the origin with block=<15-digit GEOID> or lon= + lat=. Then:
mode=walk|bike|transit(defaultwalk).direction=to|from(defaultto).tois the set of blocks that can reach the origin;fromis where you can get to from the origin (the Mapbox-style travel shed). For a symmetric mode like walking the two are nearly the same; for transit they differ.minutes=1..60for a single threshold (default 30), orcontours=with up to four ascending thresholds, for examplecontours=10,20,30.format=geojson|blocks.
Times use the same assumptions as the rest of the data: a weekday ~8am departure
and a good-day (10th-percentile) transit trip. Every reply echoes them under
assumptions, and GET /v1/isochrone/meta lists the version, directions, modes,
and assumptions for free.
The two contour properties
Section titled “The two contour properties”Each contour carries two values you will use:
contour— the threshold in minutes (10, 20, 30 …). Features arrive largest contour first, so drawing them in order paints the shorter times on top.reachable_blocks— how many blocks fall inside that contour.
Contour geometry
Section titled “Contour geometry”Contours are drawn from block centres on an adaptive grid, so they describe block-level reachability, not a street-level boundary. Small interior holes (below about 1 square mile) are filled: a single large block such as a park or campus is one centre, so its footprint would otherwise read as an unreachable pocket that is really just a sampling artefact. Larger holes (lakes, airfields) are kept. Read a missing small hole as “not resolvable at block scale”, not as reachability.
Two formats
Section titled “Two formats”format=geojson returns a FeatureCollection of contour polygons, with the
origin block, direction, mode, store version, and echoed assumptions.
An empty contour has a null geometry.
format=blocks returns the reachable blocks with their travel minutes instead of
polygons — handy when you want the block list, not the shape:
{ "blocks": [ { "geoid": "440070036001010", "travel_min": 12 } ], "reachable_blocks": 1, "block": "440070036001010", "direction": "to", "mode": "walk"}Pricing
Section titled “Pricing”Isochrones cost 10 tokens per contour level, in either format: minutes=30
costs 10, contours=10,20,30 costs 30. The price is by level, not by rows, so a
whole 30-minute walkshed as format=blocks is 10 tokens no matter how many blocks
it contains.
Responses are strongly cacheable, and revalidating with If-None-Match is free on
a match. One wrinkle, unlike the row-metered routes: an isochrone revalidation at a
zero balance returns 429 tokens-exhausted rather than a free 304.