Your assistant
Ask in plain words, “which orders are still open?”, and it reads the tab. It can write a row back when you let it.
Connect a Google Sheet once. Your AI assistant and your code can both use it, under rules you set.
Works with the tools you already use
No 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.
Claude
I run a barbershop. I want a booking page where customers pick a time.
Two tabs then: Customers (name, phone) and Appointments (customer, date, time, service). Create them?
Yes, and the page needs to read them.
Done. Both are in your Drive, the API is live, and the page has a key of its own.
What that made
GET /rosa/barbershop/appointments`` srl_pub_… for the booking page
Connect 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.
A site you built, a form, an automation. If it can open a web address, it can read the tab and write to it.
Put 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.
yoursite.com/menu
A 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.
Ada Okonjo WritingAbout
Notes on building small things, mostly on spreadsheets.
Posts in rows, published by typing one
A screen for the team, with read, add, change and delete on your terms
Bistro Verde
Dinner, Thursday to Sunday
A menu page that reads the tab the kitchen already keeps
Ada & Noor
Saturday 12 June, Lisbon
Will you be there?
Yes, with pleasureSorry, noSend
Guests reply on your page, the guest list fills itself in
No schema to define, no code to write, nothing to install, and no copy of your data to keep in sync.
Pick the file with Google, or share it with the address we show you.
Correct the types, hide the columns that should stay private.
An address, a key, and setup snippets for Claude, ChatGPT and curl.
Nothing 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.
Mask 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.
Read, add, change and delete are four separate switches on every tab. New tabs start read-only.
One key per app, revocable on the spot, and on Pro you can pin it to specific tabs, columns and rows.
The logs show what was called, by which key, and why anything was refused. Refused calls do not count against your allowance.
Your cells cannot give instructions. What an assistant reads is built from your column names, never from the contents of your rows.
Nothing is duplicated. There is no second copy of your data to fall behind, and no sync to watch.
Stored and processed in the EU. Keys are kept as one-way fingerprints, so not even we can read one back.
Most 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.
The sheet does the maths, exactly as it does today, and your original values go back afterwards. Nobody has to rebuild the formula in code.
Your 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.
Assistants. Claude, ChatGPT and Cursor connect over MCP and can read and write, within the rules you set.
Your code. One address per tab, called with an ordinary HTTP request. Nothing to install.
The sheet. Still a Google Sheet. Open it and edit it exactly as you do today.
Every plan stops at its monthly allowance. There is no overage billing, so the invoice is always the plan price.
$0
2 spreadsheets, 1,000 calls a month, no card.
Start free $9 /mo
5 spreadsheets, 10,000 calls, callable functions.
Start trial $29 /mo
20 spreadsheets, 100,000 calls, narrowed keys, 3 seats.
Start trial $79 /mo
100 spreadsheets, 500,000 calls, 15 seats.
Start trial Two months free on annual billing. Every trial runs 14 days. See what each plan includes.
SheetRelay 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.
No. 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.
No. 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.
Yes, 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.
Gemini 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.
You 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.
Anything 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.
It 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.
No. 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.
In 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.
Free 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.
Give it an address, and let everything else talk to it.
Two spreadsheets and 1,000 calls a month on the free plan. No card.