Update your digital menu by editing a Google Sheet
A menu changes with the seasons, the specials, and whatever ran out at lunch. PasteSheet turns the Google Sheet where your kitchen already tracks dishes, prices, and dietary tags into a live JSON API — so the digital menu updates the moment you edit a cell, with no reprint and no redeploy.
Last updated
Key facts
-
The Google Sheets API allows 300 read requests per minute per project and 60 per minute per user. Past that it returns
429 RESOURCE_EXHAUSTED. source - A cached endpoint reads the sheet once per TTL, not once per request — so 10,000 visitors become one upstream read, and Google's quota stops being your problem.
- Free serves a fixed 5-minute cache; paid plans set a custom TTL as low as 30 seconds, so 86-ing a dish drops it from the menu almost immediately.
- A QR-code menu is safe to print: the endpoint is read-only by design, so every diner who scans it can read the menu and nobody can edit the sheet behind it.
Why a Sheet is the right home for a menu
A menu is a table: one row per dish, columns for category, price, description, and dietary tags. Restaurant staff already keep exactly that in a spreadsheet — it is how the kitchen and front-of-house stay in sync. Baking the menu into your site's code means every price bump or sold-out special waits on a developer.
PasteSheet publishes the Sheet as clean, typed JSON over a fast, cached endpoint. Your site, QR-code menu page, or ordering app reads it and renders the dishes. Edit a cell — 86 the risotto, add a weekend special — and the digital menu reflects it after the cache refreshes. It is the same publish-not-connect model behind any directory or listing.
What you can drive from the menu Sheet
One tab per menu, and URL parameters filter it for you:
-
Group dishes by course with
?category=Mainsor?category=Desserts. -
Filter by dietary flags —
?vegetarian=trueor?gluten_free=true— straight from boolean columns. -
Full-text
search=lets diners find a dish by name or ingredient (Pro). -
Sort or feature specials with a flag column and
sort=, no row reordering required.
Fetch the menu as JSON
Point your menu page at the endpoint and pull just the section a diner is viewing:
curl "https://pastesheet.com/your-endpoint/Menu?category=Mains&vegetarian=true"
{
"data": [
{
"dish": "Wild Mushroom Risotto",
"category": "Mains",
"price": 18.50,
"vegetarian": true,
"tags": "gluten-free"
}
]
}Safe to publish, nothing to wire up
Because the endpoint is read-only by design, it is safe to expose publicly or hand to a teammate: consumers can read and query the data but can never change the sheet. And there is no Google Cloud project, OAuth screen, or service account to set up — you paste a share URL and get a live API.
What it costs
Free
For side projects and trying things out.
- Endpoints
- 3
- Requests / mo
- 2,000
- Row cap
- 500
- Type-mapped price & dietary columns
- Custom cache TTL
- Private endpoints & keys
Start free. A single menu fits the Free plan's 3 endpoints and 5-minute cache. Paid plans add type-mapped columns for clean prices and dietary booleans, a custom cache TTL for near-live specials, and private endpoints when you want the menu locked to your own app.
Frequently asked questions
How fast does a menu change show up?
Edit the cell and the API reflects it after the cache refreshes. The Free plan refreshes every 5 minutes; paid plans let you set a custom TTL down to 30 seconds, so you can 86 a dish and see it drop off the menu almost immediately.
Can I mark dishes vegetarian or gluten-free?
Yes. Map dietary columns to booleans in your column config and filter with parameters like ?vegetarian=true. Your menu page renders the tags and lets diners narrow the list by what they can eat.
Do my staff need a PasteSheet account?
No. Only you connect the Sheet once. Anyone you share the Google Sheet with can update dishes and prices as normal, and the menu reflects their edits after the cache refreshes.
Can diners edit the menu through the API?
No. The endpoint is read-only by design — there is no write path — so a public QR-code menu is safe to hand out without any risk of someone changing your Sheet.
Sources
- Usage limits — Google Sheets API — Google
Related use cases
Serve a Product Catalog from Google Sheets
Power a product catalog from a Google Sheet. PasteSheet serves products, prices, and stock as a live, read-only JSON API — no backend, no Google Cloud setup.
Build a Directory Website From a Sheet
Turn a Google Sheet into a searchable directory. PasteSheet serves your listings as a filterable, read-only JSON API — no database, no admin panel, no code.
Power an FAQ Page from a Google Sheet
Build a searchable FAQ or help page from a Google Sheet — one row per question and answer. Full-text search over questions via a live, read-only JSON API.
Drive a Marketing Site from Google Sheets
Run your marketing site's content blocks from a Google Sheet — hero copy, feature lists, section text. PasteSheet publishes it as a live, read-only JSON API.
Turn your sheet into an API in minutes
Paste a Google Sheet URL and get a live REST API and MCP server — no backend, no code, free to start.