Getting started with the Fencemaker geofencing API
The core loop in Fencemaker is short: define a zone, report device location against it, receive a webhook when something happens. Everything else — device tracking, dwell detection, the ops portal — sits on top of that loop. Here's what the pieces actually look like before you integrate.
1. Define a zone
Zones are polygons or radii, created either through the ops portal (no code) or the API directly. A zone needs a boundary and an identifier — everything else (dwell thresholds, webhook routing) can be configured per zone afterward.
POST /v1/zones
{
"zone_id": "zone_warehouse_east",
"type": "polygon",
"coordinates": [
[40.7128, -74.0060],
[40.7135, -74.0055],
[40.7130, -74.0040],
[40.7120, -74.0045]
]
}
2. Report device location
Your app or tracking device sends location updates to Fencemaker's tracking endpoint. Fencemaker evaluates each update against all zones the device is relevant to and determines whether an enter, exit, or dwell event has occurred.
POST /v1/track
{
"device_id": "device_4471",
"coordinates": { "lat": 40.7129, "lng": -74.0058 },
"timestamp": "2026-08-18T09:00:00Z"
}
3. Receive the webhook
When a device crosses a boundary or exceeds a dwell threshold, Fencemaker pushes an event to whatever webhook destination you've configured — your own endpoint, Slack, or Telegram.
POST https://your-app.com/webhooks/fencemaker
{
"event": "geofence.enter",
"zone_id": "zone_warehouse_east",
"device_id": "device_4471",
"timestamp": "2026-08-18T09:00:03Z"
}
That's the whole loop. No polling, no client-side geofence libraries to keep synced across platforms — the evaluation happens server-side, once, against the zones you've defined.
What most integrations add next
- Dwell thresholds per zone, so you get alerted on lingering, not just crossing
- Slack or Telegram routing, configured per zone or per team
- The ops portal, for teams who want to manage zones without going through the API for every change
- Historical event queries, for reviewing what happened in a zone over a given time window
Where to go from here
If you're evaluating Fencemaker against a hosted SDK platform or an on-device solution, the self-hosted geofencing overview covers the deployment trade-offs. If you already know self-hosted is the right fit, the loop above is the whole integration surface — zones, tracking, webhooks.