{"slug": "show-hn-sheetrelay-google-sheets-as-a-back-end-for-web-pages-and-ai-agents", "title": "Show HN: SheetRelay – Google Sheets as a back end for web pages and AI agents", "summary": "SheetRelay launched on Hacker News' Show HN, letting users connect a Google Sheet once so that AI assistants and web code can both read and write its rows under per-tab, per-column permission rules. The tool connects Claude, ChatGPT and Cursor over MCP, exposes one HTTP address per tab, and stores and processes data in the EU with keys kept as one-way fingerprints; new tabs start read-only and masked columns are removed from every response and from the description an assistant reads.", "body_md": "### Your assistant\n\nAsk in plain words, “which orders are still open?”, and it reads the tab. It can write a row back when you let it.\n\nConnect a Google Sheet once. Your AI assistant and your code can both use it, under rules you set.\n\nWorks with the tools you already use\n\nNo spreadsheet yet? You do not need one. Tell the agent you already use what you are building, and it makes the spreadsheet in your own Google Drive. That spreadsheet is the database your site or app reads and writes.\n\nClaude\n\nI run a barbershop. I want a booking page where customers pick a time.\n\nTwo tabs then: **Customers** (name, phone) and **Appointments** (customer, date, time, service). Create them?\n\nYes, and the page needs to read them.\n\nDone. Both are in your Drive, the API is live, and the page has a key of its own.\n\nWhat that made\n\n`GET /rosa/barbershop/appointments`` srl_pub_…` for the booking page\nConnect one tab. It stays in Google Sheets, exactly where it is, and from then on an assistant can answer questions from it, your site can add and change rows, and a page anyone opens can show them.\n\nA site you built, a form, an automation. If it can open a web address, it can read the tab and write to it.\n\nPut the rows on a public page, or collect answers into them. Visitors see what is in the tab now, and what they type lands in it.\n\nyoursite.com/menu\n\nA blog, an admin screen, a menu, an invitation. Four real things, none of them with a back end. Open one and watch what it does to the tab underneath it.\n\n**Ada Okonjo** WritingAbout\n\nNotes on building small things, mostly on spreadsheets.\n\nPosts in rows, published by typing one\n\nA screen for the team, with read, add, change and delete on your terms\n\nBistro Verde\n\nDinner, Thursday to Sunday\n\nA menu page that reads the tab the kitchen already keeps\n\nAda & Noor\n\nSaturday 12 June, Lisbon\n\nWill you be there?\n\nYes, with pleasureSorry, noSend\n\nGuests reply on your page, the guest list fills itself in\n\nNo schema to define, no code to write, nothing to install, and no copy of your data to keep in sync.\n\nPick the file with Google, or share it with the address we show you.\n\nCorrect the types, hide the columns that should stay private.\n\nAn address, a key, and setup snippets for Claude, ChatGPT and curl.\n\nNothing is copied anywhere. Rows are read from your sheet when a call asks for them, and what a key or an assistant may do with them is yours to set, tab by tab and column by column.\n\nMask a column and it is gone from every response and from the description an assistant reads. It cannot ask for something it has never seen.\n\nRead, add, change and delete are four separate switches on every tab. New tabs start read-only.\n\nOne key per app, revocable on the spot, and on Pro you can pin it to specific tabs, columns and rows.\n\nThe logs show what was called, by which key, and why anything was refused. Refused calls do not count against your allowance.\n\n**Your cells cannot give instructions.** What an assistant reads is built from your column names, never from the contents of your rows.\n\n**Nothing is duplicated.** There is no second copy of your data to fall behind, and no sync to watch.\n\n**Stored and processed in the EU.** Keys are kept as one-way fingerprints, so not even we can read one back.\n\nMost spreadsheets are not tables. They are calculators somebody built years ago that the whole team trusts. Point SheetRelay at the input and output cells and that calculator becomes callable, with named arguments, from an assistant or from your code.\n\nThe sheet does the maths, exactly as it does today, and your original values go back afterwards. Nobody has to rebuild the formula in code.\n\nYour assistant asks in words. Your code asks over HTTP. Both land on the tab you keep in Google Sheets, and both see the change you made a second ago.\n\n**Assistants.** Claude, ChatGPT and Cursor connect over MCP and can read and write, within the rules you set.\n\n**Your code.** One address per tab, called with an ordinary HTTP request. Nothing to install.\n\n**The sheet.** Still a Google Sheet. Open it and edit it exactly as you do today.\n\nEvery plan stops at its monthly allowance. There is no overage billing, so the invoice is always the plan price.\n\n$0\n\n2 spreadsheets, 1,000 calls a month, no card.\n\nStart free\n$9 /mo\n\n5 spreadsheets, 10,000 calls, callable functions.\n\nStart trial\n$29 /mo\n\n20 spreadsheets, 100,000 calls, narrowed keys, 3 seats.\n\nStart trial\n$79 /mo\n\n100 spreadsheets, 500,000 calls, 15 seats.\n\nStart trial\nTwo months free on annual billing. Every trial runs 14 days. [See what each plan includes](https://sheetrelay.com/pricing/).\n\nSheetRelay turns a Google Sheet into an API. You connect a spreadsheet once, and from then on an AI assistant like Claude or ChatGPT can read and update rows in conversation, while your own code or an automation tool can do the same over plain HTTP. Your data stays in your Google Sheet.\n\nNo. Connecting a sheet and using it with an AI assistant is point and click: you pick the spreadsheet, review what is being exposed, and paste one address into Claude or ChatGPT. The REST API is there for when you or a developer want it, not because you need it.\n\nNo. Rows are read from your Google Sheet when a call asks for them and are not stored afterwards. SheetRelay keeps your column names, types and a small sample used to describe the data, nothing more. Close your account and the access is handed back.\n\nYes, at three levels. Each tab has its own read, add, change and delete switches. Each key can be narrower still, down to specific tabs, columns and even rows on Pro and Team. Columns you mask never leave the server, so an assistant is never told they exist.\n\nGemini in Sheets helps the person who has the spreadsheet open: it writes formulas, fills cells and answers questions inside the file. SheetRelay does the opposite job. It makes the sheet reachable from outside, so the assistant you already use, a script, or a no-code tool can read and write it without anyone opening the file or being given access to it. You also get things a chat sidebar cannot offer: per-tab permissions, hidden columns, keys you can revoke, and a log of every call.\n\nYou can, but a direct connection is all or nothing: anything you let open the spreadsheet can read every tab, every column and every row in it, and with edit access it can change any of them. SheetRelay shapes that access instead, so an agent gets exactly the tabs, columns and verbs you chose and nothing else. New tabs start read-only, each tool carries its own key you can revoke on its own, and every call is logged with the reason anything was refused. If you would rather it never touched your Google account at all, share one spreadsheet with a SheetRelay address, the way you would share it with a colleague.\n\nAnything that speaks MCP, which includes Claude, Claude Code, ChatGPT custom connectors and Cursor. Claude and ChatGPT sign in through SheetRelay and receive a short-lived pass instead of holding a key, and you can disconnect them at any time.\n\nIt can write. Read, add, change and delete are four separate switches on every tab, so a spreadsheet can be read-only, or accept new rows without allowing edits, or anything in between. New tabs start read-only until you say otherwise.\n\nNo. The description an assistant reads is built from your tab descriptions and column names, never from the contents of your cells. A row that says “ignore your previous instructions” is just a row of text. Errors are also uniform, so an unknown address, a wrong key and a refused key all answer identically and the system cannot be probed for what exists.\n\nIn your Google Sheet. SheetRelay stores your column names, types and a small sample used to describe the data, and keeps keys as one-way fingerprints rather than as keys. Data and processing are located in the EU.\n\nFree covers two spreadsheets and 1,000 calls a month with no card. Paid plans start at $9 a month, and every plan stops at its monthly allowance instead of billing overage, so the invoice is always the plan price.\n\nGive it an address, and let everything else talk to it.\n\nTwo spreadsheets and 1,000 calls a month on the free plan. No card.", "url": "https://wpnews.pro/news/show-hn-sheetrelay-google-sheets-as-a-back-end-for-web-pages-and-ai-agents", "canonical_source": "https://sheetrelay.com/", "published_at": "2026-10-07 21:07:54+00:00", "updated_at": "2026-10-07 21:19:43.304914+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools", "ai-products"], "entities": ["SheetRelay", "Google Sheets", "Claude", "ChatGPT", "Cursor", "MCP", "Google Drive", "Ada Okonjo"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-sheetrelay-google-sheets-as-a-back-end-for-web-pages-and-ai-agents", "markdown": "https://wpnews.pro/news/show-hn-sheetrelay-google-sheets-as-a-back-end-for-web-pages-and-ai-agents.md", "text": "https://wpnews.pro/news/show-hn-sheetrelay-google-sheets-as-a-back-end-for-web-pages-and-ai-agents.txt", "jsonld": "https://wpnews.pro/news/show-hn-sheetrelay-google-sheets-as-a-back-end-for-web-pages-and-ai-agents.jsonld"}}