GKit SheetsAPI vs Stein (steinhq)
Comparing GKit SheetsAPI and Stein (steinhq) for turning Google Sheets into a REST API. GKit is free in beta, MIT open source, self-hostable, and runs on Cloudflare's edge with Google OAuth.
GKit SheetsAPI vs Stein (steinhq) at a glance
Both turn a Google Sheet into a REST API. Both are open source under the MIT license, and both can be self-hosted. The differences come down to architecture, query power, and how auth and hosting work.
| GKit SheetsAPI | Stein (steinhq) | |
|---|---|---|
| Price | Free in beta | Free tier + paid plans (see their pricing) |
| Open source | Yes (MIT) | Yes (MIT) |
| Self-hostable | Yes | Yes (Node/Express + MongoDB) |
| CRUD | Full (read/create/update/delete) | Full (read/add/update/delete) |
| Auth | Google OAuth + optional sk_ API keys | Authentication supported |
| Search | search + search_exact | Exact-match JSON search |
| Pagination | limit (max 1000) + offset | limit + offset |
| Sorting | sort (use - prefix for descending) | Not documented |
| Field selection | fields | Not documented |
| Output formats | JSON, CSV, TSV, XML, JSONP | JSON |
| Runs on | Cloudflare's free tier (Workers, ~100k req/day) | Hosted SaaS or your own Node/MongoDB |
| One account across tools | Yes (GKit) | No |
Stein's hosted plan limits and exact paid pricing are set on their own pricing page; we've only listed what we could independently verify.
Why GKit
Stein is a well-established, genuinely open-source project, and self-hosting it is a real option. GKit SheetsAPI overlaps on those points but differs in a few ways that matter day to day:
- Free while in beta - no request quotas or plan tiers to plan around right now.
- Richer querying out of the box -
search/search_exact,sort(descending with a-prefix),fieldsprojection, andlimit/offsetare all built into the REST API. - More output formats - request the same data as JSON, CSV, TSV, XML, or JSONP via the
formatparam. - Edge-native, zero-infra hosting - it runs on Cloudflare's free tier (Workers, roughly 100k requests/day) instead of a Node + MongoDB stack you have to operate.
- Part of GKit - the same Google account powers every other GKit tool, with Google OAuth and optional
sk_API keys (your sheet is public until you mint a key).
See the SheetsAPI product page for the full picture.
Migrating from Stein
Your sheet structure doesn't change - GKit reads the same first-row-as-headers convention. The main differences are the endpoint shape and auth:
- Point requests at
/api/spreadsheets/{userKey}/{sheetName}(append/{row}to target a single row). - Map Stein's
search,limit, andoffsetdirectly to GKit's equivalents, then addsort,fields,search_exact, orformatwhere you want them. - Switch auth to Google OAuth, and add an
sk_API key if you want to lock the endpoint down.
Full parameter reference lives in the REST API docs.
Verified June 2026 using: steinhq.com, steinhq.com/pricing, github.com/SteinHQ/Stein, docs.steinhq.com/introduction, docs.steinhq.com/read-data, and docs.steinhq.com/search-data. Stein is in active development; check their site for current pricing and limits.