GKit SheetsAPI is Now in Public Beta
SheetsAPI — turn any Google Sheet into a REST API — is now in public beta. Free to use, MIT licensed, and running on Cloudflare Workers.
SheetsAPI is live
Today we're opening SheetsAPI to everyone. Point it at any Google Sheet, and it gives you a REST API — filtering, sorting, pagination, multiple output formats — with no backend to write and no server to maintain.
It's free to use while it's in beta. The source is MIT licensed.
What it does
SheetsAPI reads the first row of any tab in your spreadsheet as field names, then exposes the rest as JSON rows over HTTP. If your sheet has a header row with name, city, plan, you get:
[
{ "name": "Priya Nair", "city": "Bangalore", "plan": "pro" },
{ "name": "Dan Walsh", "city": "Dublin", "plan": "free" }
]That's the whole model. From there, you can filter, sort, paginate, and project fields with query parameters:
GET https://sheetsapi.gkit.mreshank.com/api/spreadsheets/{userKey}/{sheetName}
?search=plan:pro
&sort=-name
&limit=25
&fields=name,city
Output formats include JSON, CSV, TSV, and XML — same endpoint, format param.
You can also read a single row by its sheet row number, and there's a JSONP option for legacy setups that can't use CORS.
Why we built it
We kept building the same small backend: a Google Sheet as the data store, a thin API layer on top so the frontend could query it. The non-technical teammates who owned the data could edit it directly in Sheets; the app got a clean JSON endpoint. It worked well for catalogs, schedules, pricing tables, FAQ lists, internal dashboards.
After doing it four or five times we extracted the pattern into a service. SheetsAPI is that service.
The people it's for: developers who want a data layer they can hand to a non-technical teammate to maintain, without building an admin panel. Side project builders who want to ship fast and migrate later if the thing takes off. Anyone who's already using Google Sheets for data and just wants a clean API on top of it.
Getting started
The quickstart walks through connecting a sheet in under five minutes. The short version:
- Share your Google Sheet with the SheetsAPI service account.
- Copy your
userKeyfrom the GKit dashboard. - Call
https://sheetsapi.gkit.mreshank.com/api/spreadsheets/{userKey}/{sheetName}.
That's the whole setup. No OAuth flow for read-only access, no schema to define.
What "beta" means
Beta means the core works and we're using it ourselves, but we're still finding edge cases. A few things to know:
- It's free. Rate limits apply (300 reads/minute), but there's no paid tier yet.
- It may have bugs. If something behaves unexpectedly, that's a bug we want to know about.
- The API shape is stable for the endpoints documented today. We'll version anything that changes.
- Uptime is not yet SLA-backed. We run on Cloudflare Workers and haven't had downtime, but we're not making guarantees during beta.
How to give feedback
Open a GitHub issue — that's the fastest path to a fix. For anything that doesn't fit an issue, email eshank@matters.ai.
If you build something with it, we'd genuinely like to hear about it. What you're using it for shapes what we prioritize next.