Locations
8 API calls in this section.
Create Location
/restaurant/locationsCreates a restaurant location under the tenant in draft status. Address (latitude, longitude, full_address) is required. Optional: is_manual_mode, manual_is_open.
1curl --request POST "$ONDI_BASE_URL/restaurant/locations" \2 --header "Authorization: Bearer {{access_token}}" \3 --header "Content-Type: application/json" \4 --data '{5 "name": {6 "en": "Downtown Diner"7 },8 "slug": "downtown-diner",9 "languages": [10 "en"11 ],12 "time_zone": "UTC",13 "branding_settings": {14 "logo": "https://example.com/logo.png",15 "cover_image": "https://example.com/cover.png",16 "banners": [17 "https://example.com/banner1.png"18 ]19 },20 "address": {21 "latitude": 12.9716,22 "longitude": 77.5946,23 "full_address": "MG Road, Bengaluru, IN",24 "city": "Bengaluru",25 "country": "IN"26 },27 "is_manual_mode": false,28 "manual_is_open": true29}'1{2 "name": {3 "en": "Downtown Diner"4 },5 "slug": "downtown-diner",6 "languages": [7 "en"8 ],9 "time_zone": "UTC",10 "branding_settings": {11 "logo": "https://example.com/logo.png",12 "cover_image": "https://example.com/cover.png",13 "banners": [14 "https://example.com/banner1.png"15 ]16 },17 "address": {18 "latitude": 12.9716,19 "longitude": 77.5946,20 "full_address": "MG Road, Bengaluru, IN",21 "city": "Bengaluru",22 "country": "IN"23 },24 "is_manual_mode": false,25 "manual_is_open": true26}Request body fields
nameExampleExample field from the request body.
name.enExampleExample field from the request body.
slugExampleExample field from the request body.
languagesExampleExample field from the request body.
time_zoneExampleExample field from the request body.
branding_settingsExampleExample field from the request body.
branding_settings.logoExampleExample field from the request body.
branding_settings.cover_imageExampleExample field from the request body.
branding_settings.bannersExampleExample field from the request body.
addressExampleExample field from the request body.
address.latitudeExampleExample field from the request body.
address.longitudeExampleExample field from the request body.
address.full_addressExampleExample field from the request body.
address.cityExampleExample field from the request body.
address.countryExampleExample field from the request body.
is_manual_modeExampleExample field from the request body.
manual_is_openExampleExample field from the request body.
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "data": {4 "id": "{{locationId}}",5 "tenant_id": "{{tenantId}}",6 "name": {7 "en": "Downtown Diner"8 },9 "slug": "downtown-diner",10 "active": true,11 "admin_status": "draft",12 "languages": [13 "en"14 ],15 "time_zone": "UTC",16 "branding_settings": {17 "logo": "https://example.com/logo.png",18 "cover_image": "https://example.com/cover.png",19 "banners": [20 "https://example.com/banner1.png"21 ]22 },23 "address": {24 "latitude": 12.9716,25 "longitude": 77.5946,26 "full_address": "MG Road, Bengaluru, IN"27 },28 "is_manual_mode": false,29 "manual_is_open": true,30 "availability_version": 1,31 "created_at": "2025-11-10T10:00:00Z"32 }33}List Locations
/restaurant/locations?page=1&limit=10Lists locations for the tenant with pagination. Includes is_open computed field.
1curl --request GET "$ONDI_BASE_URL/restaurant/locations?page=1&limit=10" \2 --header "Authorization: Bearer {{access_token}}"Query parameters
pageOptional1
limitOptional10
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "data": [4 {5 "id": "{{locationId}}",6 "name": {7 "en": "Downtown Diner"8 },9 "slug": "downtown-diner",10 "active": true,11 "admin_status": "draft",12 "languages": [13 "en"14 ],15 "time_zone": "UTC",16 "is_open": true,17 "availability_version": 118 }19 ],20 "page": 1,21 "limit": 10,22 "total": 123}Get Location
/restaurant/locations/:idFetch a single location by id. Includes is_open computed field.
1curl --request GET "$ONDI_BASE_URL/restaurant/locations/:id" \2 --header "Authorization: Bearer {{access_token}}"Path parameters
idRequiredHeaders
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "data": {4 "id": "{{locationId}}",5 "tenant_id": "{{tenantId}}",6 "name": {7 "en": "Downtown Diner"8 },9 "slug": "downtown-diner",10 "active": true,11 "admin_status": "draft",12 "languages": [13 "en"14 ],15 "time_zone": "UTC",16 "address": {17 "latitude": 12.9716,18 "longitude": 77.5946,19 "full_address": "MG Road, Bengaluru, IN"20 },21 "is_manual_mode": false,22 "manual_is_open": true,23 "is_open": true,24 "availability_version": 125 }26}Update Location
/restaurant/locations/:idUpdates a location. Returns updated location object including availability_version.
1curl --request PUT "$ONDI_BASE_URL/restaurant/locations/:id" \2 --header "Authorization: Bearer {{access_token}}" \3 --header "Content-Type: application/json" \4 --data '{5 "name": {6 "en": "Downtown Diner"7 },8 "slug": "downtown-diner",9 "languages": [10 "en"11 ],12 "time_zone": "UTC",13 "branding_settings": {14 "logo": "https://example.com/logo_updated.png",15 "cover_image": "https://example.com/cover_updated.png",16 "banners": [17 "https://example.com/banner_updated.png"18 ]19 },20 "active": true,21 "address": {22 "latitude": 12.9716,23 "longitude": 77.5946,24 "full_address": "MG Road, Bengaluru, IN",25 "city": "Bengaluru",26 "country": "IN"27 },28 "is_manual_mode": false,29 "manual_is_open": true30}'1{2 "name": {3 "en": "Downtown Diner"4 },5 "slug": "downtown-diner",6 "languages": [7 "en"8 ],9 "time_zone": "UTC",10 "branding_settings": {11 "logo": "https://example.com/logo_updated.png",12 "cover_image": "https://example.com/cover_updated.png",13 "banners": [14 "https://example.com/banner_updated.png"15 ]16 },17 "active": true,18 "address": {19 "latitude": 12.9716,20 "longitude": 77.5946,21 "full_address": "MG Road, Bengaluru, IN",22 "city": "Bengaluru",23 "country": "IN"24 },25 "is_manual_mode": false,26 "manual_is_open": true27}Path parameters
idRequiredRequest body fields
nameExampleExample field from the request body.
name.enExampleExample field from the request body.
slugExampleExample field from the request body.
languagesExampleExample field from the request body.
time_zoneExampleExample field from the request body.
branding_settingsExampleExample field from the request body.
branding_settings.logoExampleExample field from the request body.
branding_settings.cover_imageExampleExample field from the request body.
branding_settings.bannersExampleExample field from the request body.
activeExampleExample field from the request body.
addressExampleExample field from the request body.
address.latitudeExampleExample field from the request body.
address.longitudeExampleExample field from the request body.
address.full_addressExampleExample field from the request body.
address.cityExampleExample field from the request body.
address.countryExampleExample field from the request body.
is_manual_modeExampleExample field from the request body.
manual_is_openExampleExample field from the request body.
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "data": {4 "id": "{{locationId}}",5 "name": {6 "en": "Downtown Diner"7 },8 "slug": "downtown-diner",9 "active": true,10 "admin_status": "draft",11 "languages": [12 "en"13 ],14 "time_zone": "UTC",15 "is_manual_mode": false,16 "manual_is_open": true,17 "is_open": true,18 "availability_version": 219 }20}Submit Location For Approval
/restaurant/locations/:locationId/submit-for-approvalSubmits a draft restaurant location to system admin review. Changes admin_status from draft to pending_approval.
1curl --request POST "$ONDI_BASE_URL/restaurant/locations/:locationId/submit-for-approval" \2 --header "Authorization: Bearer {{access_token}}"Path parameters
locationIdRequiredHeaders
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "data": {4 "id": "{{locationId}}",5 "tenant_id": "{{tenantId}}",6 "slug": "downtown-diner",7 "admin_status": "pending_approval"8 },9 "message": "Restaurant location submitted for approval"10}1{2 "success": false,3 "message": "Restaurant location cannot be submitted"4}Pause Location
/restaurant/locations/:locationId/pauseTemporarily pause the location (deactivate current time window). Requires automatic schedule mode.
1curl --request POST "$ONDI_BASE_URL/restaurant/locations/:locationId/pause" \2 --header "Authorization: Bearer {{access_token}}"Path parameters
locationIdRequiredHeaders
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "message": "Location paused successfully"4}Resume Location
/restaurant/locations/:locationId/resumeResume the location (reactivate current time window) if manually paused.
1curl --request POST "$ONDI_BASE_URL/restaurant/locations/:locationId/resume" \2 --header "Authorization: Bearer {{access_token}}"Path parameters
locationIdRequiredHeaders
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "message": "Location resumed successfully"4}Set Location State (manual)
/restaurant/locations/:locationId/stateOperational toggle for the location; bumps availability_version for instant cache invalidation.
1curl --request POST "$ONDI_BASE_URL/restaurant/locations/:locationId/state" \2 --header "Authorization: Bearer {{access_token}}" \3 --header "Content-Type: application/json" \4 --data '{5 "is_manual_mode": true,6 "manual_is_open": false7}'1{2 "is_manual_mode": true,3 "manual_is_open": false4}Path parameters
locationIdRequiredRequest body fields
is_manual_modeExampleExample field from the request body.
manual_is_openExampleExample field from the request body.
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "data": {4 "id": "{{locationId}}",5 "is_manual_mode": true,6 "manual_is_open": false,7 "availability_version": 438 }9}