Adding Rows (POST)
Send a POST request to your sheet URL to append rows. The body can be a single
JSON object (one row) or an array of objects (multiple rows). Keys must match
your sheet's column headers.
Editor permission required
Writes go through Google Sheets, so the connection must have edit access:
- For public sheets, set sharing to Anyone with the link → Editor.
- For private sheets, use Connect with Drive.
Without edit access the API responds with write_error.
Add a single row
- cURL
- JavaScript
- Python
curl 'https://api.sheetbest.com/sheets/<api-id>' \
-H 'Content-Type: application/json' \
-d '{"Id": 10, "Name": "Jack Doe", "Age": 97}'
fetch('https://api.sheetbest.com/sheets/<api-id>', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ Id: 10, Name: 'Jack Doe', Age: 97 }),
})
.then((r) => r.json())
.then(console.log);
import requests
requests.post(
'https://api.sheetbest.com/sheets/<api-id>',
json={'Id': 10, 'Name': 'Jack Doe', 'Age': 97},
)
Add multiple rows
Pass an array to insert several rows in a single request:
- cURL
- JavaScript
- Python
curl 'https://api.sheetbest.com/sheets/<api-id>' \
-H 'Content-Type: application/json' \
-d '[
{"Id": 10, "Name": "Jack Doe", "Age": 97},
{"Id": 11, "Name": "John Doe", "Age": 44}
]'
fetch('https://api.sheetbest.com/sheets/<api-id>', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify([
{ Id: 10, Name: 'Jack Doe', Age: 97 },
{ Id: 11, Name: 'John Doe', Age: 44 },
]),
});
requests.post(
'https://api.sheetbest.com/sheets/<api-id>',
json=[
{'Id': 10, 'Name': 'Jack Doe', 'Age': 97},
{'Id': 11, 'Name': 'John Doe', 'Age': 44},
],
)
Response
A successful insert returns the rows that were written:
{
"Id": "10",
"Name": "Jack Doe",
"Age": "97"
}
Keys not present in the sheet are ignored. Missing columns are written as empty cells.
Writing to a specific tab
Append /tabs/<TabName> to write to a tab other than the first one:
curl 'https://api.sheetbest.com/sheets/<api-id>/tabs/Admin' \
-H 'Content-Type: application/json' \
-d '[{"Name": "Jack Doe", "Age": 97}]'
See Working with Tabs.