Now with Excel & CSV upload support

Turn any spreadsheet
into a
_

Connect a Google Sheet or upload an Excel or CSV file. Get an instant API with caching, filtering, search, and more. No backend required.

GET /api/v1/d/products
{
  "data": [
    { "id": 1, "name": "Widget Pro", "price": 29.99 },
    { "id": 2, "name": "Gadget X",   "price": 49.99 },
    { "id": 3, "name": "Tool Kit",  "price": 19.99 },
    { "id": 4, "name": "Super Bolt", "price": 99.99 },
    { "id": 5, "name": "Nano Kit",  "price": 14.99 }
  ],
  "meta": { "total": 5, "cached": true }
}
products.gsheet
 ABC
1idnameprice
21Widget Pro29.99
32Gadget X49.99
43Tool Kit19.99
54Super Bolt99.99
65Nano Kit14.99

Your spreadsheet is already an API. You just don't know it yet.

60s

Instant API

Paste a link, get an endpoint. No setup, no config.

<15ms

Blazing Fast

Cached responses faster than most databases.

no-code

Zero Code

No backend, no deploy, no maintenance. Ever.

Everything You Need

A complete API layer for your spreadsheet data.

FULL CRUD OPERATIONS

Read, create, update, delete rows through standard REST endpoints.

200 GET /api/v1/sheets/products/rows

201 POST /api/v1/sheets/products/rows

200 PATCH /api/v1/sheets/products/rows/3

FILTER & SEARCH

_filter, _sort, _search, _fields, _limit

?_filter=price:gte:10&_sort=-name

AUTO-GEN DOCS

Public docs with cURL, JS, and Python examples.

AGGREGATION

sum, count, min, max, mean. No data download needed.

EMBED WIDGET

Display live sheet data onto any site.

SHEET TEMPLATES

Pre-built spreadsheet templates for common use cases: product catalogs, inventory, contacts, and more. Clone and connect in seconds.

$ sheetzapi template clone --name=product-catalog

WEBHOOKS, CORS & IP

HMAC-signed webhook notifications on data changes. Configurable CORS origins, allowed methods, and IP allowlisting per sheet.

X-SheetZAPI-Signature: sha256=a1b2c3...

SCHEMA WATCH

Detects column renames and deletions the instant your sheet structure changes. Sends an email alert and keeps both old and new key names working during a grace period so no integration breaks silently.

Schema changed (30d remaining), bridging active

Three steps. That's it.

Getting started with SheetZAPI is simple.

01

Connect your data

Paste a Google Sheet ID/URL or upload an Excel or CSV file. Your header row auto-maps to field names.

$ sheetzapi connect --source=gsheet --id=1BxiM…
02

Grab your API key

One click generates a secure key. Drop it in the X-API-Key header and you're authenticated.

$ curl -H "X-API-Key: sheetzapi_..."
03

Start building

Full CRUD with filtering, sorting, search, and pagination. Auto-generated docs for your team.

# Your API is live
GET /api/v1/sheets/products/rows

Simple, Transparent Pricing

Start free with 1 sheet and 500 requests. Upgrade anytime to unlock more sheets, higher limits, and production features like CORS, Schema Watch, and webhooks.

Hobbyist

For side projects

$7/month
  • 5 connected sheets
  • 10,000 requests/month
  • Public API docs
  • Embed widget
  • CORS config
  • Aggregations
  • Schema Watch
Subscribe
Best Value

Developer

For browser apps and production use

$29/month
  • 15 connected sheets
  • 100,000 requests/month
  • CORS config
  • Method permissions
  • Friendly slugs
  • Embed widget
  • Schema Watch (notifications)
  • Webhooks
  • Aggregations
  • Schema Watch (bridging)
Subscribe

Team

For production teams

$79/month
  • 50 connected sheets
  • 500,000 requests/month
  • Webhooks
  • Batch operations
  • Aggregations
  • Excel upload
  • Schema Watch (bridging)
  • IP allowlisting
Subscribe

Enterprise

For teams at scale

$149/month
  • Unlimited sheets
  • 2,000,000 requests/month
  • IP allowlisting
  • All Team features included
  • Priority support
Subscribe

Frequently Asked Questions

SheetZAPI works with Google Sheets, Excel (.xlsx), and CSV files. Connect a Google Sheet by sharing it with our service account, or upload an Excel or CSV file directly from the dashboard.

Not to set up your API. Just connect your data and you get a working REST API instantly. We also auto-generate documentation with ready-to-use code examples in cURL, JavaScript, and Python.

Every API response is cached in Redis for fast subsequent requests (sub-15ms). Free and Hobbyist plans use a 60-second TTL. Developer and above can configure the cache duration from 5 seconds up to 24 hours per sheet.

Yes. All API requests require an API key sent via the X-API-Key header. Your data is only accessible through your keys, and each key has its own rate limits. Google Sheets are accessed via a read-only service account.

Changes appear in your API automatically after the cache expires. For Google Sheets, edits are reflected on the next uncached request. For uploaded files, you can update data via the API's POST, PUT, PATCH, and DELETE endpoints.

Schema Watch catches it automatically. The moment your column structure changes, SheetZAPI sends you an email alert and activates a 30-day grace period where the API serves both the old and new key names simultaneously. Your existing integrations keep working while you migrate: no silent breakage, no emergency hotfixes.

Absolutely. Use URL query parameters like _filter, _sort, _search, _fields, _limit, and _offset. Filters support operators including eq, ne, gt, lt, gte, lte, contains, startswith, endswith, and in.

Yes! Sign up for free and connect 1 sheet to try out the full API experience: filtering, sorting, caching, and more. No credit card required. When you're ready for more sheets and higher limits, upgrade to a paid plan.