HolySheet API Documentation

Turn your Google Sheets into a REST API. Use your API key to read and write data.

Quickstart

  1. Sign in with your Google account and create an API key in the dashboard.
  2. Link a Google Sheet (first row must contain column names).
  3. 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.