Add geofencing to your app with one SDK for iOS, Android, React Native, and Flutter. Receive enter, exit, and dwell events in the background — with low power use and no constant location tracking.
.package(url: "…/geofencekit-ios")implementation("com.geofencekit:geofence-sdk:0.1.0")npm i @geofencekit/sdkflutter pub add geofence_sdkSome location solutions stop the moment the app moves to the background. GeofenceKit builds on the native location capabilities of iOS and Android to register your zones and receive crossing events with as little constant running and power use as possible.
Zones are registered directly with iOS. When a user enters or leaves a zone, the system can deliver the event to your app in the background, subject to the user's location permission and OS constraints.
GeofenceKit uses Android's location services to deliver enter, exit, and dwell events without running a constant foreground service or showing a permanent notification.
Receive enter, exit, and dwell events whether your app is open or running in the background, subject to each OS's permissions and capabilities.
Add thousands of locations — GeofenceKit automatically picks the nearest zones for each device to stay within operating-system limits.
Create a circular zone around a store, or draw a precise polygon around a mall, campus, or operating area.
Events are stored on-device and uploaded in the background by the OS — the upload completes even if the app is killed, dozing, or rebooted, with automatic duplicate prevention.
GPS-accuracy filtering, de-duplication, and cooldowns help reduce incorrect or repeated alerts.
Create zones, manage messages, track visits and events, and give each customer their own API key.
Stream every enter, exit, and dwell event straight to your own server as a signed POST — plug geofencing into your CRM, backend, or automations.
Add the GeofenceKit package to your project, then configure it with your API key.
Use the dashboard to draw circular zones or custom polygons, and define the events and notifications tied to them.
Receive enter, exit, and dwell events, and follow them in the analytics dashboard.
import GeofenceSDK
let sdk = GeofenceSDK.shared
sdk.configure(baseUrl: "https://api.geofencekit.com",
apiKey: "sdk_live_…")
let status = await sdk.requestPermissions()
let fences = try await sdk.start()
// enter / exit / dwell now fire — even after force-quit.val sdk = GeofenceSdk.getInstance(context)
sdk.configure(GeofenceConfig(
baseUrl = "https://api.geofencekit.com",
apiKey = "sdk_live_…",
))
val status = sdk.permissionStatus()
val fences = sdk.start() // suspend; returns watched fencesimport { GeofenceSDK } from '@geofencekit/sdk'
await GeofenceSDK.init({
baseUrl: 'https://api.geofencekit.com',
apiKey: 'sdk_live_…',
})
await GeofenceSDK.requestPermissions()
const fences = await GeofenceSDK.start()import 'package:geofence_sdk/geofence_sdk.dart';
final sdk = GeofenceSdk();
await sdk.configure(GeofenceConfig(
baseUrl: 'https://api.geofencekit.com',
apiKey: 'sdk_live_…',
));
await sdk.requestPermissions();
final fences = await sdk.start();All plans include the four platforms, background operation, circular and polygon zones, and the dashboard and analytics. Production cost is based on device count and usage volume.
Want production pricing? Send us a message and we'll prepare a quote for your usage.
Questions about technical integration, pricing, or moving to production? Send us a message and we'll reply within one business day.
✉ support@geofencekit.comGet a free API key, add the package to your project, then create your first geofence from the dashboard.
Ask about pricing, platforms, setup…