Insert new rows into your spreadsheet by sending JSON data to your API endpoint.
To write data, send a POST request with JSON data to your Sheet API endpoint. This will insert a new row in your sheet with the information you've sent.
# Add one row to the sheet
curl 'https://api.sheetapi.com/sheets/your-sheet-id' \
-X POST \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: your-api-key' \
-d '{
"Id": "10",
"Name": "Jack Doe",
"Age": "97",
"Email": "jack@example.com",
"Created at": "2024-08-16T13:32:11.744Z"
}'# Add multiple rows to the sheet
curl 'https://api.sheetapi.com/sheets/your-sheet-id' \
-X POST \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: your-api-key' \
-d '[
{
"Id": "10",
"Name": "Jack Doe",
"Age": "97",
"Email": "jack@example.com",
"Created at": "2024-08-16T13:32:11.744Z"
},
{
"Id": "11",
"Name": "John Smith",
"Age": "44",
"Email": "john.smith@example.com",
"Created at": "2024-08-16T13:32:11.744Z"
}
]'{
"success": true,
"message": "Rows added successfully",
"rows_added": 1,
"data": [
{
"Id": "10",
"Name": "Jack Doe",
"Age": "97",
"Email": "jack@example.com",
"Created at": "2024-08-16T13:32:11.744Z"
}
]
}{
"success": false,
"error": "validation_error",
"message": "Missing required field: Name",
"details": {
"missing_fields": ["Name"],
"provided_fields": ["Id", "Age"]
}
}• Match column names exactly as they appear in your sheet
• Use consistent data types for each column
• Include all required fields in your requests
• Batch multiple rows in a single request when possible
• Handle errors gracefully in your application
• Send requests without proper authentication
• Include extra fields not in your sheet headers
• Send extremely large payloads (>1MB)
• Ignore validation errors
• Make excessive concurrent requests
POST requests are subject to rate limiting to ensure service stability:
| Plan | Requests/Minute | Rows/Request | Monthly Limit |
|---|---|---|---|
| Free | 10 | 100 | 1,000 |
| Pro | 100 | 1,000 | 100,000 |
| Enterprise | 1,000 | 10,000 | Unlimited |