DEVELOPER
API
Reference.
Build on top of Bengaluru's most honest dataset. No paywalls for personal projects.
Base URL
https://bengaluru.fyi/api/v1info
The API is free to usefor now. As usage grows we'll be evaluating infrastructure costs — if pricing ever changes, existing users will get fair notice before anything kicks in.
Authentication
Read endpoints are public and require no authentication. Write endpoints (POST, DELETE) require a Bearer token passed in the Authorization header.
Authorization: Bearer YOUR_API_KEY
API keys are currently in closed beta. Email api@bengaluru.fyi to request access.
Rate Limits
Unauthenticated
60 req/min
API Key (Free)
300 req/min
API Key (Partner)
Unlimited
Endpoints
GET
/api/v1/spotsList all spots with optional filters.
Parameters
categorystringFilter by category slug (e.g. eats, roads)areastringFilter by neighbourhood namelimitnumberMax results per page (default: 20, max: 100)offsetnumberPagination offset (default: 0)Example
GET /api/v1/spots?category=eats&area=indiranagar&limit=10
{
"total": 84,
"offset": 0,
"limit": 10,
"data": [
{
"id": "spot_01J...",
"name": "CTR",
"category": "eats",
"area": "Malleshwaram",
"description": "The masala dosa that started wars.",
"submitted_by": "anonymous",
"created_at": "2024-11-14T08:22:11Z"
}
]
}GET
/api/v1/spots/:idGet a single spot by ID.
Parameters
idstringSpot ID (e.g. spot_01J...)Example
GET /api/v1/spots/spot_01Jabc123
{
"id": "spot_01Jabc123",
"name": "Toit Brewpub",
"category": "breweries",
"area": "Indiranagar",
"description": "Windmill Wit on tap, always.",
"maps_url": "https://maps.google.com/?q=Toit+Brewpub",
"submitted_by": "anonymous",
"created_at": "2024-10-05T19:01:44Z"
}GET
/api/v1/categoriesList all available categories with spot counts.
Example
GET /api/v1/categories
{
"data": [
{ "slug": "roads", "label": "Roads", "count": 2140 },
{ "slug": "eats", "label": "Eats", "count": 4820 },
{ "slug": "breweries", "label": "Breweries", "count": 384 }
]
}POST
/api/v1/spotsSubmit a new spot. Requires an API key.
Parameters
namestringSpot name (required)categorystringCategory slug (required)areastringNeighbourhood name (required)descriptionstringYour take on the spot (required)maps_urlstringGoogle Maps URL (optional)Example
POST /api/v1/spots
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"name": "VV Puram Food Street",
"category": "eats",
"area": "Basavanagudi",
"description": "Obbattu, chaat, and chaos. Perfect.",
"maps_url": "https://maps.google.com/?q=VV+Puram+Food+Street"
}
// Response 201
{
"id": "spot_01Jxyz789",
"status": "pending_review"
}