REST API reference
The full GKit SheetsAPI REST interface — endpoints, query parameters, and response shapes.
Base URL
All routes are served under https://sheetsapi.gkit.mreshank.com/api.
Each request is scoped to your userKey (issued after you connect Google) and a
sheetName (a tab in your registered spreadsheet).
Endpoints
GET /api/spreadsheets/{userKey}/{sheetName} # list rows
GET /api/spreadsheets/{userKey}/{sheetName}/{row} # get one row (1-based)
POST /api/spreadsheets/{userKey}/{sheetName} # append row(s)
PUT /api/spreadsheets/{userKey}/{sheetName}/{row} # update a row
DELETE /api/spreadsheets/{userKey}/{sheetName}/{row} # delete a row{row} is 1-based: row 1 is the first data row beneath the header.
Query parameters (list endpoint)
| Param | Description |
|---|---|
limit | Max rows to return (capped at 1000) |
offset | Rows to skip, for pagination |
search | Comma-separated field:value filters — case-insensitive substring match |
search_exact | Comma-separated field:value filters — exact match |
sort | Field to sort by; prefix with - for descending (e.g. sort=-name) |
fields | Comma-separated list of fields to return |
format | json (default), csv, tsv, xml, or jsonp |
callback | Callback name when format=jsonp |
GET /api/spreadsheets/{userKey}/Contacts?search=name:ada&sort=-created&limit=20&fields=name,emailResponses
The list endpoint returns a JSON array of row objects keyed by your header row:
[
{ "name": "Ada", "email": "ada@example.com" },
{ "name": "Linus", "email": "linus@example.com" }
]A single-row GET returns one object. Writes return a small status body:
POST → { "appended": 1 }
PUT → { "updated": 1, "row": 2 }
DELETE → { "deleted": 1, "row": 2 }Set format=csv, tsv, xml, or jsonp on the list endpoint to get those
content types instead of JSON.
See authentication for API keys and rate limits for the row cap and fair-use guidance.