ToastTab APItoasttab.com ↗
Search Toast restaurants by location, retrieve full profiles with hours and contact info, and fetch complete menus with item names, descriptions, and prices.
What is the ToastTab API?
This API provides 3 endpoints for accessing restaurant and menu data from ToastTab.com. Use search_restaurants to find nearby restaurants by latitude/longitude with optional keyword filtering, get_restaurant_details to pull a full restaurant profile including address, phone, schedule, and cuisine type, and get_menu_items to retrieve structured menus with category groupings, item names, descriptions, and prices.
curl -X GET 'https://api.parse.bot/scraper/fa87477a-6532-42f5-b8b8-57ccbe16894e/search_restaurants?query=pizza&latitude=40.758896&longitude=-73.985130' \ -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 toasttab-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: ToastTab SDK — discover restaurants, inspect details, browse menus."""
from parse_apis.toasttab_local_api import ToastTab, RestaurantNotFound
client = ToastTab()
# Search for nearby restaurants by coordinates (Times Square, NYC)
for restaurant in client.restaurants.search(latitude=40.758896, longitude=-73.985130, query="pizza", limit=3):
print(restaurant.name, restaurant.cuisine, restaurant.slug)
# Drill down: get full details for one restaurant
first = client.restaurants.search(latitude=40.758896, longitude=-73.985130, limit=1).first()
if first:
detail = client.restaurants.get(slug=first.slug)
print(detail.name, detail.location.latitude, detail.location.longitude)
# Browse the menu for that restaurant
if first:
menu = first.menu()
print(f"Total items: {menu.count}")
for section in menu.menus:
for group in section.groups:
print(f" {group.name}: {len(group.items)} items")
for item in group.items[:2]:
print(f" - {item.name} ${item.prices[0]}")
# Typed error handling
try:
client.restaurants.get(slug="nonexistent-restaurant-xyz")
except RestaurantNotFound as exc:
print(f"Not found: {exc.slug}")
print("exercised: restaurants.search / restaurants.get / restaurant.menu")
Search for restaurants by geographic coordinates and optional query string. Returns up to 20 nearby restaurants with basic info including name, cuisine, slug, and location. Results are ordered by proximity to the specified coordinates.
| Param | Type | Description |
|---|---|---|
| query | string | Optional keyword to filter restaurants by name or cuisine |
| latituderequired | number | Latitude of the search center |
| longituderequired | number | Longitude of the search center |
{
"type": "object",
"fields": {
"restaurants": "array of restaurant objects with name, guid, slug, cuisine, image, and location"
},
"sample": {
"data": {
"restaurants": [
{
"guid": "f0359aa2-daf0-4e60-93de-872ab38696bb",
"name": "Bond 45 - NY 004 - BHV - 221 W 46th St",
"slug": "bond-45-ny-221-w-46th-st",
"image": null,
"cuisine": "Italian",
"location": {
"latitude": 40.759254,
"longitude": -73.98631
}
}
]
},
"status": "success"
}
}About the ToastTab API
Search and Discovery
The search_restaurants endpoint accepts a latitude and longitude (both required) plus an optional query string to filter by name or cuisine. It returns up to 20 results per call, each including a name, guid, slug, cuisineType, image, and location object. The slug and guid returned here feed directly into the other two endpoints.
Restaurant Details
get_restaurant_details takes a restaurant slug (for example, the-lost-whale) and returns a full profile: guid, name, cuisineType, a description string, and a location object with address1, city, state, zip, phone, latitude, and longitude. It also returns a schedule object containing upcoming daily schedules and service periods, making it useful for determining current operating hours.
Menu Data
get_menu_items accepts either a guid or a slug — at least one must be provided. The response includes a menus array structured into category groups, each containing items with names, descriptions, and prices. The groupings array enumerates menu sections with item counts, and both count and totalCount fields give item totals. This makes it straightforward to reconstruct a full, categorized menu view for any Toast-powered restaurant.
The ToastTab API is a managed, monitored endpoint for toasttab.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when toasttab.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 toasttab.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 local restaurant discovery app using latitude/longitude search and cuisine filtering
- Aggregate and compare menu prices across multiple restaurants in a given area
- Display current operating hours for Toast-powered restaurants using the
schedulefield - Create a menu-embedding integration for food ordering or reservation tools
- Populate a restaurant directory with addresses, phone numbers, and cuisine categories
- Monitor menu changes over time by periodically fetching
get_menu_itemsfor tracked restaurants - Enrich a mapping application with nearby restaurant pins using returned location coordinates
| 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 Toast have an official public developer API?+
What does `get_menu_items` return, and how is it structured?+
menus array where each menu contains groups of items. Each item includes its name, description, and price. The groupings array lists category sections with item counts, and totalCount gives the aggregate item count across all menus. You can look up by either guid or slug; at least one must be supplied.