Send GPS coordinates. Get back a place name and a stable category — gym, grocery, gas_station — that your Apple Shortcuts, Python scripts, and apps can act on instantly.
Query params are stripped from all server logs before they touch disk.
In-memory only, purged every 10 minutes. No movement history stored.
Powered by OpenStreetMap. No Google Maps, no expensive licensing.
Your location data is processed in real-time and immediately discarded.
No SDKs to install. No accounts to create for basic use. One GET request with your coordinates returns everything your automation needs.
Pass lat and lng as query parameters with your API key in the header. That's the entire integration.
GeoLabel searches the world's largest open map database for the nearest named place. Results are cached for 10 minutes so repeated lookups are instant.
categorycategory: "gym" fires whether you're at Planet Fitness, Crunch, YMCA, or any other gym on Earth. Build the logic once; it works everywhere.
Each recipe uses category so it works at any location of that type — not just one specific venue.
Walk into any gym. Your phone switches into workout mode before you touch the floor.
Walk into any grocery store. Your list opens automatically — Walmart, Whole Foods, your local market.
Pull into any gas station. Your rewards app opens so you never forget to scan.
Sit down at any restaurant. The name and date get logged automatically.
Full step-by-step Apple Shortcuts instructions → Shortcut Library →
One HTTP request is all it takes. Use whatever language or tool you already have.
# Get a free key at geolabel.dev, then: curl "https://api.geolabel.dev/label?lat=35.4617&lng=-97.5149" \ -H "X-API-Key: your_key_here"
import httpx result = httpx.get( "https://api.geolabel.dev/label", headers={"X-API-Key": "your_key_here"}, params={"lat": 35.4617, "lng": -97.5149}, ).json() print(result["category"]) # → "gym" print(result["label"]) # → "Crunch Fitness" if result["category"] == "gym": start_workout_mode() elif result["category"] == "grocery": open_shopping_list()
const res = await fetch( "https://api.geolabel.dev/label?lat=35.4617&lng=-97.5149", { headers: { "X-API-Key": "your_key_here" } } ); const { category, label } = await res.json(); const actions = { gym: () => startWorkoutMode(), grocery: () => openShoppingList(), gas_station: () => openRewardsApp(), }; actions[category]?.();
let url = URL(string: "https://api.geolabel.dev/label?lat=35.4617&lng=-97.5149")! var request = URLRequest(url: url) request.setValue("your_key_here", forHTTPHeaderField: "X-API-Key") let (data, _) = try await URLSession.shared.data(for: request) let result = try JSONDecoder().decode(GeoLabelResponse.self, from: data) switch result.category { case "gym": startWorkoutMode() case "grocery": openShoppingList() default: break }
No credit card required for the free tier. Upgrade anytime.