# Grabfood Reviews Apify (`romy/grabfood-reviews-apify`) Actor

Grab Merchant Reviews Scraper is an Actor built to extract customer reviews from GrabFood merchants using Grab’s public API endpoint.It retrieves user reviews, ratings, and pagination tokens for continued data collection — perfect for business analysis, sentiment monitoring, or data aggregation.

- **URL**: https://apify.com/romy/grabfood-reviews-apify.md
- **Developed by:** [Romy](https://apify.com/romy) (community)
- **Categories:** E-commerce, Automation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 results

This Actor is paid per result. You are not charged for the Apify platform usage, but only a fixed price for dataset items the Actor outputs.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-result

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Grab Merchant Reviews Scraper

Grab Merchant Reviews Scraper is an **Apify Actor** built to extract customer reviews from **GrabFood merchants** using Grab’s public API endpoint.
It retrieves user reviews, ratings, and pagination tokens for continued data collection — perfect for business analysis, sentiment monitoring, or data aggregation.

---

### 🎯 Features

- **Merchant Review Extraction**: Collects structured reviews from Grab merchants.
- **Pagination Support**: Supports `next_token` for fetching additional review pages.
- **Asynchronous Requests**: Uses `httpx.AsyncClient` for efficient concurrent scraping.
- **JSON Output**: Results are stored in Apify Dataset for easy access and integration.
- **Customizable Input**: You can provide any `merchant_id` and optional `next_token`.

---

### 🚀 How to Use

1. **Deploy on Apify**
   Upload this Actor to your Apify account or use it directly from your local development setup.

2. **Input Parameters**
   The Actor expects an input object in JSON format:

   ```json
   {
     "merchant_id": "4-CZCTJUB3TPUBWA",
     "next_token": "",
     "language": "en-US"
   }
````

- `merchant_id` *(required)* – The unique ID of the Grab merchant.
- `next_token` *(optional)* – Used for fetching the next set of reviews (pagination).
- `language` *(optional)* – API request language (default: "en-US").

3. **Run the Actor**
   You can execute it via the Apify Console or the API.
   The Actor will make a request to Grab’s API, fetch reviews, and store the structured results.

4. **Retrieve the Results**
   Once completed, you can download the results from the Apify dataset tab in JSON, CSV, or Excel format.

***

### 📌 Example Output

```json
{
  "reviews": [
    {
      "review_id": "5f5d9873ed7e8ee2a914b0d302743720",
      "description": "If I could give zero I would … the pizza was ice cold and disgusting.. trying to contact them for a refund",
      "highlighted_description": "If I could give zero I would … the pizza was ice cold and disgusting.. trying to contact them for a refund",
      "avatar_title": "John M.",
      "rating": 1,
      "posted_at": "2025-10-05T04:19:23Z",
      "ordered": "Ordered: Simply Cheese Pizza",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-10-05T04:20:05Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332038432",
          "rating": -1,
          "item_name": "Simply Cheese Pizza"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250430105240333955",
          "rating": -1,
          "item_name": "Buddies Bundle (2-3pax)"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-10-12T04:19:23Z"
    },
    {
      "review_id": "65248d848d1d67285c7b237519db6ddc",
      "description": "The pizza was tiny and very undercooked. It felt like I was chewing gum. Same thing with the breadsticks. Very disappointed. I can’t believe the food quality in such an expensive city. \nThe price of my order was 34.90. Original price without the discount would have been 52.60. It blows my mind how there’s no value in mid-range restaurants.",
      "highlighted_description": "The pizza was tiny and very undercooked. It felt like I was chewing gum. Same thing with the breadsticks. Very disappointed. I can’t believe the food quality in such an expensive city. \nThe price of my order was 34.90. Original price without the discount would have been 52.60. It blows my mind how there’s no value in mid-range restaurants.",
      "avatar_title": "Stefan",
      "rating": 1,
      "posted_at": "2025-10-04T09:31:19Z",
      "ordered": "Ordered: Salsa Sauce, Buddies Bundle (2-3pax)",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "photos": [
        {
          "id": "wMzM0UTOzgTN1kDO2MTO4kTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/335539381/wMzM0UTOzgTN1kDO2MTO4kTM?Expires=3021010830&Signature=RJvZBZ9F3Vpjds2sRxpIAbfhJ1fyWwHHQSfK0qkXp~o92mTZAG3OsXP91xqigJhTbGITgwyEJHGKIcLHcqZC3TpoW5N4-h2CWY0DQtfr2vEdlQ1tpA-cvusa4AJSW6c46To7geCkUQFo8yn6F5ldDoiFiwPMU0EEc7uWGRgHNviexZcq9ysfiIdaW0elQSZAMvJagA4z7fMlVYF6Yx6N9cW1t1U1vgDjUrkiBqTa4X0nfPh-6waFKeMWh2dSGXResXCqxxqm5UM1jf2CFHEn8I2BiMN6NKbZv3tNevg~6GZitCsrRJ7tHX6CuhgTUbuyh9rGZy1ISEff9d5dWJ36ew__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        },
        {
          "id": "2YDO5EDM0gTN1kDO2MTO4kTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/335539381/2YDO5EDM0gTN1kDO2MTO4kTM?Expires=3021010830&Signature=NIe2L3P8s6jwHweg664B1IfI6-viQyDsSnnUeyz43OC5hKaGjmjr8uvy5Sq1kLlTEf62J607-Da9-OXQZKNPlrOK5OFd8sJsM2j6Cw20Tl0CEkaTbe6vTIDpAYRd33sIyvispv9WCzkGzOPaOIMvmf57JIoQuAFpULazmY8A4LiWPO3MwB0rA0KbAW3JKxmugBMR7MQAt2BjecR8iwnVdIntPMVjLT8FwJSHz3EKVJ6Mp24T4CjW3aQZ4iA757WBZFncLsl2fXa5lLDUHuv7nUbNowAGwjjMFcaOzHBL2v8msbevkghkACmwhFrMjS8-yejp2AB~oEEoeeuHtpkpfQ__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        },
        {
          "id": "yADN1gDM0gTN1kDO2MTO4kTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/335539381/yADN1gDM0gTN1kDO2MTO4kTM?Expires=3021010830&Signature=HD9kEp9SbRLXAMFbWfwDrDwieBPGDtEiW41fBDPCOgZV4cagFBpu8U1XxXhJa5scRSZeAfnKpw2oLqBUZCF7IB9nHdAdBncxsYOxllNt9UTZZHVpuheor1XANnsnI~FniJulRyekNf3teF6sj3NMrkIb20qWHFub1SGfGAxTdlxsUb3g2d1AJGJ1K8BuHKszdkWTsUFP-F6zb25f0pjGKMvgbBKHRw6rYQrddhhs3TaSQFaKe8zjAzbgTC9XdVKoURVl1-jR24V9Yh0-2rlsfpqKt9bjuSbHIUZKWOZ~bNc69aeHsqjvMKixITDPVRjq4j7ENCq51~NEAYKbTbJwrQ__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        }
      ],
      "content_last_modified_at": "2025-10-04T09:40:31Z",
      "item_ratings": [
        {
          "item_id": "SGITE20250430105240333955",
          "rating": -1,
          "item_name": "Buddies Bundle (2-3pax)"
        },
        {
          "item_id": "SGITE20220513035332363402",
          "rating": -1,
          "item_name": "Salsa Sauce"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-10-11T09:31:19Z"
    },
    {
      "review_id": "f7e153e929e888b06a4b31de366cc888",
      "description": "missing coke. report done",
      "highlighted_description": "missing coke. report done",
      "avatar_title": "nana",
      "rating": 5,
      "posted_at": "2025-09-30T09:13:31Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas x3, Coca-Cola (1.5L)",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-09-30T09:13:49Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": 1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": 1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250430105240333955",
          "rating": 1,
          "item_name": "Buddies Bundle (2-3pax)"
        },
        {
          "item_id": "SGITE20220513035333204044",
          "rating": -1,
          "item_name": "Coca-Cola (1.5L)"
        }
      ],
      "status": "",
      "reviews_madeby_user": "79 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-10-07T09:13:31Z"
    },
    {
      "review_id": "ca41db7ad79411086f1174f13300381f",
      "description": "Missing items from order",
      "highlighted_description": "Missing items from order",
      "avatar_title": "Samantha",
      "rating": 1,
      "posted_at": "2025-09-29T18:00:20Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas x2",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-09-29T18:00:35Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20220513035332038432",
          "rating": -1,
          "item_name": "Simply Cheese Pizza"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20250430105240333955",
          "rating": -1,
          "item_name": "Buddies Bundle (2-3pax)"
        }
      ],
      "status": "",
      "reviews_madeby_user": "18 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-10-06T18:00:20Z"
    },
    {
      "review_id": "4ed89a4fb13058a8d8e2cf37414e7038",
      "description": "Cola didn’t arrive.",
      "highlighted_description": "Cola didn’t arrive.",
      "avatar_title": "Aramko",
      "rating": 1,
      "posted_at": "2025-09-22T11:21:22Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-09-22T11:21:57Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-09-29T11:21:22Z"
    },
    {
      "review_id": "d5fd717b233019cd0df2edb20bd1aad4",
      "description": "service was fast. Friends enjoyed the 2 large orders. good deal 1 for 1.",
      "highlighted_description": "service was fast. Friends enjoyed the 2 large orders. good deal 1 for 1.",
      "avatar_title": "Hiew L.",
      "rating": 4,
      "posted_at": "2025-09-22T01:05:03Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "photos": [
        {
          "id": "wUjMzcTNwIzN0YTM2QTM3kTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/255509369/wUjMzcTNwIzN0YTM2QTM3kTM?Expires=3019943471&Signature=GRTw3uWEaPEhAnyJT0kNvludPBijEUxaTG4SS4KFkjKcxNz~pXswqbH~vXSAaJfRCTdaM2qqqKCLDrZTyGlVztVnMQwTXX7XDQaZNi60ynHjZZSh~vsTCVW4vgMNY2K1xED1~faKB-jmxFl4u8-0eUPlCAvkbSgX2Eq24MDF9fw2x~PmNyck4XlSEgZ4xQWO4K3~ROfhBrKVHWm2Ds2DrU1yVzmmH9JWgm7iCcOANIqMG52mgFrO33X95LqKcCdbKcw2IHhXAgjDtzmRmNuslmilA0D~yqQvEMioOkfS~pjzOUicMxgL4Ug9Hvq1P31cYnnyNSGOqNk14xGbfxo5Jg__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        }
      ],
      "content_last_modified_at": "2025-09-22T01:11:11Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": 1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "reviews_madeby_user": "4 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-09-29T01:05:03Z"
    },
    {
      "review_id": "8cdc52489c078900f489a4acfaefeb29",
      "description": "食物没有切，烂。。。。。。。。。。。。。",
      "highlighted_description": "食物没有切，烂。。。。。。。。。。。。。",
      "avatar_title": "pickhan",
      "rating": 1,
      "posted_at": "2025-09-11T09:58:36Z",
      "ordered": "Ordered: 1-for-1 Regular Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "photos": [
        {
          "id": "1EDOyUTO3cjNwUDO0AjN1kTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/193512939/1EDOyUTO3cjNwUDO0AjN1kTM?Expires=3019024777&Signature=Mr95Ov3ORnrzae8TRBhwEQbGe-a~TpUWrj-JxS-F4J-Y6Pif2V~2u7RFkirI4rwg49zDsFjniDMejgGHMeuUtmc5B7IvKPn5Q~gtJRrWec3RQYRbX6zRHQMncqR11TICdxAoTRsVs~odmNgJCqzVenIQSZHLSRYo8PBtmcyXrBdcfdweTwZw1~g4VubS~aJwNIdkT12J2zQJqZ5idtO-ehsKr8eoMKHVnLP5WyF19hWE6f8QkHVvlDNIT5PiVi1dxO~rn4ZveRiENN368rN-8ci1IHkMJdMfgTwJECEOZcacX3e36ajyOoR2GwsFfHeXqKV3inwRBN3Kducst2ycSQ__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        }
      ],
      "content_last_modified_at": "2025-09-11T09:59:37Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "reviews_madeby_user": "7 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-09-18T09:58:36Z"
    },
    {
      "review_id": "c1243d278d7fbb36c5e49d4ab0770a0b",
      "description": "Wrong products and uncomplete order.",
      "highlighted_description": "Wrong products and uncomplete order.",
      "avatar_title": "otto h.",
      "rating": 1,
      "posted_at": "2025-09-07T16:56:23Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-09-07T16:56:56Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-09-14T16:56:23Z"
    },
    {
      "review_id": "a91fa1bacf0f539fbc4c1f4b38f6dcae",
      "description": "The Coke didn’t arrive, and I haven’t received a refund either.",
      "highlighted_description": "The Coke didn’t arrive, and I haven’t received a refund either.",
      "avatar_title": "구현서",
      "rating": 1,
      "posted_at": "2025-09-07T16:09:04Z",
      "ordered": "Ordered: Chicken Pepperoni, Coca-Cola (1.5L)",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-09-07T16:10:48Z",
      "item_ratings": [
        {
          "item_id": "SGITE20250430105241800486",
          "rating": -1,
          "item_name": "Chicken Pepperoni"
        },
        {
          "item_id": "SGITE20220513035333204044",
          "rating": -1,
          "item_name": "Coca-Cola (1.5L)"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-09-14T16:09:04Z"
    },
    {
      "review_id": "ae1f79a978390962174b8f051eba5579",
      "description": "I did not make this order . I would like to get a credit for this order .",
      "highlighted_description": "I did not make this order . I would like to get a credit for this order .",
      "avatar_title": "Michael S.",
      "rating": 1,
      "posted_at": "2025-08-31T23:16:17Z",
      "ordered": "Ordered: Mac & Cheesy Best Buddies (2-3pax)",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-31T23:16:56Z",
      "item_ratings": [
        {
          "item_id": "SGITE20250804180938277938",
          "rating": -1,
          "item_name": "Mac & Cheesy Best Buddies (2-3pax)"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-09-07T23:16:17Z"
    },
    {
      "review_id": "1fa7fc7f9e25e53c71241a29624098a2",
      "description": "The pizzas was so cold! \nWe did not enjoy it at all",
      "highlighted_description": "The pizzas was so cold! \nWe did not enjoy it at all",
      "avatar_title": "Afif H.",
      "rating": 1,
      "posted_at": "2025-08-24T11:06:18Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-24T11:06:46Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-31T11:06:18Z"
    },
    {
      "review_id": "eccf07110852ae5aeaccd212058768f8",
      "description": "Our 1am late night quick brunch! pizza was so hot, fresh and yummy! As a carnivore, I don't really fancy veggies but tried their vege pizza for the first time and it was damn shiok!!! So good sia! Thank you to the pizza man for making nice pizza 🍕",
      "highlighted_description": "Our 1am late night quick brunch! pizza was so hot, fresh and yummy! As a carnivore, I don't really fancy veggies but tried their vege pizza for the first time and it was damn shiok!!! So good sia! Thank you to the pizza man for making nice pizza 🍕",
      "avatar_title": "Cheesecake",
      "rating": 5,
      "posted_at": "2025-08-21T18:53:22Z",
      "ordered": "Ordered: 1-for-1 Regular Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "photos": [
        {
          "id": "xgTNycTN1kTM3IzN0EjNykTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/107845054/xgTNycTN1kTM3IzN0EjNykTM?Expires=3017242524&Signature=avuaGwD1I6waPZfgHmKejfLwXyVepLS1-Z10CDZDBoa-WfHNHdNqwTPr5XYQTkuSZRX2rlYCaXD2hVyG749S7ryrZ~f8599GzzJEzZ4aqcABOKztql4majkynfBZ4bSPdqGakSPZIchWCSvCqePwxpFYhTsDnsm0SiYkIZ9O8ST4yp82w0zMQ70tAyIDMsm7Uo4jE5~d92G4Bup0aFtFrFP0YdBOp0yX05Kbxpk7GRk7FeVbX7hFvxo22jHd~8jTYZu-V9uzfc0KvVopRKZJepQfpflV7Nh2TlDae4XrHSpxYnzdzjDdQQvWwhFwxYV7vJ4~OAwGGuxjOjDBiHErLg__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        },
        {
          "id": "3ETM4MjN1kTM3IzN0EjNykTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/107845054/3ETM4MjN1kTM3IzN0EjNykTM?Expires=3017242524&Signature=YPGJnV60cm5zMxRVTSsoKFQoVKoyJIjUUjfhaOVrKQhRiFGBVZ-EZ0~s2SyhmuYaaDkjgOabwNPHNEg73yHYAyWeAu9gboBC5UamdMQNvWz06iRxxXE7mgCt84OfYGBiBGlq45zciKp1vBh-4TYAlxSyIxB28ZSlQvWw11L7ezP1kkRMKFBy02zVCq01pvmXaHUe0jhl53aUwzzzPvGU-AvumPZvPAHL84AVdmvgnFHKFR2gUIyQOZQU3qfiweaTiMKnuRcMrj0IS4wCMgECNAetrxotZdx8nbeP4tpCmB~5npm3rTyQj27blTMvhLR9YvO4zD~aOjNCUL7xy-q8Jw__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        },
        {
          "id": "zUjNzAzN1kTM3IzN0EjNykTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/107845054/zUjNzAzN1kTM3IzN0EjNykTM?Expires=3017242524&Signature=FpxXl7xQoUo2IbMMJST3yae6sSI7jON1qxbEkwldWviyOja6096lt5YVzMqOLNrwDpo984g0wohgD1DVIgzwCU0zAwm1Bh~A0is9KAZyUJquSj3CDM2AQlf5blaMJr9QPkUmE81OlpIR8d27dAr8WMbfrA~oDODoC5bWksvSf5wmx2lKN6b4B5WDk1e6LGZH18W8GZHQdNdqvqQMqDQdK1BWdtO6FYpMHbLcShOGTgrSw2YW~WBP0q6WYhxCq2LuS0RUSg5OuN89ywP0Mio~UHch6nQ0P32Y~L82GX87HHkFTDNrRlBfM3yg8RZzhmpr0tjXbOA3Ak8pi764GpzXlg__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        },
        {
          "id": "5gTM5YzN1kTM3IzN0EjNykTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/107845054/5gTM5YzN1kTM3IzN0EjNykTM?Expires=3017242524&Signature=fvsA7dzsvP4vviqCWFmz1yRggylSvq1MtcoZEGqMrGrtx~orGgeFSIL-~XDaE3zGzBHQ8lHv9B5njoUKtnzmjj9-aQKQQPyZjow19Fux0Z4Hjv1oLJykscRijKRLEIRkOE3ljR0ER4iNDIhOKfWf9xBIcakyOVNaOSvBOJYad2TR9gPigKEx3p-RK87EnnIajFghnMmu5yfpWkStdCqt15lqceKzqjPENsx~AJeF0dLoaslybesM70SZBYPG9sQI3bUhLBQEPc74dMTliTnpahtIr~1xYmysZ2HmsLDMKhypkyovfm6Pej5fZgarOjKyacZDs8jsNrNN1wffcpTRdA__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        },
        {
          "id": "1IzN0MDO1kTM3IzN0EjNykTM",
          "url": "https://d24t71ciweynx9.cloudfront.net/food-reviews/images/107845054/1IzN0MDO1kTM3IzN0EjNykTM?Expires=3017242524&Signature=AR~zmx7k2pKFphbwr26FcDoD~u1dMGhNXe7d24fWhBXJdgt2~KxGZq1jltHl-fo~ILTMN~8sJCWMwsirfJ2EDcMdYQh8eqNn-CxfIaqq4O0MzicAFRoNcgLgn30g1z65aiyzWpY1e5WUX8ebiylmif~apwiL-8Pb4VbMD1uyDImteCAr~1q46HS0aKb5tcLUvqLAcsR17bIb-wxS2DqsfZQMdoJkkmsN0bGpnzXAXFJGtgS~Osp6IjOEkPRKsGSRIiX3zUDrIj17XSIUEQ7iGRJRaqyVTHLFzjDrFIycyHx4bUf87auvYSFXeF-YQaNEKEL1m2hesRSP03g-GnshBQ__&Key-Pair-Id=K3UYLQ5OPJHQLI"
        }
      ],
      "content_last_modified_at": "2025-08-21T18:55:25Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332468539",
          "rating": 1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "reviews_madeby_user": "16 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-28T18:53:22Z"
    },
    {
      "review_id": "77e7da28d14cdc376bf7db4d8ca3ccf6",
      "description": "Simply disgusting. The tomato paste on the pizza was very sour and the thin crust was dry and unpleasant. Expensive even with offers",
      "highlighted_description": "Simply disgusting. The tomato paste on the pizza was very sour and the thin crust was dry and unpleasant. Expensive even with offers",
      "avatar_title": "Nadia E.",
      "rating": 1,
      "posted_at": "2025-08-18T12:48:19Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas x2, Garlic Bread x2",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-18T12:49:33Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20250804180938316751",
          "rating": -1,
          "item_name": "Garlic Bread"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-25T12:48:19Z"
    },
    {
      "review_id": "c4edf8eccf029cbcb1f2e80a1f14d47e",
      "description": "We only received half the food we ordered at night time and the driver said that’s all he received, the whole contacting process is very hard and confusing and store is closed already so impossible to actually get a solution for this situation",
      "highlighted_description": "We only received half the food we ordered at night time and the driver said that’s all he received, the whole contacting process is very hard and confusing and store is closed already so impossible to actually get a solution for this situation",
      "avatar_title": "Jenny",
      "rating": 1,
      "posted_at": "2025-08-17T17:47:04Z",
      "ordered": "Ordered: Mac & Cheesy Family Pizza Party (4-5pax)",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-17T17:57:12Z",
      "item_ratings": [
        {
          "item_id": "SGITE20250804180938107848",
          "rating": -1,
          "item_name": "Mac & Cheesy Family Pizza Party (4-5pax)"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-24T17:47:04Z"
    },
    {
      "review_id": "8eee8080087a9cf56d8b5364344c967f",
      "description": "Do not order from this outlet. I had to throw away most of the pizzas I ordered. They were so badly prepared and didn’t taste great either. Complete waste of money",
      "highlighted_description": "Do not order from this outlet. I had to throw away most of the pizzas I ordered. They were so badly prepared and didn’t taste great either. Complete waste of money",
      "avatar_title": "Vartika S.",
      "rating": 1,
      "posted_at": "2025-08-15T08:47:06Z",
      "ordered": "Ordered: 1-for-1 Regular Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-15T08:48:05Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250804180938700382",
          "rating": -1,
          "item_name": "1-for-1 Large Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "reviews_madeby_user": "4 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-22T08:47:06Z"
    },
    {
      "review_id": "af84bcaf3e9af9837ccd0e00c15d1086",
      "description": "Staffs Not helpful called them about wrong address. Super non chalent and rude",
      "highlighted_description": "Staffs Not helpful called them about wrong address. Super non chalent and rude",
      "avatar_title": "Harshal",
      "rating": 1,
      "posted_at": "2025-08-14T10:05:32Z",
      "ordered": "Ordered: Fudgy Brownies, 1-for-1 Large Pizzas",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-14T10:06:21Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20250430105237361861",
          "rating": -1,
          "item_name": "Fudgy Brownies"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-21T10:05:32Z"
    },
    {
      "review_id": "575162f4d5b1eb592d283341042291e6",
      "description": "The pepperoni pizza should be non spicy. Why change the paste to spicy ?",
      "highlighted_description": "The pepperoni pizza should be non spicy. Why change the paste to spicy ?",
      "avatar_title": "Mia",
      "rating": 1,
      "posted_at": "2025-08-08T13:01:53Z",
      "ordered": "Ordered: 1-for-1 Regular Mac & Cheesy Pizza",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-08T13:02:54Z",
      "item_ratings": [
        {
          "item_id": "SGITE20250804180938521173",
          "rating": -1,
          "item_name": "1-for-1 Regular Mac & Cheesy Pizza"
        },
        {
          "item_id": "SGITE20250430105239891966",
          "rating": -1,
          "item_name": "Chickensaurus"
        },
        {
          "item_id": "SGITE20220513035333165815",
          "rating": -1,
          "item_name": "Awesome Foursome"
        },
        {
          "item_id": "SGITE20220513035333190417",
          "rating": -1,
          "item_name": "Simply Cheese Pizza"
        },
        {
          "item_id": "SGITE20250430105241296503",
          "rating": -1,
          "item_name": "Chickensaurus"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-15T13:01:53Z"
    },
    {
      "review_id": "001a01711b7b79c3ee0b42e233267f5b",
      "description": "Great size pizza, and the square that came with the chicken bites was great.",
      "highlighted_description": "Great size pizza, and the square that came with the chicken bites was great.",
      "avatar_title": "Thomas",
      "rating": 4,
      "posted_at": "2025-08-06T11:48:13Z",
      "ordered": "Ordered: Chicken Pepperoni",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-08-06T11:48:59Z",
      "item_ratings": [
        {
          "item_id": "SGITE20250430105237595826",
          "rating": 1,
          "item_name": "Chicken Pepperoni"
        },
        {
          "item_id": "SGITE20220513035332323111",
          "rating": -1,
          "item_name": "Chilli Flakes"
        },
        {
          "item_id": "SGITE20250430105238232855",
          "rating": -1,
          "item_name": "My Domino's Box Simply Cheese"
        },
        {
          "item_id": "SGITE20250430105240254788",
          "rating": -1,
          "item_name": "1-for-1 Xtra Large Shawarma"
        },
        {
          "item_id": "SGITE20250430105241831489",
          "rating": -1,
          "item_name": "My Dominos Box Meatzza"
        }
      ],
      "status": "",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-08-13T11:48:13Z"
    },
    {
      "review_id": "3038ff6631168ff72681799577259507",
      "description": "In the foursome awesome that we ordered instead of the cinnamon breadstick we were given garlic breadstick..",
      "highlighted_description": "In the foursome awesome that we ordered instead of the cinnamon breadstick we were given garlic breadstick..",
      "avatar_title": "just i.",
      "rating": 2,
      "posted_at": "2025-03-31T09:50:38Z",
      "ordered": "Ordered: 1-for-1 Large Pizzas, Awesome Foursome",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-03-31T09:50:38Z",
      "item_ratings": [
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035333165815",
          "rating": -1,
          "item_name": "Awesome Foursome"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20230120092248026993",
          "rating": -1,
          "item_name": "1-for-1 XL Pizzas"
        }
      ],
      "status": "",
      "reviews_madeby_user": "4 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-04-07T09:50:38Z"
    },
    {
      "review_id": "3be6a6b55bb5b8171584a85e891f6044",
      "description": "It's so nasty, I don't think I'll choose it again",
      "highlighted_description": "It's so nasty, I don't think I'll choose it again",
      "avatar_title": "zheng",
      "rating": 1,
      "posted_at": "2025-03-22T16:08:37Z",
      "ordered": "Ordered: Potato Wedges, My Dominos Box Ultimate Hawaiian",
      "liked_count": 0,
      "is_liked": false,
      "is_review_owner": false,
      "order_id": "",
      "has_copy_order": false,
      "content_last_modified_at": "2025-03-22T16:08:37Z",
      "item_ratings": [
        {
          "item_id": "SGITE20240223024615057398",
          "item_name": "Potato Wedges"
        },
        {
          "item_id": "SGITE20240507085125046373",
          "item_name": "My Dominos Box Ultimate Hawaiian"
        },
        {
          "item_id": "SGITE20220513035332410404",
          "rating": -1,
          "item_name": "1-for-1 Large Pizzas"
        },
        {
          "item_id": "SGITE20220513035332468539",
          "rating": -1,
          "item_name": "1-for-1 Regular Pizzas"
        },
        {
          "item_id": "SGITE20230120092248026993",
          "rating": -1,
          "item_name": "1-for-1 XL Pizzas"
        }
      ],
      "status": "",
      "reviews_madeby_user": "8 Reviews",
      "entity_type": "SOURCE_GRABFOOD",
      "edit_review_expiration_time": "2025-03-29T16:08:37Z"
    }
  ],
  "next_token": "eyJQYWdlTnVtYmVyIjoyLCJOZXh0UGFnZUtleSI6Ild6RTNOREkyTlRrM01UY3dNREJkIn0",
  "actor_input": {
    "merchant_id": "4-CZCTJUB3TPUBWA"
  }
}
```

***

### 🛠️ Support

If you encounter any issues or have questions, please reach out via the **Apify Console**,
or visit the [Apify Community Forum](https://forum.apify.com/) for support and collaboration.

# Actor input Schema

## `merchant_id` (type: `string`):

Enter the GrabFood Merchant ID or the merchant URL containing the ID.

## `next_token` (type: `string`):

Pagination token for fetching additional reviews (optional).

## `language` (type: `string`):

Language code for the review output (e.g., en, id, ms).

## Actor input object example

```json
{
  "merchant_id": "4-CZCTJUB3TPUBWA",
  "language": "en-US"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "merchant_id": "4-CZCTJUB3TPUBWA",
    "next_token": "",
    "language": "en-US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("romy/grabfood-reviews-apify").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "merchant_id": "4-CZCTJUB3TPUBWA",
    "next_token": "",
    "language": "en-US",
}

# Run the Actor and wait for it to finish
run = client.actor("romy/grabfood-reviews-apify").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "merchant_id": "4-CZCTJUB3TPUBWA",
  "next_token": "",
  "language": "en-US"
}' |
apify call romy/grabfood-reviews-apify --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=romy/grabfood-reviews-apify",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Grabfood Reviews Apify",
        "description": "Grab Merchant Reviews Scraper is an Actor built to extract customer reviews from GrabFood merchants using Grab’s public API endpoint.It retrieves user reviews, ratings, and pagination tokens for continued data collection — perfect for business analysis, sentiment monitoring, or data aggregation.",
        "version": "0.0",
        "x-build-id": "dVYWliF3DcAcgkH2h"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/romy~grabfood-reviews-apify/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-romy-grabfood-reviews-apify",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/romy~grabfood-reviews-apify/runs": {
            "post": {
                "operationId": "runs-sync-romy-grabfood-reviews-apify",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/romy~grabfood-reviews-apify/run-sync": {
            "post": {
                "operationId": "run-sync-romy-grabfood-reviews-apify",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "merchant_id"
                ],
                "properties": {
                    "merchant_id": {
                        "title": "Merchant ID",
                        "type": "string",
                        "description": "Enter the GrabFood Merchant ID or the merchant URL containing the ID."
                    },
                    "next_token": {
                        "title": "Next Token",
                        "type": "string",
                        "description": "Pagination token for fetching additional reviews (optional)."
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Language code for the review output (e.g., en, id, ms)."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
