Skip to main content

Command Palette

Search for a command to run...

Build a Product Catalog API Using Google Sheets (No Backend Required)

Updated
4 min read

Managing a product catalog shouldn't require a database engineer. If you're running a small e-commerce store, building a prototype, or managing inventory for a client project, Google Sheets is already a great place to organize your products.

The missing piece? Getting that data into your app, website, or storefront as clean JSON through an API.

Here's how to build a working product catalog API using nothing but a Google Sheet and Jsonsheets.

Step 1: Structure Your Google Sheet

Open Google Sheets and create a spreadsheet with columns that represent your product data. The first row becomes your API field names, so keep them clean and lowercase:

idnamecategorypricestockimage_urlstatus
1Wireless EarbudsAudio49.99150https://example.com/earbuds.jpgactive
2USB-C HubAccessories34.9985https://example.com/hub.jpgactive
3Laptop StandAccessories29.990https://example.com/stand.jpgout_of_stock
4Mechanical KeyboardPeripherals89.9942https://example.com/keyboard.jpgactive

Tips for structuring your sheet:

  • Use consistent naming — lowercase with underscores works best for API fields

  • Keep one product per row

  • Use a status column to control which products appear in your store

  • Separate categories, variants, or pricing tiers into different tabs

Step 2: Connect Your Sheet to Jsonsheets

  1. Sign in at jsonsheets.com with your Google account

  2. Click Browse Drive and select your product catalog spreadsheet

  3. Jsonsheets automatically detects all tabs and generates API endpoints for each one

You'll get an API slug — something like product-catalog — and each tab becomes its own endpoint.

Step 3: Get Your API Key

Go to the API Keys page in your dashboard and create a new key. Every request to your product catalog API needs this key in the header:

Authorization: Bearer js_your_api_key_here

Step 4: Fetch Your Product Catalog

Now you can pull your entire product catalog as JSON:

curl -H "Authorization: Bearer js_your_api_key_here" \
  https://jsonsheets.com/api/v1/product-catalog/Sheet1
{
  "data": [
    {
      "id": "1",
      "name": "Wireless Earbuds",
      "category": "Audio",
      "price": "49.99",
      "stock": "150",
      "image_url": "https://example.com/earbuds.jpg",
      "status": "active"
    },
    {
      "id": "2",
      "name": "USB-C Hub",
      "category": "Accessories",
      "price": "34.99",
      "stock": "85",
      "image_url": "https://example.com/hub.jpg",
      "status": "active"
    }
  ],
  "count": 4
}

Step 5: Filter and Search Products

The real power is in query parameters. You don't need to fetch everything and filter client-side.

Get only active products:

GET /api/v1/product-catalog/Sheet1?status=active

Get products in a specific category:

GET /api/v1/product-catalog/Sheet1?category=Accessories

Limit results for pagination:

GET /api/v1/product-catalog/Sheet1?limit=10&start=1&end=10

Get a single product by row:

GET /api/v1/product-catalog/Sheet1/2

Step 6: Add New Products via API

Your team can add products through the spreadsheet, but you can also add them programmatically:

curl -X POST \
  -H "Authorization: Bearer js_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"name": "Webcam HD", "category": "Peripherals", "price": "59.99", "stock": "30", "status": "active"}' \
  https://jsonsheets.com/api/v1/product-catalog/Sheet1

The new row appears instantly in your Google Sheet and is immediately available through the API.

Step 7: Update Inventory and Prices

Need to mark a product as out of stock? Update by condition:

curl -X PUT \
  -H "Authorization: Bearer js_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"condition": {"name": "Laptop Stand"}, "set": {"status": "out_of_stock", "stock": "0"}}' \
  https://jsonsheets.com/api/v1/product-catalog/Sheet1

Or update a specific row directly:

curl -X PUT \
  -H "Authorization: Bearer js_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"price": "39.99"}' \
  https://jsonsheets.com/api/v1/product-catalog/Sheet1/2

Using Multiple Tabs for Organized Catalogs

If your catalog has different product types, use separate tabs in the same spreadsheet:

  • Electronics tab → /api/v1/product-catalog/Electronics

  • Clothing tab → /api/v1/product-catalog/Clothing

  • Books tab → /api/v1/product-catalog/Books

Each tab gets its own endpoint automatically. No extra configuration needed.

Example: Loading Products in a React App

const response = await fetch(
  "https://jsonsheets.com/api/v1/product-catalog/Sheet1?status=active",
  {
    headers: { Authorization: "Bearer js_your_api_key_here" }
  }
);
const { data: products } = await response.json();

products.forEach(product => {
  console.log(`${product.name} - $${product.price}`);
});

Why This Approach Works

  • Non-technical team members can update products directly in Google Sheets without touching code

  • No database setup — your spreadsheet is the database

  • Instant changes — edit a cell in Sheets, and the API reflects it on the next request

  • Built-in caching — repeated API calls are fast, reducing load on Google's servers

  • API key security — your product data is never publicly exposed

When to Use This (and When Not To)

This approach works great for:

  • Small to medium product catalogs (under 10,000 items)

  • MVP and prototype stores

  • Internal tools and dashboards

  • Client projects with tight deadlines

  • Headless commerce setups where the team manages data in Sheets

Consider a traditional database when:

  • You have hundreds of thousands of products

  • You need complex relational queries (joins, aggregations)

  • You need sub-millisecond response times under heavy concurrent load

Get Started

You can have a working product catalog API in under 2 minutes:

  1. Structure your products in Google Sheets

  2. Connect the sheet at jsonsheets.com

  3. Start fetching products as JSON

No server to deploy. No database to manage. No backend code to write.

Build your product catalog API at jsonsheets.com