Scopes
delivery_zones:read— list zones, get a zone, and check coverage.delivery_zones:write— create, update, and delete zones.
Create a zone
Zone names must be unique per location.polygon is a GeoJSON Polygon of [longitude, latitude] rings — the first ring must be closed (first and last points equal).
delivery_fee_cents defaults to 0, is_active to true, priority to 0, and zone_type to polygon. The response is the created delivery_zone object; use its id for the zone endpoints.
Coverage checks always evaluate polygon. zone_type: 'circle' and radius_miles are descriptive metadata only — for a circle zone, submit a polygon that approximates the circle.
List zones
{ "object": "list", "data": [...] } containing only active zones.
Update a zone
PATCH changes only the fields you send:
Delete a zone
Deletes deactivate the zone (it drops out of list results and coverage checks):Check whether a coordinate is deliverable
Before quoting a delivery, check the customer’s coordinates against the location’s zones:delivery_zone_check: in_zone tells you the location delivers there, and when true zone carries the matching zone and delivery_fee_cents its fee. When false, both are null.
Zone get/update/delete return 404 for a zone that belongs to a different location — a partner can only ever touch zones owned by the location in the path.