Find an API

Search public APIs with auth details & Postman guides

← All APIs

LotaData

lotadata · Location

Location No Auth Free & Open location

Access the most exhaustive, accurate and up-to-date collection of global and hyper-local geocoded events and activities across a wide range of categories and genres

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Find event occurrences in the area. Returns results at specific place and time, event groups are expanded for every occurrence.

Find event occurrences in the area. Returns results at specific place and time, event groups are expanded for every occurrence.

https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events?q=test&bbox=example&name=test&genre=example&limit=10&center=example&offset=0&radius=1&to_day=example&within=example&polygon=example&activity=example&ambience=example&category=example&fieldset=context&from_day=example&capacity_max=1&capacity_min=1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events?q=test&bbox=example&name=test&genre=example&limit=10&center=example&offset=0&radius=1&to_day=example&within=example&polygon=example&activity=example&ambience=example&category=example&fieldset=context&from_day=example&capacity_max=1&capacity_min=1"
import requests
params = {
    "q": "test",
    "bbox": "example",
    "name": "test",
    "genre": "example",
    "limit": "10",
    "center": "example",
    "offset": "0",
    "radius": "1",
    "to_day": "example",
    "within": "example",
    "polygon": "example",
    "activity": "example",
    "ambience": "example",
    "category": "example",
    "fieldset": "context",
    "from_day": "example",
    "capacity_max": "1",
    "capacity_min": "1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events');
url.searchParams.set('q', 'test');
url.searchParams.set('bbox', 'example');
url.searchParams.set('name', 'test');
url.searchParams.set('genre', 'example');
url.searchParams.set('limit', '10');
url.searchParams.set('center', 'example');
url.searchParams.set('offset', '0');
url.searchParams.set('radius', '1');
url.searchParams.set('to_day', 'example');
url.searchParams.set('within', 'example');
url.searchParams.set('polygon', 'example');
url.searchParams.set('activity', 'example');
url.searchParams.set('ambience', 'example');
url.searchParams.set('category', 'example');
url.searchParams.set('fieldset', 'context');
url.searchParams.set('from_day', 'example');
url.searchParams.set('capacity_max', '1');
url.searchParams.set('capacity_min', '1');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events")
	q := baseURL.Query()
	q.Set("q", "test")
	q.Set("bbox", "example")
	q.Set("name", "test")
	q.Set("genre", "example")
	q.Set("limit", "10")
	q.Set("center", "example")
	q.Set("offset", "0")
	q.Set("radius", "1")
	q.Set("to_day", "example")
	q.Set("within", "example")
	q.Set("polygon", "example")
	q.Set("activity", "example")
	q.Set("ambience", "example")
	q.Set("category", "example")
	q.Set("fieldset", "context")
	q.Set("from_day", "example")
	q.Set("capacity_max", "1")
	q.Set("capacity_min", "1")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events")
uri.query = URI.encode_www_form({
  "q" => "test",
  "bbox" => "example",
  "name" => "test",
  "genre" => "example",
  "limit" => "10",
  "center" => "example",
  "offset" => "0",
  "radius" => "1",
  "to_day" => "example",
  "within" => "example",
  "polygon" => "example",
  "activity" => "example",
  "ambience" => "example",
  "category" => "example",
  "fieldset" => "context",
  "from_day" => "example",
  "capacity_max" => "1",
  "capacity_min" => "1"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events?" . http_build_query([
    "q" => "test",
    "bbox" => "example",
    "name" => "test",
    "genre" => "example",
    "limit" => "10",
    "center" => "example",
    "offset" => "0",
    "radius" => "1",
    "to_day" => "example",
    "within" => "example",
    "polygon" => "example",
    "activity" => "example",
    "ambience" => "example",
    "category" => "example",
    "fieldset" => "context",
    "from_day" => "example",
    "capacity_max" => "1",
    "capacity_min" => "1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Venues, landmarks, regions, these are all places to search.

Venues, landmarks, regions, these are all places to search.

https://api.apis.guru/v2/specs/lotadata.com/2.0.0/places?tag=example&bbox=example&name=test&type=json&exact=true&limit=10&center=example&offset=0&radius=1&region=us-east-1&street=example&within=example&country=US&polygon=example&ambience=example&category=example&fieldset=context&function=example&locality=example&postal_code=example&capacity_max=1&capacity_min=1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/places?tag=example&bbox=example&name=test&type=json&exact=true&limit=10&center=example&offset=0&radius=1&region=us-east-1&street=example&within=example&country=US&polygon=example&ambience=example&category=example&fieldset=context&function=example&locality=example&postal_code=example&capacity_max=1&capacity_min=1"
import requests
params = {
    "tag": "example",
    "bbox": "example",
    "name": "test",
    "type": "json",
    "exact": "true",
    "limit": "10",
    "center": "example",
    "offset": "0",
    "radius": "1",
    "region": "us-east-1",
    "street": "example",
    "within": "example",
    "country": "US",
    "polygon": "example",
    "ambience": "example",
    "category": "example",
    "fieldset": "context",
    "function": "example",
    "locality": "example",
    "postal_code": "example",
    "capacity_max": "1",
    "capacity_min": "1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/places",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/lotadata.com/2.0.0/places');
url.searchParams.set('tag', 'example');
url.searchParams.set('bbox', 'example');
url.searchParams.set('name', 'test');
url.searchParams.set('type', 'json');
url.searchParams.set('exact', 'true');
url.searchParams.set('limit', '10');
url.searchParams.set('center', 'example');
url.searchParams.set('offset', '0');
url.searchParams.set('radius', '1');
url.searchParams.set('region', 'us-east-1');
url.searchParams.set('street', 'example');
url.searchParams.set('within', 'example');
url.searchParams.set('country', 'US');
url.searchParams.set('polygon', 'example');
url.searchParams.set('ambience', 'example');
url.searchParams.set('category', 'example');
url.searchParams.set('fieldset', 'context');
url.searchParams.set('function', 'example');
url.searchParams.set('locality', 'example');
url.searchParams.set('postal_code', 'example');
url.searchParams.set('capacity_max', '1');
url.searchParams.set('capacity_min', '1');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/lotadata.com/2.0.0/places")
	q := baseURL.Query()
	q.Set("tag", "example")
	q.Set("bbox", "example")
	q.Set("name", "test")
	q.Set("type", "json")
	q.Set("exact", "true")
	q.Set("limit", "10")
	q.Set("center", "example")
	q.Set("offset", "0")
	q.Set("radius", "1")
	q.Set("region", "us-east-1")
	q.Set("street", "example")
	q.Set("within", "example")
	q.Set("country", "US")
	q.Set("polygon", "example")
	q.Set("ambience", "example")
	q.Set("category", "example")
	q.Set("fieldset", "context")
	q.Set("function", "example")
	q.Set("locality", "example")
	q.Set("postal_code", "example")
	q.Set("capacity_max", "1")
	q.Set("capacity_min", "1")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/lotadata.com/2.0.0/places")
uri.query = URI.encode_www_form({
  "tag" => "example",
  "bbox" => "example",
  "name" => "test",
  "type" => "json",
  "exact" => "true",
  "limit" => "10",
  "center" => "example",
  "offset" => "0",
  "radius" => "1",
  "region" => "us-east-1",
  "street" => "example",
  "within" => "example",
  "country" => "US",
  "polygon" => "example",
  "ambience" => "example",
  "category" => "example",
  "fieldset" => "context",
  "function" => "example",
  "locality" => "example",
  "postal_code" => "example",
  "capacity_max" => "1",
  "capacity_min" => "1"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/places?" . http_build_query([
    "tag" => "example",
    "bbox" => "example",
    "name" => "test",
    "type" => "json",
    "exact" => "true",
    "limit" => "10",
    "center" => "example",
    "offset" => "0",
    "radius" => "1",
    "region" => "us-east-1",
    "street" => "example",
    "within" => "example",
    "country" => "US",
    "polygon" => "example",
    "ambience" => "example",
    "category" => "example",
    "fieldset" => "context",
    "function" => "example",
    "locality" => "example",
    "postal_code" => "example",
    "capacity_max" => "1",
    "capacity_min" => "1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Get Specific event details.

Get Specific event details.

https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events/{id}?fieldset=summary

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events/{id}?fieldset=summary"
import requests
params = {
    "fieldset": "summary"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events/{id}",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events/{id}');
url.searchParams.set('fieldset', 'summary');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events/{id}")
	q := baseURL.Query()
	q.Set("fieldset", "summary")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events/{id}")
uri.query = URI.encode_www_form({
  "fieldset" => "summary"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/lotadata.com/2.0.0/events/{id}?" . http_build_query([
    "fieldset" => "summary"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with LotaData?

LotaData is a Location API. Developers commonly use location APIs for:

  • tracking assets and vehicles in real time
  • building delivery and logistics apps
  • finding nearby businesses or services
  • geo-fencing and location-based notifications
  • address validation and autocomplete

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. LotaData is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide

Open documentation ↗