ChowNow APIchownow.com ↗
Access ChowNow restaurant data via 4 endpoints: search nearby restaurants, retrieve menus with modifiers, get operating hours, delivery zones, and all brand locations.
What is the ChowNow API?
The ChowNow API exposes 4 endpoints covering restaurant discovery, detailed location info, full menus, and multi-location brand data from the ChowNow marketplace. Starting with search_restaurants, you can query by latitude/longitude and filter by name or cuisine, then follow up with get_restaurant_menu to retrieve every category, item price, and modifier for a specific location — all in a single call.
curl -X GET 'https://api.parse.bot/scraper/562b9182-0a10-4d84-81aa-6dcc41aec645/search_restaurants?lat=34.0522&lon=-118.2437&limit=5&query=pizza&offset=0' \ -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 chownow-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.
"""ChowNow SDK — restaurant discovery, details, menus, and company locations."""
from parse_apis.chownow_restaurant_api import ChowNow, RestaurantNotFound
client = ChowNow()
# Search for pizza restaurants near Los Angeles
for restaurant in client.restaurantsummaries.search(query="pizza", lat="34.0522", lon="-118.2437", limit=3):
print(restaurant.name, restaurant.distance, restaurant.cuisines)
# Drill into the first result for full details
summary = client.restaurantsummaries.search(query="pizza", limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.tax_rate, detail.company_id)
# Fetch the menu for this restaurant
menu = detail.menu.get()
print(menu.id, len(menu.menu_categories))
# Look up a company's locations
company = client.companies.get(company_id=summary.restaurant_company_id)
print(company.name, company.is_multi_concept)
# Handle a not-found restaurant gracefully
try:
bad = client.restaurantsummaries.search(query="pizza", limit=1).first()
if bad:
bad_detail = bad.details()
except RestaurantNotFound as exc:
print(f"Restaurant not found: {exc.location_id}")
print("exercised: restaurantsummaries.search / details / menu.get / companies.get")
Search for restaurants near a given location. Returns a paginated list of restaurant summaries with address, cuisine, availability, and distance from the search coordinates. Pagination is offset-based; advance by incrementing offset by limit. The aggregations object contains cuisine facet counts scoped to the current query.
| Param | Type | Description |
|---|---|---|
| lat | string | Latitude of the search location |
| lon | string | Longitude of the search location |
| limit | integer | Maximum number of results to return per page |
| query | string | Search query to filter restaurants by name or cuisine |
| offset | integer | Offset for pagination (advance by limit to get next page) |
{
"type": "object",
"fields": {
"next": "string URL path for next page of results, or null",
"prev": "string URL path for previous page of results, or null",
"limit": "integer page size used",
"total": "integer total number of matching restaurants",
"offset": "integer current offset",
"restaurants": "array of restaurant summary objects with id, name, address, cuisines, distance, and availability",
"aggregations": "object containing cuisine facet counts"
}
}About the ChowNow API
Search and Discovery
The search_restaurants endpoint accepts lat, lon, query, limit, and offset parameters and returns a paginated list of restaurants. Each result includes the restaurant's id, name, address, cuisines, distance from the search coordinates, and current availability. The response also carries total, next, prev, and aggregations — the aggregations object breaks down cuisine facet counts, which is useful for building filter UIs or understanding what food categories are represented in a given area.
Restaurant Details and Fulfillment
get_restaurant_info takes a location_id (obtained from search_restaurants results) and returns a full profile including phone, a structured address object with latitude and longitude, tax_rate, and a fulfillment object that breaks down delivery, pickup, curbside, and dine-in sub-objects each carrying their own hours and configuration. The order_ahead object indicates scheduling availability and time slot data, making it possible to determine whether a location accepts future orders.
Menus and Modifiers
get_restaurant_menu returns the complete menu for a location. The response is structured into menu_categories (each with an id, name, and array of items with prices), modifiers (individual add-ons with their own id, name, and price), and modifier_categories that group modifiers and link them to relevant items. This three-part structure lets you reconstruct the full ordering logic, including required and optional customizations.
Multi-Location Brand Data
get_restaurant_locations accepts a company_id — surfaced as restaurant_company_id in search results or as company_id in get_restaurant_info — and returns all physical locations under that brand. The response includes an is_multi_concept flag indicating whether the company operates more than one restaurant concept, plus a locations array where each entry contains the same full detail available from get_restaurant_info.
The ChowNow API is a managed, monitored endpoint for chownow.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when chownow.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 chownow.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 restaurant discovery map using lat/lon search and cuisine aggregation facets from
search_restaurants - Display real-time delivery and pickup availability by reading the
fulfillmentobject fromget_restaurant_info - Reconstruct a full digital menu with customization logic using
menu_categories,modifiers, andmodifier_categories - Find all locations for a restaurant chain by passing
company_idtoget_restaurant_locations - Compare delivery zone configurations and fees across multiple branches of the same brand
- Identify restaurants accepting future orders by inspecting the
order_aheadscheduling data - Aggregate cuisine-type distribution across a neighborhood using the
aggregationsfacet counts in search results
| 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 ChowNow have an official public developer API?+
What does `get_restaurant_menu` return, and does it include item-level images or nutritional info?+
menu_categories with item names and prices, modifiers with individual add-on prices, and modifier_categories that link modifiers to items. Item-level images and nutritional data are not currently included in the response. You can fork the API on Parse and revise it to add those fields if ChowNow surfaces them for a given location.How do I paginate through search results?+
search_restaurants response includes total, limit, offset, next, and prev fields. Use the offset and limit parameters on subsequent requests to page through results. The next and prev fields return URL path strings (or null at the boundaries) that reflect the appropriate offset for adjacent pages.Does the API return customer reviews or ratings for restaurants?+
Is coverage limited to specific regions or cities?+
distance field in search results is only meaningful when lat and lon coordinates are supplied; without them, distance-based sorting is not applied.