Categories
The Category Resource enables interaction with the categories in the store´s menus.
The following table outlines the available Category resources:
Categories Resource | Endpoint description |
---|---|
GET v1/stores/{store_id}/categories | Retrieves the categories of a store by Store ID. |
POST v1/stores/{store_id}/categories | Create or Update the categories by store ID. |
DELETE v1/stores/{store_id}/categories | Delete the specified categories by store ID. |
GET v1/stores/{store_id}/categories/{category_id} | Retrieves the specified category with all relations of information by store ID. |
GET Categories By Store ID
This endpoint retrieves the list of categories available in a specific store.
Endpoint URL
Use this URL to make a request with this endpoint:
https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories
{NEW_DOMAIN}
: This is your Rappi Country Domain. See the list of Country Domains.
Endpoint Properties
This resource has the following properties:
Response formats | JSON |
Authentication requirements | Token |
Parameters
This endpoint has the following parameters:
Parameter | Type | Required | Description |
---|---|---|---|
store_id | int | Yes | The 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}/categories
This is an example of the request:
String storeId = "232"; String urlString = "hhttps://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/categories"; 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"); 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, "sku": "abc", "store_id": 232, "title": "Bebidas", "last_updated": "2025-02-19T17:19:50.78726Z", "items": [], "menus": [], "schedules": [ { "days_of_week": "fri", "time_periods": [ { "start_time": "12:00", "end_time": "10:00" } ] } ] } ]
POST Upsert Categories By Store ID
This endpoint allows creating or updating categories in a specific store.
Endpoint URL
Use this URL to make a request with this endpoint:
https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories
{NEW_DOMAIN}
: This is your Rappi Country Domain. See the list of Country Domains.
Endpoint Properties
This resource has the following properties:
Response formats | JSON |
Authentication requirements | Token |
Parameters
This endpoint has the following parameters:
Parameter | Type | Required | Description |
---|---|---|---|
store_id | int | Yes | The unique identifier of the store whose menu is being requested. |
Important Notes
Request Fields Description
Field | Type | Required | Description |
---|---|---|---|
id | int | Yes | Identifier of the category in the store's menu. |
sku | string | No | Stock Keeping Unit (SKU) identifier of the category. |
store_id | int | Yes | Identifier of the store in the Rappi application. |
title | string | Yes | Name or title of the category. |
items | array | No | List of items within this category |
items[].id | int | Yes | ID of the item in the category |
items[].sku | string | No | SKU of the item in the category |
items[].index | int | Yes | Position of the item in the category |
items[].menu_type | string | Yes | Type of menu the item belongs to |
menus | array | No | List of associated menus |
menus[].id | int | Yes | ID of the menu |
menus[].menu_type | string | Yes | Type of menu (e.g. "DEFAULT") |
menus[].index | int | Yes | Position of the menu |
menus[].is_category_active | boolean | Yes | Indicates if the category is active in this menu |
schedules | array | No | List of schedules that define category availability |
schedules[].days_of_week | string | Yes | Days of the week when the schedule is active (e.g. "fri" ) |
schedules[].time_periods | array | Yes | List of time periods within the schedule |
schedules[].time_periods[].start_time | string | Yes | Start time of the schedule in HH:MM format |
schedules[].time_periods[].end_time | string | Yes | End time of the schedule in HH:MM format |
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/categories
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, \"sku\": \"abc\", \"store_id\": 232, \"title\": \"Bebidas22\", \"last_updated\": \"2025-02-19T17:19:50.78726Z\", \"items\": [], \"menus\": [], \"schedules\": [{\"id\": 182, \"days_of_week\": \"fri\", \"time_periods\": [{\"id\": 378, \"start_time\": \"12:00\", \"end_time\": \"10:00\"}]}]}]"; 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/categories") .addHeader("Content-Type", "application/json") .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 Categories By Store ID
Use this endpoint allows you to delete multiple categories from a store by providing their IDs.
Endpoint URL
Use this URL to make a request with this endpoint:
https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories
{NEW_DOMAIN}
: This is your Rappi Country Domain. See the list of Country Domains.
Endpoint Properties
This resource has the following properties:
Response formats | JSON |
Authentication requirements | Token |
Parameters
This endpoint has the following parameters:
Parameter | Type | Required | Description |
---|---|---|---|
store_id | int | Yes | The 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 Categories 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/categories
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 = "{\"ids\": [1, 2, 22]}"; 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/categories") .delete(body) .addHeader("Content-Type", "application/json") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } } }
GET Category By Store ID
Use this endpoint to retrieve the details of a specific category from a store.
Endpoint URL
Use this URL to make a request with this endpoint:
https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories/{category_id}
{NEW_DOMAIN}
: This is your Rappi Country Domain. See the list of Country Domains.
Endpoint Properties
This resource has the following properties:
Response formats | JSON |
Authentication requirements | Token |
Parameters
This endpoint has the following parameters
Parameter | Type | Required | Description |
---|---|---|---|
store_id | int | Yes | The unique identifier of the store whose menu is being requested. |
category_id | int | Yes | The unique identifier of the category 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}/categories/{category_id}
This is an example of the request:
String storeId = "232"; String categoryId = "10" String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/categories/" + categoryId}; 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"); 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": 1, "sku": "abc", "store_id": 232, "title": "Platos Fuertes", "last_updated": "2025-01-10T15:40:31.464312Z", "items": [], "menus": [], "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri,sat,sun,hol", "time_periods": [ { "start_time": "18:08", "end_time": "22:39" } ] } ] }
This table describes the objects contained in the response example:
Object | Type | Description |
---|---|---|
id | int | Unique identifier of the category |
sku | string | SKU (Stock Keeping Unit) of the category |
store_id | int | Identifier of the store in the Rappi application |
title | string | Name of the category |
last_updated | string | Timestamp of the last update (ISO 8601 format) |
items | array | List of items under this category (currently empty in the response) |
menus | array | List of menus associated with this category (currently empty in response) |
schedules | array | List of schedules when this category is available |
schedules[].days_of_week | string | Days of the week when the schedule is active (e.g., mon,tue,wed, etc.) |
schedules[].time_periods | array | List of time periods defining category availability |
schedules[].time_periods[].start_time | string | Start time of the time period (HH:mm format) |
schedules[].time_periods[].end_time | string | End time of the time period (HH:mm format) |