# Use Google Sheets as a database

A spreadsheet is a table, and a table is most of what a small app needs. With a REST API in front of it, a Google Sheet can back content, config, and reference data — editable by anyone on your team, no admin panel required.

*Last updated: 2026-07-15 · Source: <https://pastesheet.com/guides/google-sheets-as-a-database>*

## Key facts

- A Google Sheet is capped at **10 million cells** (or 18,278 columns), which is the real ceiling on using one as a database. ([source](https://support.google.com/drive/answer/37603))
- Sheets has **no indexes, no transactions and no concurrency control**. It is a spreadsheet: the guarantees a database gives you simply are not there.
- 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](https://developers.google.com/workspace/sheets/api/limits))
- Where it genuinely wins is **read-mostly data a non-engineer owns** — a price list, a directory, a changelog. Editing a row in a familiar UI beats a CMS migration.

## Can you use Google Sheets as a database?

Yes, for read-heavy workloads. A sheet is a perfectly good table: rows are records, columns are fields, and your teammates already know how to edit it. Where it breaks down is concurrent writes, relational joins, and transactions — a spreadsheet has none of those guarantees.

The practical rule: if your data is mostly *read* and occasionally hand-edited, a sheet is an excellent database. If it is written by your application at speed, or two writers can touch the same row at once, use a real database. PasteSheet is built for the first case — it puts a fast, cached, read-only JSON API in front of the sheet.

## When a sheet is a great database

- Content and copy your non-technical teammates should edit directly.
- Config, feature flags, pricing tables, and lookup data.
- Low-to-medium read traffic that is mostly reads, not writes.
- Prototypes and MVPs where you want data live in minutes.

## When to reach for a real database

- High write concurrency or transactional integrity requirements.
- Millions of rows, or complex multi-table joins.
- Per-user row-level security and heavy relational modeling.

## Google Sheet vs a real database

A sheet is not trying to be Postgres. Use it where it wins, and reach for a database where it does not:

|  | Google Sheet + PasteSheet | A real database (Postgres / Airtable) |
| --- | --- | --- |
| Writes & concurrency | Read-heavy; edited by hand | Concurrent writes and transactions |
| Size ceiling | 10 million cells | Effectively unbounded |
| Relational joins | No — one flat table | Yes — multi-table joins |
| Access control | Endpoint-level key | Per-user, row-level security |
| Who edits the data | Anyone who knows spreadsheets | Engineers or an admin UI |
| Setup | Paste a share URL | Provision, model, and migrate |
| Cost to start | Free | Hosting + engineering time |

## Set up a Google Sheets database in four steps

1. Put one record per row under a single header row — the headers become your field names.
2. Share the sheet as **Anyone with the link** so it can be read without a login.
3. Paste the share URL into PasteSheet; it infers each column's type and publishes a cached JSON endpoint.
4. Query it over HTTP like a table — filter, sort, search, and page with URL parameters.

## Query it like a table

A `GET` against the endpoint returns typed rows plus paging metadata — here, active products, newest first:

```bash
curl 'https://pastesheet.com/api/your-endpoint-id?status=active&sort=created&order=desc&limit=2'

{
  "data": [
    { "id": 42, "name": "Blue Widget", "price": 19.99, "status": "active" },
    { "id": 41, "name": "Red Widget",  "price": 24.5,  "status": "active" }
  ],
  "total": 128,
  "limit": 2,
  "offset": 0
}
```

## Where to go next

Building for a specific target? See [a Google Sheets database for a website](https://pastesheet.com/guides/google-sheets-database-for-website), or learn to [query it like SQL](https://pastesheet.com/guides/query-google-sheets-with-sql).

## Frequently asked questions

### Can you use Google Sheets as a database?

Yes, for read-heavy content, config, and reference data at small-to-medium scale. Put a REST API in front of it so your app can query rows instead of parsing cells.

### What are the limits?

Sheets is not built for high write concurrency, transactions, millions of rows, or complex joins. For those, use a traditional database.

### How do I query it?

Through PasteSheet's REST API: exact filters, contains matches, full-text search, sort/order, and limit/offset — all as URL parameters.

### How many rows can a Google Sheets database hold?

A single Google Sheet is capped at 10 million cells — rows times columns. That is plenty for content, config, and reference data, but not for millions of records.

### How is this different from Airtable?

Airtable is a hosted relational database with its own UI and write API. A Google Sheet plus PasteSheet keeps your data in the spreadsheet your team already edits and publishes it as a read-only, cached JSON API. Choose Airtable for relational writes; choose a sheet for read-mostly data a non-engineer owns.

## Sources

- [Files you can store in Google Drive (size limits)](https://support.google.com/drive/answer/37603) — Google
- [Usage limits — Google Sheets API](https://developers.google.com/workspace/sheets/api/limits) — Google

## Related guides

- [Google Sheets Database for a Website](https://pastesheet.com/guides/google-sheets-database-for-website) — Use Google Sheets as a database for your website: serve content, listings, and copy as JSON your pages fetch. Editable by your team, cached, and code-free.
- [Is Google Sheets Good as a Database?](https://pastesheet.com/guides/is-google-sheets-good-for-a-database) — Is Google Sheets good for a database? An honest look at where a spreadsheet-backed API shines, where it breaks down, and how to use it without regret.
- [Turn Google Sheets Into a REST API (No Code)](https://pastesheet.com/guides/google-sheets-rest-api) — Turn a public or restricted Google Sheet into a live JSON REST API with filtering, sorting, and pagination — no backend, no code.
- [How to Query Google Sheets With SQL](https://pastesheet.com/guides/query-google-sheets-with-sql) — Query Google Sheets like SQL: the built-in QUERY() function for in-sheet queries, and a REST API for SQL-style filtering, sorting, and grouping from your app.

---

[PasteSheet](https://pastesheet.com) turns any Google Sheet into a live REST API and MCP server for AI agents — no backend, no code. Canonical HTML version of this page: <https://pastesheet.com/guides/google-sheets-as-a-database>
