Getting started

How to use JSONSheets

Connect a Google Sheet and start using it as a JSON backend in a few simple steps.

  1. 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.

  1. Create or open a Google Sheet.
  2. In the first row, add your column headers, for example:

    • Name
    • Email
    • Role
  3. Add a few sample rows so you can see real data when you call the API.

  1. 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

  1. Open your sheet and click Share (top-right).
  2. Under General access, choose Anyone with the link.

  3. Set the permission to Editor.

  4. 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
                                      ^--------------------------------------^
                                         spreadsheetId

In 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.


  1. 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 .