- Prepare your Google Sheet
Start with a normal Google Sheet. JSONSheets simply reads and writes rows; it does not change how your sheet behaves inside Google.
- Create or open a Google Sheet.
In the first row, add your column headers, for example:
NameEmailRole
- Add a few sample rows so you can see real data when you call the API.
- Share the sheet & understand IDs
JSONSheets needs your sheet to be shared so that it can read and write rows. You also need to know two things: spreadsheetId and tabName.
2.1 Share your spreadsheet
- Open your sheet and click Share (top-right).
Under General access, choose Anyone with the link.
Set the permission to Editor.
Click Copy link — this URL contains your
spreadsheetId.
Note
“Anyone with the link – Editor” is the quickest way to try JSONSheets and to build internal tools. For more locked-down setups, you can restrict access to specific Google accounts later.
2.2 What is spreadsheetId?
It’s the long ID inside your Google Sheets URL. For example:
https://docs.google.com/spreadsheets/d/1AbCDeFgHIJK_lmnOPQRstuVWxyz1234567890/edit#gid=0
^--------------------------------------^
spreadsheetIdIn this URL, your spreadsheetId is:
1AbCDeFgHIJK_lmnOPQRstuVWxyz1234567890
2.3 What is tabName?
At the bottom of Google Sheets you have tabs such as
Sheet1, Users, Data, etc.
The exact name of that tab is your tabName.
- Call the JSONSheets API
Once you know your spreadsheetId and tabName,
you can start calling the API directly. Each tab is treated like a small
table where:
- The first row (headers) becomes JSON keys.
- Every next row becomes one JSON object.
3.1 Read rows
GET /api/sheets/{spreadsheetId}/{tabName}Example using the sample ID and a tab named Users:
GET /api/sheets/1AbCDeFgHIJK_lmnOPQRstuVWxyz1234567890/Users
Sample response:
[
{ "Name": "Alice", "Email": "a@example.com", "Role": "Admin" },
{ "Name": "Bob", "Email": "bob@example.com", "Role": "User" }
]3.2 Append new rows
You can append rows either as raw values or as
objects. The object keys are matched to your header row.
POST /api/sheets/{spreadsheetId}/{tabName}
Content-Type: application/json
{
"objects": [
{ "Name": "New User", "Email": "new@example.com", "Role": "Trial" }
]
}3.3 Update a row
Use dataRow to specify which row to update (1-based index,
excluding the header row).
PUT /api/sheets/{spreadsheetId}/{tabName}
Content-Type: application/json
{
"dataRow": 3,
"values": ["Alice", "alice@newdomain.com", "Admin"]
}3.4 Delete a row
DELETE /api/sheets/{spreadsheetId}/{tabName}
Content-Type: application/json
{
"dataRow": 2
}For more options, such as deleting by row index ranges, refer to the OpenAPI documentation.
For complete request/response schemas, error codes and examples, open the JSONSheets API documentation .