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)

ParamDescription
limitMax rows to return (capped at 1000)
offsetRows to skip, for pagination
searchComma-separated field:value filters — case-insensitive substring match
search_exactComma-separated field:value filters — exact match
sortField to sort by; prefix with - for descending (e.g. sort=-name)
fieldsComma-separated list of fields to return
formatjson (default), csv, tsv, xml, or jsonp
callbackCallback name when format=jsonp
GET /api/spreadsheets/{userKey}/Contacts?search=name:ada&sort=-created&limit=20&fields=name,email

Responses

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.