Tock APItock.com ↗
Search Tock restaurants by city and keyword. Get cuisine, address, accolades (Michelin, James Beard), FAQs, and contact details via 2 endpoints.
What is the Tock API?
The Tock API provides 2 endpoints for retrieving restaurant data from exploretock.com. Use search_restaurants to find restaurants by city slug and keyword, returning names, slugs, and image URLs. Use get_restaurant_details to pull a specific restaurant's full profile — including cuisine type, structured address, contact email, website, FAQs, and accolades such as Michelin stars and James Beard awards with year and achievement details.
curl -X GET 'https://api.parse.bot/scraper/56407e7b-33ee-493f-b58a-62046858269c/search_restaurants?city=chicago&limit=5' \ -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 tock-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: Tock Restaurant Search API — discover restaurants and inspect details."""
from parse_apis.tock_restaurant_search_api import Tock, City, RestaurantNotFound
client = Tock()
# Search for restaurants in Chicago — limit caps total items fetched.
for summary in client.restaurants.search(city=City.CHICAGO, limit=5):
print(summary.name, summary.url)
# Drill into one result: take the first match and get full details.
hit = client.restaurants.search(query="sushi", city=City.NEW_YORK, limit=1).first()
if hit:
restaurant = hit.details()
print(restaurant.name, restaurant.cuisine, restaurant.price_range)
print(restaurant.address.street, restaurant.address.city, restaurant.address.state)
for accolade in restaurant.accolades:
print(accolade.type, accolade.year, accolade.rating)
# Direct fetch by slug when the slug is already known.
try:
alinea = client.restaurants.get(slug="alinea")
print(alinea.name, alinea.cuisine)
for faq in alinea.faqs:
print(faq.question, faq.answer[:80])
except RestaurantNotFound as exc:
print(f"Restaurant not found: {exc.slug}")
print("exercised: restaurants.search / summary.details / restaurants.get / error handling")
Search for restaurants on Tock by query keyword and city. Returns restaurant listings from the city browse page. Results include name, slug, URL, and image. The query filters by keyword match against the city's restaurant carousel; an empty query returns all featured restaurants. Pagination is not supported — the limit parameter caps the returned array.
| Param | Type | Description |
|---|---|---|
| city | string | City slug for browsing restaurants (e.g. 'chicago', 'new-york', 'san-francisco') |
| limit | integer | Maximum number of restaurant results to return |
| query | string | Search keyword to filter restaurants (e.g. 'italian', 'sushi', 'steakhouse'). Empty string returns all featured restaurants. |
{
"type": "object",
"fields": {
"city": "string, the city slug searched",
"query": "string, the search keyword used",
"restaurants": "array of restaurant summary objects with slug, name, url, and image_url",
"total_found": "integer, number of restaurants returned"
}
}About the Tock API
Searching Restaurants
The search_restaurants endpoint accepts a city slug (e.g. chicago, new-york, san-francisco), an optional query keyword (e.g. italian, sushi, steakhouse), and an optional limit. It returns a list of restaurant objects, each containing a slug, name, url, and image_url, along with a total_found count. The slug values from these results feed directly into the details endpoint.
Restaurant Detail Fields
The get_restaurant_details endpoint accepts a single required slug and returns a full restaurant profile. Contact fields include email and website. Location is structured as an address object with street, city, state, postal_code, and country. The cuisine field names the restaurant's food category. The accolades array contains objects with type, achievement, rating, year, and icon — covering recognitions like Michelin stars and James Beard awards. A faqs array exposes the question-and-answer content Tock publishes on each restaurant page.
Coverage Notes
City coverage depends on Tock's own restaurant listings, which skew toward major US metropolitan areas and select international cities. The search_restaurants endpoint browses city-level pages and does not return paginated results beyond the limit parameter — if a city has hundreds of listings, setting an appropriate limit is necessary to control response size. Accolade data is only present for restaurants that have published recognition information on Tock.
The Tock API is a managed, monitored endpoint for tock.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tock.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 tock.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 Michelin-star restaurant finder by querying accolades across multiple city slugs
- Aggregate contact emails and websites for restaurant outreach lists filtered by cuisine type
- Populate a travel app's dining section with Tock restaurant names, images, and addresses for a given city
- Track James Beard award winners by year using the accolades array from get_restaurant_details
- Cross-reference Tock FAQ content with reservation platform listings to enrich dining guides
- Generate structured location data (street, city, state, postal_code) for mapping restaurant clusters
| 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.