✦ Built on OpenStreetMap · Zero Retention

The context layer for your automations

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.

GET api.geolabel.dev/label?lat=35.46&lng=-97.51
Response
"place" "Crunch Fitness - Edmond"
"label" "Crunch Fitness"
"category" gym
"distance_meters" 12.1
"cached" false
🔒

No coordinate logging

Query params are stripped from all server logs before they touch disk.

Ephemeral cache

In-memory only, purged every 10 minutes. No movement history stored.

🌍

Open data

Powered by OpenStreetMap. No Google Maps, no expensive licensing.

🚫

Never sold

Your location data is processed in real-time and immediately discarded.

One endpoint. Instant context.

No SDKs to install. No accounts to create for basic use. One GET request with your coordinates returns everything your automation needs.

1

Send coordinates

Pass lat and lng as query parameters with your API key in the header. That's the entire integration.

2

We query OpenStreetMap

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.

3

Act on category

category: "gym" fires whether you're at Planet Fitness, Crunch, YMCA, or any other gym on Earth. Build the logic once; it works everywhere.

Your phone already knows where you are.
Now it knows what to do.

Each recipe uses category so it works at any location of that type — not just one specific venue.

category = "gym"

🏋️ Gym Mode

Walk into any gym. Your phone switches into workout mode before you touch the floor.

  • Set Focus → Workout
  • Start your gym playlist
  • Log check-in time to Notes
category = "grocery"

🛒 Grocery List Auto-Open

Walk into any grocery store. Your list opens automatically — Walmart, Whole Foods, your local market.

  • Open Reminders → Grocery List
  • Works at every store worldwide
category = "gas_station"

⛽ Gas Station Reward

Pull into any gas station. Your rewards app opens so you never forget to scan.

  • Open your gas station rewards app
  • Log fill-up to a spreadsheet
category = "restaurant"

🍽️ Dining Log

Sit down at any restaurant. The name and date get logged automatically.

  • Append place name + timestamp to Notes
  • Build a full dining history without lifting a finger

Full step-by-step Apple Shortcuts instructions → Shortcut Library →

Works everywhere you write code.

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
}

Start free. Scale when you need to.

No credit card required for the free tier. Upgrade anytime.

Free
$0/month
For personal automations and testing.
  • 10 requests / minute
  • 100 requests / day
  • Full API access
  • Zero-Retention guarantee
Get free key
Enterprise
$49/month
For production apps with high volume.
  • 500 requests / minute
  • 1,000,000 requests / day
  • Full API access
  • Zero-Retention guarantee
  • Dedicated support
Get Enterprise →