Skip to main content

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 Configuration / Restaurant Administration
GET/system/restaurant/locations

Retrieves 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

ParameterTypeDescription
pagestring

Tenant-group page number (default: 1)

Example: 1

limitstring

Tenant groups per page (default: 10, max: 50)

Example: 10

searchstring

Search by tenant name, tenant slug, location name, location slug, or location code

tenant_idstring

Filter by exact tenant id

citystring

Filter locations by city

areastring

Filter locations by area

active_statusstring

Filter by location active state: active | inactive

operational_statusstring

Filter by runtime state: open | closed

admin_statusstring

Filter by governance state: draft | pending_approval | approved | rejected | suspended

include_empty_tenantsstring

When true, returns matching tenants even if they currently have no matching locations

Example: false

Headers

ParameterTypeDescription
Authorizationstring

Example: Bearer {{access_token}}

Staging
Request
curl
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

200Success Response
Response body
json
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 Configuration / Restaurant Administration
GET/system/restaurant/locations/:locationId

Retrieves one restaurant location for the Ondi admin portal detail page. Requires manage:system permission.

Path parameters

ParameterTypeDescription
locationIdRequiredstring

Restaurant location id

Example: {{location_id}}

Headers

ParameterTypeDescription
Authorizationstring

Example: Bearer {{access_token}}

Staging
Request
curl
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/system/restaurant/locations/${LOCATIONID}" \2  --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"

Response examples

200Success Response
Response body
json
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 Configuration / Restaurant Administration
PUT/system/restaurant/locations/:locationId/status

Updates a restaurant location governance status. Allowed transitions: pending_approval → approved, pending_approval → rejected, approved → suspended, suspended → approved. Requires manage:system permission.

Path parameters

ParameterTypeDescription
locationIdRequiredstring

Restaurant location id

Example: {{location_id}}

Headers

ParameterTypeDescription
Authorizationstring

Example: Bearer {{access_token}}

Content-Typestring

Example: application/json

Body parameters

ParameterTypeDescription
statusstring—
notesstring—
Staging
Request
curl
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

200Success Response - Approved
Response body
json
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}