Menu

The Menu enables interaction with a store's menu. Represents a grouping of items within categories. Each menu can have its own combination as long as it uses the catalog (list of items/categories) from its store.

The following table outlines the available Menu resources:

ResourceEndpoint description
GET v1/stores/{store_id}/menuRetrieves the menus of a store by Store ID.
POST v1/stores/{store_id}/menuCreate or Update the menus by store ID.
DELETE v1/stores/{store_id}/menuDelete the specified menus by store ID.
GET v1/stores/{store_id}/menu/{menu_id}Retrieves the specified menu with all relations of information by store ID.

GET Menus By Store ID

Use this endpoint to retrieve the menus of a store by Store ID.

Endpoint URL

Use this URL to make a request with this endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/menu

{NEW_DOMAIN}: This is your Rappi Country Domain. See the list of Country Domains.

Endpoint Properties

This resource has the following properties:

Response formatsJSON
Authentication requirementsToken

Parameters

This endpoint has the following parameters:

ParameterTypeRequiredDescription
store_idintYesThe unique identifier of the store whose menu is being requested.

This parameter is used to specify which store's menu should be retrieved. The store_id should be a valid integer representing a store registered in the system.

Status Codes

These are the possible status codes of the response for this endpoint:

Sample Request

This is an example of an API request using this endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{store_id}/menu

This is an example of the request:


String storeId = "232"; String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/menu"; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Accept", "application/json"); connection.setRequestProperty("x-authorization", "Bearer YOUR_TOKEN"); connection.setRequestProperty("x-authorization", "Bearer YOUR_TOKEN"); int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { StringBuilder response = new StringBuilder(); String responseLine; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } System.out.println("Response body: " + response.toString()); }



Sample Response "Success 200"

This is an example of the response "Success 200":

[ { "id": 9, "store_id": 232, "super_store_id": 232, "menu_type": "DEFAULT", "categories": [ { "id": 625, "sku": "abc", "index": 0, "is_category_active": true }, { "id": 637, "sku": "def", "index": 0, "is_category_active": true } ] } ]

POST Upsert Menu By Store ID

Use this endpoint to create or update the store´s menu.

Endpoint URL

Use this URL to make a request with this endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/menu

{NEW_DOMAIN}: This is your Rappi Country Domain. See the list of Country Domains.

Endpoint Properties

This resource has the following properties:

Response formatsJSON
Authentication requirementsToken

Parameters

This endpoint has the following parameters:

ParameterTypeRequiredDescription
store_idintYesThe unique identifier of the store whose menu is being requested.

Important Notes

Request Fields Description

FieldTypeDescription
idintUnique identifier of the store's menu.
menu_typestringType of menu (e.g., "DEFAULT"), indicating the menu classification.
categoriesarrayList of categories included in the store's menu.
categories[].idintUnique identifier of the category.
categories[].skustringStock Keeping Unit (SKU) associated with the category.
categories[].indexintPosition of the category within the menu.
categories[].is_category_activebooleanIndicates whether the category is active (true) or inactive (false).

Status Codes

These are the possible status codes of the response for this endpoint:

Sample Request

This is an example of an API request using this endpoint:

POST https://api.dev.rappi.com/restaurants/menu/v1/stores/232/menu

This is an example of the request:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = "[{\"id\": 9, \"menu_type\": \"DEFAULT\", \"categories\": [{\"id\": 6, \"sku\": \"abc\", \"index\": 0, \"is_category_active\": false }]}]"; RequestBody body = RequestBody.create(json, MediaType.get("application/json")); Request request = new Request.Builder() .url("https://api.dev.rappi.com/restaurants/menu/v1/stores/232/menu") .addHeader("Content-Type", "application/json") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .addHeader"x-authorization", "Bearer YOUR_TOKEN") .post(body) .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } } }



Sample Response 'Success 200'

This is an example of the response "Success 200":

{ "message": "Your request has been accepted." }

DELETE Menu By Store ID

Use this endpoint allows the deletion of a specific list of menus from a store.

Endpoint URL

Use this URL to make a request with this endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/menu

{NEW_DOMAIN}: This is your Rappi Country Domain. See the list of Country Domains.

Endpoint Properties

This resource has the following properties:

Response formatsJSON
Authentication requirementsToken

Parameters

This endpoint has the following parameters:

ParameterTypeRequiredDescription
store_idintYesThe unique identifier of the store whose menu is being requested.

Status Codes

These are the possible status codes of the response for this endpoint:

Sample Request

The request must be sent in JSON format with an array of menu IDs to be deleted. This is an example of an API request using this endpoint:

DELETE https://api.dev.rappi.com/restaurants/menu/v1/stores/232/menu

This is an example of the request:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = "[1,2]"; RequestBody body = RequestBody.create(json, MediaType.get("application/json")); Request request = new Request.Builder() .url("https://api.dev.rappi.com/restaurants/menu/v1/stores/232/menu") .delete(body) .addHeader("Content-Type", "application/json") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } } }



Sample Response 'Success 200'

This is an example of the response "Success 200":

{ "message": "Your request has been accepted." }

GET Menu By Store ID

Use this endpoint to retrieve the details of a specific menu from a store.

Endpoint URL

Use this URL to make a request with this endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/menu/{menu_id}

{NEW_DOMAIN}: This is your Rappi Country Domain. See the list of Country Domains.

Endpoint Properties

This resource has the following properties:

Response formatsJSON
Authentication requirementsToken

Path Parameter

ParameterTypeRequiredDescription
store_idintYesThe unique identifier of the store whose menu is being requested.
menu_idintYesThe unique identifier of the menu that is requested.

This parameter is used to specify which store's menu should be retrieved. The store_id should be a valid integer representing a store registered in the system.

Status Codes

These are the possible status codes of the response for this endpoint:

Sample Request

This is an example of an API request using this endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{store_id}/menu/{menu_id}

This is an example of the request:


String storeId = "232"; String menuId = "9"; String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/menu/" + menuId; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Accept", "application/json"); connection.setRequestProperty("x-authorization", "Bearer YOUR_TOKEN"); connection.setRequestProperty("x-authorization", "Bearer YOUR_TOKEN"); int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { StringBuilder response = new StringBuilder(); String responseLine; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } System.out.println("Response body: " + response.toString()); }



Sample Response "Success 200"

This is an example of the response "Success 200":

{ "id": 9, "store_id": 232, "super_store_id": 232, "menu_type": "DEFAULT", "categories": [ { "id": 6, "sku": "abc", "index": 0, "is_category_active": true } ] }

This table describes the objects contained in the response example:

CampoTipoDescripción
idintUnique identifier of the store's menu
menu_typestringType of menu (e.g., "DEFAULT"), indicating the menu classification
store_idintUnique identifier of the store within the Rappi application
super_store_idintUnique identifier of the super store within the Rappi application
categoriesarrayList of categories included in the store's menu
categories[].idintnique identifier of the category
categories[].skustringStock Keeping Unit (SKU) associated with the category"
categories[].indexintPosition of the category within the menu
categories[].is_category_activebooleanIndicates whether the category is active (true) or inactive (false)