HolySheet API Documentation
Turn your Google Sheets into a REST API. Use your API key to read and write data.
Quickstart
- Sign in with your Google account and create an API key in the dashboard.
- Link a Google Sheet (first row must contain column names).
- Use your API key to make requests to the endpoints below.
Base URL
https://holysheet.soneshjain.com/api/v1
Authentication
Include your API key in the URL path for all requests:
https://holysheet.soneshjain.com/api/v1/<YOUR_API_KEY>/rows
Read rows (GET)
Fetch all rows from your sheet as JSON. Optionally filter by column.
Endpoint
GET /api/v1/<API_KEY>/rows
Query parameters
sheet– Sheet name (if your spreadsheet has multiple sheets). Default: first sheet.query– Filter rows:column:value. Use multiple?query=for AND.
Example response
{
"data": [
{ "name": "Alice", "email": "alice@example.com" },
{ "name": "Bob", "email": "bob@example.com" }
],
"count": 2,
"timestamp": "2026-03-10T18:00:00.000Z"
}Append rows (POST)
Append new rows to your sheet.
Endpoint
POST /api/v1/<API_KEY>/rows
Request body
{
"rows": [
{ "name": "Alice", "email": "alice@example.com" },
{ "name": "Bob", "email": "bob@example.com" }
]
}Or as arrays: { "rows": [["Alice", "alice@example.com"], ["Bob", "bob@example.com"]] }
Example response
{
"success": true,
"appended": 2,
"sheet": "Sheet1"
}Errors
The API returns JSON error objects with HTTP status codes:
- 400 – Missing API key, invalid body, or empty rows array
- 401 – Invalid API key
- 403 – Google access expired (sign in again in the dashboard)
- 404 – No sheet linked, or specified sheet not found
- 500 – Server or Google API error
Questions? Open an issue on GitHub.