v1 · Public beta

The most complete US restaurant menu dataset on the open market.

449k restaurants. 44.3M+ menu items. First-party POS coverage, chain-level aggregation tied to public tickers, daily refresh — available as an API, a snapshot license, or an embedded partnership.

1,000 free requests / month · methodology PDF available

Try a query

Three presets. Real envelope shape. No signup.

Demo responses mirror what a live sk_live_* key returns — same envelope, same pagination, same status timing.

Try one →
RequestPOST
curl -X POST https://api.sendside.xyz/v1/search/restaurants \
-H "Authorization: Bearer sk_live_demo_4f1a9b3c" \
-H "Content-Type: application/json" \
-d '{"q":"ramen","city":"portland","limit":3}'

demo key · pre-canned response

Response200 OK · 38 ms
{
"data": [
{
"restaurant_id": "01KQQ8FA12K5N9R7H4M2BVZA8X",
"name": "Afuri Ramen + Dumpling",
"city_name": "Portland",
"state_code": "OR",
"cuisine_primary": "Japanese",
"item_count": 47,
"price_median": 16.5
},
{
"restaurant_id": "01KQQ8FA17PY2Q3D6X8M5JH4WN",
"name": "Boke Bowl",
"city_name": "Portland",
"state_code": "OR",
"cuisine_primary": "Japanese",
"item_count": 33,
"price_median": 13.95
},
{
"restaurant_id": "01KQQ8FA1B2K8RH7C9N4LDX5SE",
"name": "Marukin Ramen",
"city_name": "Portland",
"state_code": "OR",
"cuisine_primary": "Ramen",
"item_count": 28,
"price_median": 15
}
],
"pagination": {
"limit": 3,
"offset": 0,
"returned": 3,
"total_estimated": 18,
"has_more": true
},
"meta": {
"query": "ramen",
"processing_ms": 4
}
}

envelope: data, pagination, meta

And the same call, copy-paste-ready in three languages →

curl -X POST https://api.sendside.xyz/v1/search/restaurants \
-H "Authorization: Bearer sk_live_demo_4f1a9b3c" \
-H "Content-Type: application/json" \
-d '{"q":"ramen","city":"portland","limit":5}'
What you get

A serious dataset. Also pleasant to integrate against.

Self-serve from $0

Sign up, generate a key, start calling. No sales call, no NDA, no procurement loop. Free tier with 1,000 requests / month — real data, real keys.

First-party verified tier

data_tier=primary returns operator-published menu data, not aggregator-curated. Higher signal, fewer inaccuracies, defensible provenance for AI training and quantitative research.

Predictable errors

Every error has a structured envelope, a request_id, a docs link, and a useful message. The 429 quota response tells you exactly when the window resets.

Chain coverage

Top 25 publicly-traded restaurant tickers mapped at the entity level. Track CMG, MCD, SHAK, WING and more across regions, with the chain-to-corporate-parent layer pre-built.

See chain coverage
Numbers

The pipeline behind the API is real and refreshed daily.

Multi-source US restaurant menu data, normalized and verified. The API is fast because the pipeline behind it is real — daily refresh, monitored sourcing, methodology documented per source tier.

44.3M+

menu items indexed

449k

US restaurants covered

Top 25

public tickers mapped

Daily

refresh cadence

Private beta

Currently in private beta with select teams across voice ordering, restaurant tech, and consumer research.

Read the methodology to see what's inside, or tell us how it's going if you're shipping with us.

Get started

From landing page to first 200 OK
in under five minutes.

1,000 free requests / month