Documentation
Quick Start
Get your first API endpoint running in under a minute.
1. Create an account
Sign up at getsheetapi.com/signup. It's free.
2. Connect your Google Sheet
Paste your Sheet URL in the dashboard. We'll automatically detect your columns.
3. Make your first request
curl -X GET "https://api.getsheetapi.com/v1/YOUR_SHEET_ID" \
-H "X-API-Key: YOUR_API_KEY"
Authentication
All API requests require authentication using an API key.
Include your API key in the X-API-Key header:
curl -H "X-API-Key: gsa_xxxxxxxxxxxx" \
https://api.getsheetapi.com/v1/YOUR_SHEET_ID
Alternatively, pass it as a query parameter (less secure, not recommended for production):
https://api.getsheetapi.com/v1/YOUR_SHEET_ID?api_key=gsa_xxxxxxxxxxxx
List Rows
Retrieve all rows from your sheet.
GET /api/v1/{sheet_id}
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Max rows to return (default: 100, max: 1000) |
| offset | integer | Number of rows to skip (default: 0) |
| sort | string | Column to sort by (prefix with - for descending) |
Example Response
{
"data": [
{ "name": "John Doe", "email": "john@example.com", "plan": "pro" },
{ "name": "Jane Smith", "email": "jane@example.com", "plan": "free" }
],
"meta": {
"total": 2,
"limit": 100,
"offset": 0
}
}
Create Row
Add a new row to your sheet.
POST /api/v1/{sheet_id}
Request Body
{
"name": "New User",
"email": "new@example.com",
"plan": "free"
}
Example
curl -X POST "https://api.getsheetapi.com/v1/YOUR_SHEET_ID" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "New User", "email": "new@example.com", "plan": "free"}'
Error Handling
All errors return a consistent JSON structure:
{
"error": {
"code": "INVALID_API_KEY",
"message": "The provided API key is invalid or expired",
"hint": "Check your API key in the dashboard"
}
}
Common Error Codes
| HTTP Status | Code | Description |
|---|---|---|
| 401 | MISSING_API_KEY | No API key provided |
| 401 | INVALID_API_KEY | API key is invalid or expired |
| 404 | SHEET_NOT_FOUND | Sheet ID doesn't exist |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests |
Rate Limits
Rate limits depend on your plan:
| Plan | Monthly Requests | Requests/Minute |
|---|---|---|
| Free | 1,000 | 10 |
| Pro | 100,000 | 100 |
| Business | 1,000,000 | 1,000 |
Rate limit headers are included in every response:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1706454900