Google Sheets
13 tools • OpenAPI spec ↗
GETget_spreadsheet/spreadsheets/:spreadsheetIdGet metadata for a spreadsheet including its sheets, properties, and URL. Use this to discover sheet names and IDs before reading or writing data.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to retrieve. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| includeGridData | boolean | No | Whether to include grid data (cell values). Default false. Use get_values for reading cell data instead. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "get_spreadsheet"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "get_spreadsheet",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"properties": null,
"sheets": null,
"spreadsheetUrl": null
}GETget_values/spreadsheets/:spreadsheetId/valuesRead cell values from a range in a spreadsheet. Use A1 notation for the range (e.g. 'Sheet1!A1:D10', 'Sheet1', 'A1:B5'). Returns a 2D array of cell values.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to read from. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| range | string | No | The A1 notation range to read (e.g. 'Sheet1!A1:D10', 'Sheet1', 'A:A'). |
| majorDimension | string | No | The major dimension of the values: 'ROWS' (default) or 'COLUMNS'. |
| valueRenderOption | string | No | How values should be rendered: 'FORMATTED_VALUE' (default), 'UNFORMATTED_VALUE', or 'FORMULA'. |
| dateTimeRenderOption | string | No | How dates should be rendered: 'SERIAL_NUMBER' or 'FORMATTED_STRING' (default). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "get_values"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "get_values",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/values Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"range": null,
"majorDimension": null,
"values": null
}POSTbatch_get_values/spreadsheets/:spreadsheetId/values/batch-getRead cell values from multiple ranges in a spreadsheet in a single request. More efficient than multiple get_values calls.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to read from. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ranges | array | No | Array of A1 notation ranges to read (e.g. ['Sheet1!A1:D10', 'Sheet2!A1:B5']). |
| majorDimension | string | No | The major dimension of the values: 'ROWS' (default) or 'COLUMNS'. |
| valueRenderOption | string | No | How values should be rendered: 'FORMATTED_VALUE' (default), 'UNFORMATTED_VALUE', or 'FORMULA'. |
| dateTimeRenderOption | string | No | How dates should be rendered: 'SERIAL_NUMBER' or 'FORMATTED_STRING' (default). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "batch_get_values"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "batch_get_values",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/values/batch-get Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"valueRanges": null
}PATCHupdate_values/spreadsheets/:spreadsheetId/valuesWrite cell values to a range in a spreadsheet. Overwrites existing data in the specified range. Use A1 notation for the range.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to write to. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| range | string | No | The A1 notation range to write to (e.g. 'Sheet1!A1:D10'). |
| values | array | No | 2D array of values to write. Each inner array is a row (e.g. [['Name', 'Age'], ['Alice', 30]]). |
| valueInputOption | string | No | How input values should be interpreted: 'RAW' or 'USER_ENTERED' (default). USER_ENTERED parses formulas and formats. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "update_values"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "update_values",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
PATCH https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/values Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"updatedRange": null,
"updatedRows": null,
"updatedColumns": null,
"updatedCells": null,
"updatedData": null
}POSTbatch_update_values/spreadsheets/:spreadsheetId/values/batch-updateWrite cell values to multiple ranges in a spreadsheet in a single request. More efficient than multiple update_values calls.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to write to. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| data | array | No | Array of range-value pairs to write. |
| valueInputOption | string | No | How input values should be interpreted: 'RAW' or 'USER_ENTERED' (default). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "batch_update_values"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "batch_update_values",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/values/batch-update Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"totalUpdatedRows": null,
"totalUpdatedColumns": null,
"totalUpdatedCells": null,
"totalUpdatedSheets": null,
"responses": null
}POSTappend_values/spreadsheets/:spreadsheetId/values/appendAppend rows of data after the last row with content in a range. Useful for adding new rows to a table without overwriting existing data.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to append to. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| range | string | No | The A1 notation of the table range to append to (e.g. 'Sheet1!A:E'). Data is appended after the last row with content. |
| values | array | No | 2D array of values to append. Each inner array is a row (e.g. [['Alice', 30], ['Bob', 25]]). |
| valueInputOption | string | No | How input values should be interpreted: 'RAW' or 'USER_ENTERED' (default). |
| insertDataOption | string | No | How the data should be inserted: 'OVERWRITE' or 'INSERT_ROWS' (default). INSERT_ROWS adds new rows for the data. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "append_values"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "append_values",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/values/append Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"tableRange": null,
"updates": null
}POSTclear_values/spreadsheets/:spreadsheetId/values/clearClear all values from a range in a spreadsheet. Only clears values, not formatting or other properties.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to clear values from. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| range | string | No | The A1 notation range to clear (e.g. 'Sheet1!A1:D10', 'Sheet1'). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "clear_values"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "clear_values",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/values/clear Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"clearedRange": null
}POSTbatch_clear_values/spreadsheets/:spreadsheetId/values/batch-clearClear values from multiple ranges in a spreadsheet in a single request. More efficient than multiple clear_values calls.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to clear values from. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ranges | array | No | Array of A1 notation ranges to clear (e.g. ['Sheet1!A1:D10', 'Sheet2!A1:B5']). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "batch_clear_values"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "batch_clear_values",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/values/batch-clear Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"clearedRanges": null
}POSTcreate_spreadsheet/spreadsheetsCreate a new Google Sheets spreadsheet. Optionally specify a title and initial sheet names.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | No | The title for the new spreadsheet (default 'Untitled'). |
| sheetTitles | array | No | Optional array of sheet names to create (e.g. ['Data', 'Summary']). If omitted, a single default sheet is created. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "create_spreadsheet"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "create_spreadsheet",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"properties": null,
"sheets": null,
"spreadsheetUrl": null
}POSTadd_sheet/spreadsheets/:spreadsheetId/sheetsAdd a new sheet (tab) to an existing spreadsheet. Returns the properties of the newly created sheet.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to add a sheet to. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | No | The title for the new sheet. |
| index | number | No | The zero-based index where the sheet should be inserted. If omitted, the sheet is added at the end. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "add_sheet"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "add_sheet",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/sheets Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"properties": null
}DELETEdelete_sheet/spreadsheets/:spreadsheetId/sheetsDelete a sheet (tab) from a spreadsheet by its sheet ID. Use get_spreadsheet to find sheet IDs first.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to delete a sheet from. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| sheetId | number | No | The numeric ID of the sheet to delete (not the sheet name). Use get_spreadsheet to find sheet IDs. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "delete_sheet"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "delete_sheet",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/sheets Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"replies": null,
"updatedSpreadsheet": null
}POSTcopy_sheet_to/spreadsheets/:spreadsheetId/sheets/copyCopy a sheet from one spreadsheet to another. Returns the properties of the newly created sheet in the destination spreadsheet.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the source spreadsheet containing the sheet. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| sheetId | number | No | The numeric ID of the sheet to copy (not the sheet name). Use get_spreadsheet to find sheet IDs. |
| destinationSpreadsheetId | string | No | The ID of the destination spreadsheet to copy the sheet to. |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "copy_sheet_to"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "copy_sheet_to",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/sheets/copy Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"properties": null
}POSTbatch_update_spreadsheet/spreadsheets/:spreadsheetId/batch-updateExecute one or more structured update requests against a spreadsheet. Supports a wide variety of operations: formatting, merging cells, adding/removing named ranges, creating charts, auto-resizing, sorting, and more. See the Google Sheets API batchUpdate documentation for the full list of request types.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| spreadsheetId | string | Yes | The ID of the spreadsheet to update. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| requests | array | No | Array of request objects. Each object should have a single key matching the request type (e.g. 'repeatCell', 'mergeCells', 'autoResizeDimensions'). See Google Sheets API batchUpdate documentation for available request types and their parameters. |
| includeSpreadsheetInResponse | boolean | No | Whether to include the full spreadsheet resource in the response (default false). |
Response
Runtime output is unvalidated JSON (raw passthrough).
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "google-sheets",
"method": "batch_update_spreadsheet"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_google-sheets",
"arguments": {
"method": "batch_update_spreadsheet",
"params": {
"spreadsheetId": "<spreadsheetId>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-sheets/spreadsheets/:spreadsheetId/batch-update Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"spreadsheetId": null,
"replies": null,
"updatedSpreadsheet": null
}