Restaurant Administration
3 API calls in this section.
System-level APIs for cross-tenant restaurant administration in the Ondi admin portal.
List Restaurant Locations
/system/restaurant/locationsRetrieves restaurant locations across tenants for the Ondi admin portal Restaurants page. Results are grouped by tenant and paginated by tenant group. Requires manage:system permission.
Query parameters
| Parameter | Type | Description |
|---|---|---|
page | string | Tenant-group page number (default: 1) Example: |
limit | string | Tenant groups per page (default: 10, max: 50) Example: |
search | string | Search by tenant name, tenant slug, location name, location slug, or location code |
tenant_id | string | Filter by exact tenant id |
city | string | Filter locations by city |
area | string | Filter locations by area |
active_status | string | Filter by location active state: active | inactive |
operational_status | string | Filter by runtime state: open | closed |
admin_status | string | Filter by governance state: draft | |
include_empty_tenants | string | When true, returns matching tenants even if they currently have no matching locations Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/system/restaurant/locations?page=1&limit=10&search=&tenant_id=&city=&area=&active_status=&operational_status=&admin_status=&include_empty_tenants=false" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
1{2 "success": true,3 "message": "Restaurants retrieved successfully",4 "data": {5 "groups": [6 {7 "tenant": {8 "id": "tenant-uuid",9 "name": {10 "en": "Tenant One"11 },12 "slug": "tenant-one",13 "status": "active"14 },15 "summary": {16 "total_locations": 2,17 "active_locations": 2,18 "inactive_locations": 0,19 "open_locations": 1,20 "closed_locations": 121 },22 "locations": [23 {24 "id": "location-uuid",25 "code": 1001,26 "name": {27 "en": "Downtown Branch"28 },29 "slug": "downtown-branch",30 "admin_status": "approved",31 "active": true,32 "is_open": true,33 "city": "Erbil",34 "area": "Ankawa",35 "full_address": "Street 60, Ankawa, Erbil",36 "latitude": 36.23,37 "longitude": 43.98,38 "accept_dining": true,39 "accept_delivery": true,40 "accept_takeout": true,41 "created_at": "2026-03-20T12:00:00Z"42 }43 ]44 }45 ],46 "pagination": {47 "page": 1,48 "limit": 10,49 "total_groups": 25,50 "total_locations": 11851 },52 "filters": {53 "search": "",54 "tenant_id": null,55 "city": null,56 "area": null,57 "active_status": null,58 "operational_status": null,59 "admin_status": null,60 "include_empty_tenants": false61 }62 }63}Get Restaurant Location Detail
/system/restaurant/locations/:locationIdRetrieves one restaurant location for the Ondi admin portal detail page. Requires manage:system permission.
Path parameters
| Parameter | Type | Description |
|---|---|---|
locationIdRequired | string | Restaurant location id Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/system/restaurant/locations/${LOCATIONID}" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
1{2 "success": true,3 "message": "Restaurant location retrieved successfully",4 "data": {5 "id": "location-uuid",6 "tenant_id": "tenant-uuid",7 "name": {8 "en": "Downtown Branch"9 },10 "slug": "downtown-branch",11 "active": true,12 "admin_status": "approved",13 "approved_by": "admin-user-uuid",14 "approved_at": "2026-03-20T12:05:00Z",15 "admin_notes": "Approved for public access",16 "is_open": true,17 "languages": [18 "en",19 "ar"20 ],21 "time_zone": "Asia/Baghdad",22 "created_at": "2026-03-20T12:00:00Z",23 "updated_at": "2026-03-20T12:10:00Z",24 "code": 1001,25 "latitude": 36.23,26 "longitude": 43.98,27 "address": {28 "city": "Erbil",29 "area": "Ankawa",30 "full_address": "Street 60, Ankawa, Erbil",31 "latitude": 36.23,32 "longitude": 43.9833 },34 "branding_settings": {35 "logo": "https://cdn.example.com/logo.png",36 "cover_image": "https://cdn.example.com/cover.png",37 "banners": []38 },39 "is_manual_mode": false,40 "manual_is_open": true,41 "availability_version": 12,42 "accept_dining": true,43 "accept_delivery": true,44 "accept_takeout": true,45 "tenant": {46 "id": "tenant-uuid",47 "name": {48 "en": "Tenant One"49 },50 "slug": "tenant-one",51 "status": "active"52 }53 }54}Update Restaurant Location Status
/system/restaurant/locations/:locationId/statusUpdates a restaurant location governance status. Allowed transitions: pending_approval → approved, pending_approval → rejected, approved → suspended, suspended → approved. Requires manage:system permission.
Path parameters
| Parameter | Type | Description |
|---|---|---|
locationIdRequired | string | Restaurant location id Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
Content-Type | string | Example: |
Body parameters
| Parameter | Type | Description |
|---|---|---|
status | string | — |
notes | string | — |
1curl --globoff --request PUT "https://staging-api.ondi.io/functions/v1/system/restaurant/locations/${LOCATIONID}/status" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}" \3 --header "Content-Type: application/json" \4 --data-raw '{5 "status": "approved",6 "notes": "Ready for public launch"7}'Response examples
1{2 "success": true,3 "message": "Restaurant location approved successfully",4 "data": {5 "id": "location-uuid",6 "tenant_id": "tenant-uuid",7 "slug": "downtown-branch",8 "admin_status": "approved",9 "approved_by": "admin-user-uuid",10 "approved_at": "2026-03-20T12:05:00Z",11 "admin_notes": "Ready for public launch"12 }13}