Restaurant Review Aggregator avatar

Restaurant Review Aggregator

Try for free

Pay $1.50 for 1,000 Reviews

Go to Store
Restaurant Review Aggregator

Restaurant Review Aggregator

tri_angle/restaurant-review-aggregator
Try for free

Pay $1.50 for 1,000 Reviews

Add restaurant names and get reviews from Yelp, Google Maps, Doordash, UberEats, Tripadvisor, and Facebook. Extract review text, place address, rating, date, reviewer's name. Export reviews in JSON, CSV, HTML, use API, schedule and monitor runs or integrate reviews data with other tools.

You can access the Restaurant Review Aggregator programmatically from your own applications by using the Apify API. You can choose the language preference from below. To use the Apify API, youā€™ll need an Apify account and your API token, found in Integrations settings in Apify Console.

1{
2  "openapi": "3.0.1",
3  "info": {
4    "version": "0.0",
5    "x-build-id": "IQJJomft6nDPCVzs4"
6  },
7  "servers": [
8    {
9      "url": "https://api.apify.com/v2"
10    }
11  ],
12  "paths": {
13    "/acts/tri_angle~restaurant-review-aggregator/run-sync-get-dataset-items": {
14      "post": {
15        "operationId": "run-sync-get-dataset-items-tri_angle-restaurant-review-aggregator",
16        "x-openai-isConsequential": false,
17        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
18        "tags": [
19          "Run Actor"
20        ],
21        "requestBody": {
22          "required": true,
23          "content": {
24            "application/json": {
25              "schema": {
26                "$ref": "#/components/schemas/inputSchema"
27              }
28            }
29          }
30        },
31        "parameters": [
32          {
33            "name": "token",
34            "in": "query",
35            "required": true,
36            "schema": {
37              "type": "string"
38            },
39            "description": "Enter your Apify token here"
40          }
41        ],
42        "responses": {
43          "200": {
44            "description": "OK"
45          }
46        }
47      }
48    },
49    "/acts/tri_angle~restaurant-review-aggregator/runs": {
50      "post": {
51        "operationId": "runs-sync-tri_angle-restaurant-review-aggregator",
52        "x-openai-isConsequential": false,
53        "summary": "Executes an Actor and returns information about the initiated run in response.",
54        "tags": [
55          "Run Actor"
56        ],
57        "requestBody": {
58          "required": true,
59          "content": {
60            "application/json": {
61              "schema": {
62                "$ref": "#/components/schemas/inputSchema"
63              }
64            }
65          }
66        },
67        "parameters": [
68          {
69            "name": "token",
70            "in": "query",
71            "required": true,
72            "schema": {
73              "type": "string"
74            },
75            "description": "Enter your Apify token here"
76          }
77        ],
78        "responses": {
79          "200": {
80            "description": "OK",
81            "content": {
82              "application/json": {
83                "schema": {
84                  "$ref": "#/components/schemas/runsResponseSchema"
85                }
86              }
87            }
88          }
89        }
90      }
91    },
92    "/acts/tri_angle~restaurant-review-aggregator/run-sync": {
93      "post": {
94        "operationId": "run-sync-tri_angle-restaurant-review-aggregator",
95        "x-openai-isConsequential": false,
96        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
97        "tags": [
98          "Run Actor"
99        ],
100        "requestBody": {
101          "required": true,
102          "content": {
103            "application/json": {
104              "schema": {
105                "$ref": "#/components/schemas/inputSchema"
106              }
107            }
108          }
109        },
110        "parameters": [
111          {
112            "name": "token",
113            "in": "query",
114            "required": true,
115            "schema": {
116              "type": "string"
117            },
118            "description": "Enter your Apify token here"
119          }
120        ],
121        "responses": {
122          "200": {
123            "description": "OK"
124          }
125        }
126      }
127    }
128  },
129  "components": {
130    "schemas": {
131      "inputSchema": {
132        "type": "object",
133        "properties": {
134          "keywords": {
135            "title": "Search keywords",
136            "type": "array",
137            "description": "Keywords to search on Google Maps.",
138            "items": {
139              "type": "string"
140            }
141          },
142          "checkNames": {
143            "title": "Check place names",
144            "type": "boolean",
145            "description": "Filter out places found on Google Maps whose name is too far from all the search keywords or the given names.",
146            "default": false
147          },
148          "requireExactNameMatch": {
149            "title": "The name must contain exactly the keyword",
150            "type": "boolean",
151            "description": "Only include places whose name contains the exact keyword or one of the given names (case insensitive). Does nothing if \"check place titles\" is not selected.",
152            "default": false
153          },
154          "altMatchingNames": {
155            "title": "Alternative names for title matching (separated by comma)",
156            "type": "array",
157            "description": "Allows to specify alternative names (to the right, separated by comma) for each place (to the left). Ignored if \"checkTitle\" is not selected.",
158            "items": {
159              "type": "object",
160              "required": [
161                "key",
162                "value"
163              ],
164              "properties": {
165                "key": {
166                  "type": "string",
167                  "title": "Key"
168                },
169                "value": {
170                  "type": "string",
171                  "title": "Value"
172                }
173              }
174            }
175          },
176          "location": {
177            "title": "Search location",
178            "type": "string",
179            "description": "Location for the Google Maps search. Use simple locations, e.g., city and country."
180          },
181          "deeperCityScrape": {
182            "title": "Deeper city scrape",
183            "type": "boolean",
184            "description": "Extract more places inside each city in a region, from Google Maps (more expensive).",
185            "default": false
186          },
187          "maxPlaces": {
188            "title": "Limit the number of places scraped with Google Maps",
189            "minimum": 1,
190            "type": "integer",
191            "description": "Only considered if searching places using a keyword. If you want to scrape all available places, set this value to <code>9999999</code>. If the number is less than <code>200</code>, <code>deeperCityScrape</code> will be disabled."
192          },
193          "startUrls": {
194            "title": "Google Maps start URLs",
195            "type": "array",
196            "description": "The URLs of the Google Maps pages to start from. Only URLs containing the substring \"/maps/search\" support using the faster Google Maps Extractor. If specified, keyword and other search parameters will be ignored, except for Place IDs.",
197            "items": {
198              "type": "object",
199              "required": [
200                "url"
201              ],
202              "properties": {
203                "url": {
204                  "type": "string",
205                  "title": "URL of a web page",
206                  "format": "uri"
207                }
208              }
209            }
210          },
211          "startIds": {
212            "title": "Google Maps start Place IDs",
213            "type": "array",
214            "description": "Google Maps IDs to start from, e.g., `ChIJ9WHIk0RDwokRepvvClAy9Ss`. They will be converted to URLs and added to possible existing start URLs, and they require using the regular Google Maps scraper (slower). If specified, keyword and other search parameters will be ignored, except for Start URLs.",
215            "items": {
216              "type": "string"
217            }
218          },
219          "providers": {
220            "title": "Review providers",
221            "type": "array",
222            "description": "Select the providers to scrape for reviews. Even if you deselect Google Maps, it will still be used to scrape the places at the beginning. If omitted, all the providers will be automatically selected.",
223            "items": {
224              "type": "string",
225              "enum": [
226                "google-maps",
227                "tripadvisor",
228                "yelp",
229                "facebook",
230                "uber-eats",
231                "door-dash"
232              ],
233              "enumTitles": [
234                "Google Maps",
235                "Tripadvisor",
236                "Yelp",
237                "Facebook",
238                "Uber Eats",
239                "DoorDash"
240              ]
241            }
242          },
243          "maxReviewsPerPlaceAndProvider": {
244            "title": "Max number of reviews per place/provider",
245            "type": "integer",
246            "description": "The number of reviews to scrape for each place, from each provider. Some providers may not support scraping a very high number of reviews: the number will be clipped.",
247            "default": 10
248          },
249          "reviewsFromDate": {
250            "title": "Scrape reviews from date (only for Google Maps and Tripadvisor)",
251            "type": "string",
252            "description": "Scrape only reviews from a given date. Some providers may not be compatible with this feature."
253          },
254          "scrapeReviewPictures": {
255            "title": "Scrape review pictures",
256            "type": "boolean",
257            "description": "Add review pictures into the output. Currently supported providers: Facebook, Google Maps, TripAdvisor, Yelp.",
258            "default": false
259          },
260          "scrapeReviewResponses": {
261            "title": "Scrape owner's responses to reviews",
262            "type": "boolean",
263            "description": "Add owner's responses to reviews into the output. Currently supported providers: Google Maps, TripAdvisor, Yelp.",
264            "default": false
265          }
266        }
267      },
268      "runsResponseSchema": {
269        "type": "object",
270        "properties": {
271          "data": {
272            "type": "object",
273            "properties": {
274              "id": {
275                "type": "string"
276              },
277              "actId": {
278                "type": "string"
279              },
280              "userId": {
281                "type": "string"
282              },
283              "startedAt": {
284                "type": "string",
285                "format": "date-time",
286                "example": "2025-01-08T00:00:00.000Z"
287              },
288              "finishedAt": {
289                "type": "string",
290                "format": "date-time",
291                "example": "2025-01-08T00:00:00.000Z"
292              },
293              "status": {
294                "type": "string",
295                "example": "READY"
296              },
297              "meta": {
298                "type": "object",
299                "properties": {
300                  "origin": {
301                    "type": "string",
302                    "example": "API"
303                  },
304                  "userAgent": {
305                    "type": "string"
306                  }
307                }
308              },
309              "stats": {
310                "type": "object",
311                "properties": {
312                  "inputBodyLen": {
313                    "type": "integer",
314                    "example": 2000
315                  },
316                  "rebootCount": {
317                    "type": "integer",
318                    "example": 0
319                  },
320                  "restartCount": {
321                    "type": "integer",
322                    "example": 0
323                  },
324                  "resurrectCount": {
325                    "type": "integer",
326                    "example": 0
327                  },
328                  "computeUnits": {
329                    "type": "integer",
330                    "example": 0
331                  }
332                }
333              },
334              "options": {
335                "type": "object",
336                "properties": {
337                  "build": {
338                    "type": "string",
339                    "example": "latest"
340                  },
341                  "timeoutSecs": {
342                    "type": "integer",
343                    "example": 300
344                  },
345                  "memoryMbytes": {
346                    "type": "integer",
347                    "example": 1024
348                  },
349                  "diskMbytes": {
350                    "type": "integer",
351                    "example": 2048
352                  }
353                }
354              },
355              "buildId": {
356                "type": "string"
357              },
358              "defaultKeyValueStoreId": {
359                "type": "string"
360              },
361              "defaultDatasetId": {
362                "type": "string"
363              },
364              "defaultRequestQueueId": {
365                "type": "string"
366              },
367              "buildNumber": {
368                "type": "string",
369                "example": "1.0.0"
370              },
371              "containerUrl": {
372                "type": "string"
373              },
374              "usage": {
375                "type": "object",
376                "properties": {
377                  "ACTOR_COMPUTE_UNITS": {
378                    "type": "integer",
379                    "example": 0
380                  },
381                  "DATASET_READS": {
382                    "type": "integer",
383                    "example": 0
384                  },
385                  "DATASET_WRITES": {
386                    "type": "integer",
387                    "example": 0
388                  },
389                  "KEY_VALUE_STORE_READS": {
390                    "type": "integer",
391                    "example": 0
392                  },
393                  "KEY_VALUE_STORE_WRITES": {
394                    "type": "integer",
395                    "example": 1
396                  },
397                  "KEY_VALUE_STORE_LISTS": {
398                    "type": "integer",
399                    "example": 0
400                  },
401                  "REQUEST_QUEUE_READS": {
402                    "type": "integer",
403                    "example": 0
404                  },
405                  "REQUEST_QUEUE_WRITES": {
406                    "type": "integer",
407                    "example": 0
408                  },
409                  "DATA_TRANSFER_INTERNAL_GBYTES": {
410                    "type": "integer",
411                    "example": 0
412                  },
413                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
414                    "type": "integer",
415                    "example": 0
416                  },
417                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
418                    "type": "integer",
419                    "example": 0
420                  },
421                  "PROXY_SERPS": {
422                    "type": "integer",
423                    "example": 0
424                  }
425                }
426              },
427              "usageTotalUsd": {
428                "type": "number",
429                "example": 0.00005
430              },
431              "usageUsd": {
432                "type": "object",
433                "properties": {
434                  "ACTOR_COMPUTE_UNITS": {
435                    "type": "integer",
436                    "example": 0
437                  },
438                  "DATASET_READS": {
439                    "type": "integer",
440                    "example": 0
441                  },
442                  "DATASET_WRITES": {
443                    "type": "integer",
444                    "example": 0
445                  },
446                  "KEY_VALUE_STORE_READS": {
447                    "type": "integer",
448                    "example": 0
449                  },
450                  "KEY_VALUE_STORE_WRITES": {
451                    "type": "number",
452                    "example": 0.00005
453                  },
454                  "KEY_VALUE_STORE_LISTS": {
455                    "type": "integer",
456                    "example": 0
457                  },
458                  "REQUEST_QUEUE_READS": {
459                    "type": "integer",
460                    "example": 0
461                  },
462                  "REQUEST_QUEUE_WRITES": {
463                    "type": "integer",
464                    "example": 0
465                  },
466                  "DATA_TRANSFER_INTERNAL_GBYTES": {
467                    "type": "integer",
468                    "example": 0
469                  },
470                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
471                    "type": "integer",
472                    "example": 0
473                  },
474                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
475                    "type": "integer",
476                    "example": 0
477                  },
478                  "PROXY_SERPS": {
479                    "type": "integer",
480                    "example": 0
481                  }
482                }
483              }
484            }
485          }
486        }
487      }
488    }
489  }
490}

šŸ½ Restaurant Review Aggregator OpenAPI definition

OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.

OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.

By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.

You can download the OpenAPI definitions for Restaurant Review Aggregator from the options below:

If youā€™d like to learn more about how OpenAPI powers GPTs, read our blog post.

You can also check out our other API clients:

Developer
Maintained by Apify

Actor Metrics

  • 30 monthly users

  • 10 stars

  • >99% runs succeeded

  • 5.7 days response time

  • Created in Apr 2024

  • Modified 2 months ago