Run your product catalog from a Google Sheet
A product catalog is a table your merchandising team already keeps in a spreadsheet: SKUs, names, prices, stock, image links. PasteSheet publishes that Sheet as a live, cached JSON API, so your storefront reads products straight from cells — anyone can update a price without a deploy.
Last updated
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
- The catalog is capped by plan: 500 SKUs on Free, 5,000 on Starter ($9/mo), and no row cap on Pro ($19/mo).
- Free serves a fixed 5-minute cache; paid plans set a custom TTL from 30 seconds to 1 hour, so a price or stock edit lands as fast as you need it to.
- The endpoint is read-only by design, so a public storefront can never write to your sheet — and it never handles checkout: carts, payments and orders stay in your commerce stack.
Why keep the catalog in a Sheet
Product data is naturally tabular — one row per SKU, a column for each attribute. Your buyers and merchandisers already live in a spreadsheet, sorting by margin and flagging what is out of stock. Building an admin panel just to edit that same table is wasted work, and every price change becoming a deploy is a bottleneck.
PasteSheet sits in front of the Sheet and serves it as clean, typed JSON over a fast, cached endpoint. Your storefront — a Next.js site, a mobile app, or a no-code front end — fetches the catalog and renders it. This is the read and catalog layer, not checkout: it serves the merchandising data your storefront displays, while payments and orders stay in your commerce stack.
What the catalog endpoint gives you
Each tab becomes an endpoint, and URL parameters do the querying — no query language to learn:
-
Exact-match filters —
?in_stock=trueor?category=Apparelto slice the catalog. -
Partial matches with
contains[name]=and full-textsearch=for on-site product search (Pro). -
Sort by price or newest with
sort=-price, and page large catalogs withpage/per_page. - Image URLs live in a cell and return like any other field — host them on any CDN and reference the link.
Fetch products as JSON
Point your storefront at the endpoint and read the rows. Filter to in-stock items and sort by price in a single request:
curl "https://pastesheet.com/your-endpoint/Products?in_stock=true&sort=-price"
{
"data": [
{
"sku": "TSHIRT-BLK-M",
"name": "Classic Tee — Black",
"price": 24.00,
"in_stock": true,
"image": "https://cdn.example.com/tees/black.jpg"
}
]
}Safe to publish, nothing to wire up
Because the endpoint is read-only by design, it is safe to expose publicly or hand to a teammate: consumers can read and query the data but can never change the sheet. And there is no Google Cloud project, OAuth screen, or service account to set up — you paste a share URL and get a live API.
What it costs
Free
For side projects and trying things out.
- Endpoints
- 3
- Requests / mo
- 2,000
- Row cap
- 500
- Type-mapped price & stock columns
- Custom cache TTL
- Private endpoints & keys
Start free. The Free plan runs 3 live endpoints with a 5-minute cache — enough to power a small storefront. Paid plans add type-mapped columns for clean prices and booleans, private endpoints, and a custom cache TTL as your catalog grows.
Frequently asked questions
Can PasteSheet handle checkout or orders?
No. PasteSheet is a read-only catalog layer — it serves your product data as JSON. Payments, carts, and orders stay in your commerce stack; you use PasteSheet to display what is for sale, not to process transactions.
How do I show stock or price changes fast?
Edit the cell in Google Sheets and the API reflects it after the cache refreshes. The Free plan refreshes every 5 minutes; paid plans let you set a custom TTL down to 30 seconds when you need near-live stock.
Can shoppers change my prices through the API?
No. The endpoint is read-only by design — there is no write path — so it is safe to expose to a public storefront or a client-side app without leaking edit access to your Sheet.
How do product images work?
Store an image URL in a column and return it like any other field; your front end renders it. Host images anywhere — a CDN, Drive, or your own bucket — and just reference the link in the cell.
Sources
Related use cases
Drive a Pricing Table from Google Sheets
Drive a website pricing table from a Google Sheet so non-devs update prices and features without a deploy — served as a live, read-only JSON API.
Run a Restaurant Menu on Google Sheets
Run a digital restaurant menu from a Google Sheet — dishes, prices, and dietary tags as a live, read-only JSON API. Update by editing cells, no redeploy.
A No-Code Backend From a Google Sheet
Skip the server. PasteSheet turns a Google Sheet into a live, read-only JSON API your web or mobile app reads from — no database, no backend, no Google setup.
Use a Google Sheet as a Next.js Data Source
Fetch a Google Sheet as typed JSON in Next.js or React — from a Server Component, getStaticProps, or ISR. Cached, read-only, set up by pasting a share URL.
Turn your sheet into an API in minutes
Paste a Google Sheet URL and get a live REST API and MCP server — no backend, no code, free to start.