↑ ↓ to move ↵ to open
Zomato API reference

Zomato Reviews

zomato.restaurant.reviews

A restaurant's public reviews, newest first: rating, verdict and text, for dining or delivery.

At a glance

Endpoint ID
zomato.restaurant.reviews
Price
2 credits per call; failed calls are free
Runs for up to
30 seconds
Request
POST /execute
Run an endpoint
MCP tool when pinned
zomato__restaurant__reviews
Pin tools
OpenAPI
openapi.json
Download

Request

Send the endpoint ID as capability and its fields as input. Set UPSCRAPE_API_KEY to your key first.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "zomato.restaurant.reviews",  "input": {    "restaurant_id": "18439027"  }}'

Input

FieldTypeRequiredWhat it doesExample
res_id string one of Another name for restaurant_id, kept for older requests.
restaurant_id string one of The restaurant's numeric Zomato ID. 18439027
url string one of The restaurant's Zomato link, as an alternative to the ID.
filter string no Dining or delivery reviews. dining · delivery
limit integer no The most reviews to return. Zomato serves reviews five at a time.
page integer no Which page of reviews to start from. Pass next_page from the last response to continue.
sort string no Newest first. newest

Response

A finished call answers with HTTP 200; the data is in results[0].data, and billing.credits_charged is what it cost. A call still running after the wait answers 202: see jobs and results.

This is results[0].data from a real run:

results[0].data
{  "count": 20,  "filter": "dining",  "res_id": "18439027",  "sort": "newest",  "pagination": {    "has_more": true,    "next_page": 5,    "page": 1,    "total_pages": 526  },  "reviews": [    {      "rating": 5,      "experience": "dining_order",      "rating_text": "Excellent",      "rating_type": "DINING",      "restaurant_id": "18439027",      "review_id": "523048033",      "review_text": "great experience"    },    {      "rating": 5,      "experience": "dining_order",      "rating_text": "Excellent",      "rating_type": "DINING",      "restaurant_id": "18439027",      "review_id": "522878366",      "review_text": "Awosom serves Dheer"    }  ]}

Fields

FieldTypeWhat it isExample
reviews[].rating integer The rating, out of 5. 5
reviews[].rating_text string The rating as a word, such as Excellent. Excellent
reviews[].review_text string The review's text. great experience
reviews[].experience string Whether the review is about dining in or delivery. dining_order
reviews[].rating_type string Whether the rating is for dining or delivery. DINING
reviews[].restaurant_id string Zomato's ID for the restaurant. 18439027
reviews[].review_id string Zomato's ID for the review. 523048033
reviews array The reviews. 20 records
count integer How many results this response holds. 20
filter string Which reviews were requested, dining or delivery. dining
pagination object How to get more pages. 4 fields
pagination.has_more boolean Whether more results follow this page. true
pagination.next_page integer The page number to request next. 5
pagination.page integer The page this response holds. 1
pagination.total_pages integer How many pages of results there are. 526
res_id string Zomato's ID for the restaurant. 18439027
sort string The order of the reviews, such as newest first. newest

If a call fails

A failed call costs nothing. The response carries an error.code you can branch on; Errors and retries lists every code and which ones to retry.

Other Zomato endpoints

Something missing or unclear? Ask the team that builds the Zomato endpoints.