OpenRice APIopenrice.com ↗
Access OpenRice restaurant search, reviews, booking slots, cuisines, districts, and award winners via a structured API. 8 endpoints covering Hong Kong dining data.
What is the OpenRice API?
The OpenRice API provides 8 endpoints for querying Hong Kong restaurant data including search, reviews, booking availability, and award winners. The search_restaurants endpoint accepts filters for cuisine, district, and sort order, returning paginated results with scores, photos, pricing range, and contact details for each restaurant. Use get_restaurant_details to retrieve opening hours, review counts, and booking widgets for a specific location by POI ID.
curl -X GET 'https://api.parse.bot/scraper/80a6eb52-1dd5-4cab-a7a4-5da1f9c62b89/search_restaurants?rows=5&query=sushi&sort_by=ORScoreDesc&start_at=0&cuisine_id=1004&district_id=1999' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace openrice-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
OpenRice Hong Kong Restaurant Discovery
Get your API key from: https://parse.bot/settings
"""
from parse_apis.openrice_hong_kong_api import OpenRice, Sort, Restaurant, Cuisine
openrice = OpenRice()
# List available cuisines
for cuisine in openrice.cuisines.list(limit=5):
print(cuisine.name, cuisine.count)
# Search for Japanese restaurants sorted by score
for restaurant in openrice.restaurants.search(query="sushi", sort=Sort.OR_SCORE_DESC, limit=3):
print(restaurant.name, restaurant.score_overall, restaurant.poi_id)
# Get reviews for this restaurant
for review in restaurant.reviews.list(limit=2):
print(review.title, review.score_overall, review.username)
# Check booking availability
booking = restaurant.booking.get(seats="4")
print(booking.booking_available, booking.suggested_date, booking.suggested_time_slot)
# Get newly opened restaurants
for new_restaurant in openrice.restaurants.new(limit=3):
print(new_restaurant.name, new_restaurant.is_new)
# Get award-winning restaurants
for winner in openrice.restaurants.award_winners(limit=3):
print(winner.name, winner.score_overall)
# Browse districts
for district in openrice.districts.list(limit=5):
print(district.district_id, district.name)
Search for restaurants in Hong Kong with various filters. Returns paginated restaurant results with search metadata and filter options. Each result includes restaurant name, address, phone numbers, pricing range, scores, photos, district, cuisine categories, and booking widget information. Offset-based pagination via start_at; each page returns up to rows results from a total pool indicated by count.
| Param | Type | Description |
|---|---|---|
| rows | integer | Number of results to return per page |
| query | string | Search keyword (restaurant name, food type, etc.) |
| sort_by | string | Sort order for results |
| start_at | integer | Offset for pagination |
| cuisine_id | string | Filter by cuisine ID (use list_cuisines to get IDs) |
| district_id | string | Filter by district ID (use list_districts to get IDs) |
{
"type": "object",
"fields": {
"count": "integer total number of matching restaurants",
"results": "array of restaurant objects with poiId, name, scoreOverall, district, categories, photos, reviewCount",
"searchHeader": "object containing search criteria and metadata",
"totalReturnCount": "integer total number of results that can be paginated through",
"refineSearchFilter": "object containing available filter facets (cuisines, districts, dishes, amenities)"
},
"sample": {
"data": {
"count": 1271,
"results": [
{
"name": "Sushi Rin",
"poiId": 611576,
"district": {
"name": "Sheung Wan",
"districtId": 1001
},
"isNewPoi": false,
"reviewCount": 637,
"scoreOverall": 4.658333
}
],
"searchHeader": {
"type": 0
},
"totalReturnCount": 1271,
"refineSearchFilter": {
"cuisines": [
{
"id": 2009,
"name": "Japanese",
"count": 1248
}
]
}
},
"status": "success"
}
}About the OpenRice API
Search and Filter Restaurants
The search_restaurants endpoint accepts a query string alongside optional filters: cuisine_id (from list_cuisines), district_id (from list_districts), and sort_by. Each result in the results array includes poiId, name, scoreOverall, district, categories, photos, and reviewCount. The refineSearchFilter field in the response exposes available facets — cuisines, districts, dishes, and amenities — which can drive dynamic filter UI without a separate lookup call. Pagination is controlled via start_at and rows.
Restaurant Details and Reviews
get_restaurant_details accepts a poi_id and returns three merged sections: header (name, address, phone, scores, cuisines, photos), status (an openNow boolean plus structured openingHourInfo covering both normal and special hours), and explore (booking widget with available time slots and offers, service categories). get_restaurant_reviews returns paginated review objects including reviewId, scoreOverall, title, body, user, and photos, with total review count exposed via the count field.
Booking Availability
get_booking_info accepts poi_id, an optional date in YYYY-MM-DD format, and an optional seats count. It returns timeSlots (each with timeSlotId, timeSlot, availableSeats, and offer details), availableOffers, poiBookingInfo (min/max seats and date range constraints), and the bookingAvailable and bookingDisabled flags. This endpoint surfaces read-only slot data; submitting an actual reservation requires an authenticated OpenRice session.
Reference Lists and Discovery Endpoints
list_districts returns a hierarchical array of Hong Kong district objects with districtId and nameLangDict, enabling district-based filtering in search. list_cuisines returns cuisine categories with id, name, count, and searchKey. get_new_restaurants and get_award_winners each return paginated restaurant lists — the former flagged with isNewPoi, the latter representing OpenRice Best Restaurant Award recipients — both sharing the same poiId-anchored response shape as search results.
The OpenRice API is a managed, monitored endpoint for openrice.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when openrice.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official openrice.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a Hong Kong dining guide that filters restaurants by district and cuisine using
district_idandcuisine_idparameters. - Display live booking slot availability and offer details for a restaurant using
get_booking_infowith a specific date and seat count. - Aggregate user review sentiment and scores across restaurants using paginated results from
get_restaurant_reviews. - Track newly opened Hong Kong restaurants by polling
get_new_restaurantsand storingisNewPoi-flagged results. - Surface OpenRice award-winning restaurants in a curated recommendation feature using
get_award_winners. - Show accurate opening hours and real-time open/closed status by reading
status.openNowandopeningHourInfofromget_restaurant_details. - Populate cuisine and district filter menus from
list_cuisinesandlist_districtsto drive a search UI without hardcoding IDs.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OpenRice have an official developer API?+
What does `get_restaurant_details` return compared to `search_restaurants`?+
search_restaurants returns summary-level fields — name, scoreOverall, district, categories, photos, and reviewCount — across many restaurants. get_restaurant_details targets a single poi_id and returns deeper data: structured opening hours (including special-day schedules), the openNow boolean, booking widget slot details and offers, full phone and address, and cuisine categories. Use search to discover POI IDs, then detail calls to retrieve complete per-restaurant data.