Sheetrocket Documentation
Learn how to transform your Google Sheets into powerful REST APIs, widgets, and catalogues in minutes
Step 1: Prepare Your Google Sheet
Format your Google Sheet with proper headers to create a structured API
Sheet Format Requirements
- Row 1: Must contain column headers (these become your API field names)
- Headers: Use descriptive names like "Name", "Price", "Image_url"
- Data: Each row represents one record in your API response
- Public Access: Sheet must be shared publicly for API access
Example Sheet Format
Example: Restaurant menu with Name, Price, and Image_url headers
Pro tips
- Use underscores instead of spaces in headers (e.g., "image_url" not "image url")
- Keep headers descriptive but concise
- Avoid special characters in headers
- Make sure your data is clean and consistent
Step 2: Create Your API
Connect your Google Sheet to Sheetrocket and generate your API endpoint
1. Access Your Dashboard
Sign in to Sheetrocket and navigate to your dashboard. You'll see the API creation interface.
2. Enter Your Sheet URL
Copy your Google Sheet URL and paste it into the input field. The API slug will be automatically generated.
3. API Created Successfully
Once created, you'll see your new API with its endpoint URL and configuration options.
Step 3: Configure API Permissions
Set up which HTTP methods are allowed for your API
Step 4: Use Your API
Start making requests to your new API endpoint
Your API Endpoint
https://sheetrocket.com/api/v1/[USER_ID]/[SHEET_NAME]/[API_SLUG]
Quick Test
curl https://sheetrocket.com/api/v1/your-user-id/your-sheet/your-slug
Step 5: Monitor Usage
Track your API usage and performance metrics from the dashboard.
API Reference
Complete reference for all available API endpoints and methods
Base URL
https://sheetrocket.com/api/v1/[USER_ID]/[SHEET_NAME]/[API_SLUG]
GET — Retrieve Data
Fetch all rows from your Google Sheet as JSON.
curl -X GET "https://sheetrocket.com/api/v1/user123/restaurant-menu/abc123"
{
"data": [
{ "row_number": 2, "Name": "Jollof Rice", "Price": "35.85" }
],
"rateLimit": { "limit": 350, "remaining": 349, "tier": "FREE" },
"cached": false
}
GET — Single Row
curl -X GET "https://sheetrocket.com/api/v1/user123/restaurant-menu/abc123?row=2"
GET — Pagination and tabs
curl "https://sheetrocket.com/api/v1/user123/restaurant-menu/abc123?page=1&limit=50&tab=Sheet1"
POST — Add a row
curl -X POST "https://sheetrocket.com/api/v1/user123/restaurant-menu/abc123" \
-H "Content-Type: application/json" \
-d '{"Name":"Pizza","Price":"25.00"}'
PUT — Update a row
curl -X PUT "https://sheetrocket.com/api/v1/user123/restaurant-menu/abc123?row=2" \
-H "Content-Type: application/json" \
-d '{"Name":"Updated name"}'
DELETE — Remove a row
curl -X DELETE "https://sheetrocket.com/api/v1/user123/restaurant-menu/abc123?row=2"
Examples
Common ways to consume a Sheetrocket API from your app or website.
JavaScript fetch
const res = await fetch('https://sheetrocket.com/api/v1/user123/menu/abc123');
const json = await res.json();
console.log(json.data);
React
useEffect(() => {
fetch('https://sheetrocket.com/api/v1/user123/menu/abc123')
.then((r) => r.json())
.then((json) => setRows(json.data));
}, []);
Widget embed
<div data-sheetrocket="your-id" data-template="menu-widget"></div> <script src="https://sheetrocket.com/widget.js" async></script>
Render sheet rows in your own HTML
Use a Sheetrocket API as a CMS for static sites. You write the HTML and CSS. Sheetrocket repeats the template for every row.
<div data-sheetrocket-api="https://sheetrocket.com/api/v1/your-api/products">
<template data-template>
<article>
<img src="{{ image }}" alt="{{ name }}">
<h2>{{ name }}</h2>
<strong>${{ price }}</strong>
</article>
</template>
</div>
<script src="https://sheetrocket.com/templates.js"></script>
See the full guide on Google Sheets to HTML.
Troubleshooting
Empty data or 404
Confirm the API slug, that the sheet is shared with the service account (or publicly viewable), and that Row 1 has headers.
403 from Google Sheets
Share the spreadsheet with the Sheetrocket service account email shown in the dashboard, or set the sheet to "Anyone with the link can view" for public APIs.
405 Method Not Allowed
Enable the HTTP method on the API overview in the dashboard. POST, PUT, and DELETE are off by default.
Rate limit errors
Free plans include 350 requests per month. Upgrade on the pricing page or wait for the next billing cycle.
Widget not showing
Check that the embed snippet includes both the div and the script tag, and that the widget ID matches a published widget.
Need help? Email allen@sheetrocket.com.