hungerstation.com APIhungerstation.com ↗
Access HungerStation restaurant data for Saudi Arabia. Browse cities, retrieve full menus, ratings, cuisine types, and pricing via 2 structured endpoints.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/77b0aebd-1e5f-4d91-9b11-aa6933c36428/get_cities' \ -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 hungerstation-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.
"""Walkthrough: HungerStation API — browse Saudi Arabia restaurants by city."""
from parse_apis.hungerstation_com_api import HungerStation, CityNotFound
client = HungerStation()
# List all cities served by HungerStation
for city in client.cities.list(limit=5):
print(city.city_name, f"({city.restaurant_count} pages)")
# Drill into a specific city's restaurants via constructible City
riyadh = client.city(city_slug="riyadh")
for restaurant in riyadh.restaurants.list(limit=3):
print(restaurant.name, restaurant.rating, restaurant.cuisine_type)
if restaurant.menu_items:
item = restaurant.menu_items[0]
print(f" Menu: {item.name} - {item.price}")
# Access nested location details
first = riyadh.restaurants.list(limit=1).first()
if first:
print(first.location.city, first.location.neighborhood)
# Handle city not found error
try:
bad_city = client.city(city_slug="nonexistent-city-xyz")
for r in bad_city.restaurants.list(limit=1):
print(r.name)
except CityNotFound as exc:
print(f"City not found: {exc.city_slug}")
print("exercised: cities.list / city().restaurants.list / location access / CityNotFound")
Returns all cities served by HungerStation in Saudi Arabia. Each city includes its display name, URL slug for use with other endpoints, and the number of available restaurant pages (districts). The restaurant_count field represents the number of paginated result pages available for that city via get_restaurants_by_city.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer, total number of cities",
"cities": "array of city objects with city_name, city_slug, and restaurant_count"
},
"sample": {
"data": {
"total": 115,
"cities": [
{
"city_name": "Riyadh",
"city_slug": "riyadh",
"restaurant_count": 171
},
{
"city_name": "Jeddah",
"city_slug": "jeddah",
"restaurant_count": 112
},
{
"city_name": "Dammam",
"city_slug": "dammam",
"restaurant_count": 80
}
]
},
"status": "success"
}
}About the hungerstation.com API
The HungerStation API provides structured access to Saudi Arabia's food delivery platform across 2 endpoints. Use get_cities to retrieve every served city with its slug and district count, then call get_restaurants_by_city to pull up to 50 restaurants per district page — each record including name, cuisine type, rating, location, operational status, and complete menu items with prices and descriptions.
City Coverage
The get_cities endpoint requires no parameters and returns the full list of Saudi Arabian cities active on HungerStation. Each city object includes a city_name, a city_slug for use as an input to the restaurants endpoint, and a restaurant_count indicating how many district pages exist for that city. The top-level total field gives the count of covered cities.
Restaurant and Menu Data
The get_restaurants_by_city endpoint accepts a required city_slug (e.g. riyadh, jeddah, dammam) and an optional page integer. Pagination is district-based: each page maps to one district within the city and returns up to 50 restaurant objects. The response includes num_pages so you can iterate all districts, total_count for the current page, and the full restaurants array.
Each restaurant object carries name, logo URL, cuisine type, rating, geographic location, and operational status. Crucially, it also includes menu_items — an array of individual items with names, prices, and descriptions — making this endpoint useful for menu aggregation and price monitoring without any secondary calls.
Pagination and Scope
City slugs must come from get_cities; passing an arbitrary string will not resolve correctly. Page numbers are 1-indexed, and the num_pages field in the response tells you the upper bound per city. HungerStation operates exclusively in Saudi Arabia, so coverage is limited to that market.
The hungerstation.com API is a managed, monitored endpoint for hungerstation.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hungerstation.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 hungerstation.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 cross-city menu comparison tool using cuisine type and menu_items price fields.
- Monitor restaurant operational status changes across Riyadh or Jeddah districts over time.
- Aggregate cuisine diversity statistics per city using the cuisine type field from get_restaurants_by_city.
- Populate a food-discovery app with restaurant ratings and logos for Saudi Arabian cities.
- Track menu item price changes for specific restaurants by diffing repeated API responses.
- Generate a city-level restaurant density map using location data and num_pages per city.
| 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.