OpenRice Scraper – Hong Kong Restaurants, Ratings & Reviews avatar

OpenRice Scraper – Hong Kong Restaurants, Ratings & Reviews

Pricing

from $2.00 / 1,000 restaurant results

Go to Apify Store
OpenRice Scraper – Hong Kong Restaurants, Ratings & Reviews

OpenRice Scraper – Hong Kong Restaurants, Ratings & Reviews

Scrape OpenRice (Hong Kong's largest restaurant guide) without an API: name, district, cuisine, rating, review count, price range, address and phone. Bulk-paste keywords; export JSON/CSV/Excel. Great for site selection and F&B market research.

Pricing

from $2.00 / 1,000 restaurant results

Rating

0.0

(0)

Developer

Chad

Chad

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

OpenRice Scraper | Hong Kong Restaurant Data, Ratings, Districts & Cuisines (No API)

Scrape restaurant search listings from OpenRice Hong Kong, including restaurant name, cuisine, district, rating, review count, address, phone number, image URLs and more.

  • Public JSON API — no login, no token, no browser required
  • The only stable option: the sole competitor on Apify Store has been stuck under UNDER_MAINTENANCE for a long time, with 30/38 runs timing out
  • Bulk keyword search: run multiple keywords in one job, with optional district / cuisine ID filters
  • Structured output: snake_case fields, missing values filled with null, every row stamped with an ISO 8601 timestamp

Output fields

FieldTypeDescriptionVersion
poi_idstringOpenRice restaurant unique IDv1.0
namestring | nullRestaurant name (Chinese)v1.0
cuisinestring[] | nullCuisine array (e.g. ["Japanese", "Sushi/Sashimi"])v1.0
districtstring | nullDistrict name (e.g. "Causeway Bay")v1.0
price_rangestring | nullPrice range: $ / $$ / $$$ / $$$$v1.0
ratingnumber | nullOpenRice overall rating (e.g. 3.87)v1.0
review_countinteger | nullNumber of reviewsv1.0
bookmark_countinteger | nullNumber of users who bookmarked the restaurantv1.0
addressstring | nullRestaurant address (Chinese)v1.0
phonestring | nullPhone number (first one)v1.0
opening_hoursstring | nullOpening hours as a JSON string (v1.1 will switch to a human-readable format)v1.0
image_urlsstring[]Array of restaurant image URLs ([] if none)v1.0
restaurant_urlstringFull URL of the OpenRice restaurant pagev1.0
source_modestringData source mode (currently "search")v1.0
source_querystringThe search keyword that produced this rowv1.0
scraped_atstringScrape timestamp (ISO 8601, UTC)v1.0

Modes

modeInputOutputBilling event
search (v1.0)keywords[] + optional district / cuisine filtersSearch listing resultssearch-listing ($0.002 per row)
detail (v1.1, in development)restaurantIds[] or restaurantUrls[]Full restaurant detailproduct-detail

Input parameters

ParameterTypeRequiredDefaultDescription
keywordsstring[]Search keywords (restaurant name / cuisine), up to 50
bulkInputstringOne keyword per line, automatically merged into keywords
districtstringDistrict ID (e.g. 1019 = Causeway Bay, see below)
cuisinestringCuisine ID (e.g. 2009 = Japanese, see below)
maxItemsinteger50Max results per keyword (1-500)
proxyConfigurationobjectdisabledApify Proxy or a custom proxy

Common district IDs

districtIdDistrict
1999Hong Kong Island (all)
1019Causeway Bay
1001Sheung Wan / Central
2999Kowloon (all)
2010Mong Kok
2001Tsim Sha Tsui
3999New Territories (all)

For the full list, call GET https://www.openrice.com/api/v2/metadata/region/all?uiLang=zh&uiCity=hongkong.

Common cuisine IDs

cuisineIdCuisine
1004Cantonese / HK-style
2009Japanese
4000Western
1007Chinese
2001Korean

Input examples

1. Search for sushi (default settings)

{
"keywords": ["sushi"],
"maxItems": 20
}

2. BBQ filtered to Central/Sheung Wan (districtId=1001)

{
"keywords": ["bbq"],
"district": "1001",
"maxItems": 20
}

3. Multiple keywords in one run

{
"keywords": ["japanese food", "korean bbq"],
"maxItems": 50
}

4. Japanese restaurants in Mong Kok (district + cuisine filter combined)

{
"keywords": ["sushi"],
"district": "2010",
"cuisine": "2009",
"maxItems": 30
}

5. Bulk-paste multiple keywords

{
"bulkInput": "sushi\nbbq\nhot pot\ncha chaan teng\ndim sum",
"maxItems": 30
}

Notes

  • Reliability is the selling point: the only competitor has been stuck UNDER_MAINTENANCE for a long time (30/38 runs timing out); this Actor uses a pure JSON API, no browser, and exponential-backoff retries — finishing the job is the whole point
  • Billing timing: Actor.charge() is only called after data has been successfully pushed to the dataset; failures mid-run are never billed
  • Consecutive empty-page detection: the run auto-stops if 5 consecutive pages return no new data, avoiding wasted compute
  • detail mode (v1.1): OpenRice's POI detail API endpoint is not currently public — all probe requests return 404; will be added once found or reverse-engineered

FAQ

Q: Why are some fields null? A: Some OpenRice restaurant listings have incomplete data (e.g. no phone number, no address filled in). This Actor always fills missing values with null instead of dropping the field, so every row keeps a consistent structure.

Q: What format is opening_hours in? A: In v1.0 it's a JSON string containing per-day fields like dayOfWeek (1=Sunday, 2=Monday...7=Saturday), period1Start, period1End, is24hr, isClose, etc. v1.1 will switch to a human-readable format.

Q: Can I search a specific district only? A: Yes — fill in district with a districtId (e.g. 1019 = Causeway Bay). The full districtId list is available from the metadata API.

Q: Is proxy supported? A: Yes, both Apify Proxy and a custom proxy are supported; disabled by default since direct connections already scrape reliably.

Q: Does image_urls include all photos? A: It includes the restaurant's main photo (doorPhoto) plus the latest images returned in the search listing (usually 3-5). The full photo album requires detail mode (v1.1).

Q: Can I scrape review content? A: A reviews mode is planned for v1.1 and is not yet implemented.


Deploy

npm install
npm run build
apify push

Local testing:

$apify run --input='{"keywords":["sushi"],"maxItems":5}'

Disclaimer

This tool is intended only for lawful research and analysis of publicly accessible data. Users must comply with OpenRice's Terms of Service, avoid mass scraping, avoid use for commercial competition, and avoid storing personal data. The author bears no responsibility for how users choose to use this tool.


OpenRice scraper, Hong Kong restaurants, HK dining data, restaurant ratings, cuisine search, OpenRice API, Hong Kong food data