API reference (v1)
Base URL https://indiarestros.com/api/v1. JSON. No key needed for reads (120 requests/minute/IP). Errors follow RFC 9457 (title, status, detail). Machine-readable: openapi.json.
GET /restaurants
Search or list. Parameters: q, near (free text place), city, locality, state (slugs), lat, lon, radius_m, kind, cuisine, diet, brand, limit (max 50), offset. Each hit carries photos (up to 5 thumbs), photo_count, menu_items, price_band, rating.
curl "https://indiarestros.com/api/v1/restaurants?q=biryani&city=hyderabad&locality=kondapur"
GET /dishes
Menu items across India. Parameters: q (dish words), dish (canonical slug), city, locality, veg, max_price, lat, lon, radius_m, limit, offset.
curl "https://indiarestros.com/api/v1/dishes?q=masala+dosa&city=bengaluru&max_price=120"
GET /restaurants/{id}
One restaurant by IRR- id. Every contact field has src (source) and the record has scores.confidence, photos[] and updated.
curl https://indiarestros.com/api/v1/restaurants/IRR-XXXXXXXXXX
GET /restaurants/{id}/menu
Menu sections and items, with source and date.
curl https://indiarestros.com/api/v1/restaurants/IRR-XXXXXXXXXX/menu
POST /restaurants/{id}/corrections
Report a correction. JSON body: field (phone|hours|closed|moved|name|website|menu|other), value, evidence_url (optional).
curl -X POST -H "content-type: application/json" -d '{"field":"phone","value":"+91 98xxxxxx21 is the new number"}' https://indiarestros.com/api/v1/restaurants/IRR-XXXXXXXXXX/corrections
GET /places?type=state|city|locality&parent=
The place hierarchy with counts.
curl "https://indiarestros.com/api/v1/places?type=city&parent=state:karnataka"
GET /places/{id}
A state, city or area: counts by kind and cuisine, children.
curl https://indiarestros.com/api/v1/places/city:bengaluru
GET /stats
Dataset counts.
curl https://indiarestros.com/api/v1/stats
Fields worth knowing
phones[].src,website.src,hours.src: where each fact came from.photos[]: url (1200w), thumb (480w), alt, kind (food, interior, exterior), src.scores.confidence(0 to 1) andscores.completeness.open_now: true/false in IST when timings are known, else null.ratings.foodie: IndiaRestros ratings;ratings.external: other sites, labelled.