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