Google Sheets
Connect to Google Sheets. Create, edit, and analyze spreadsheets with powerful data management capabilities
Connect to Google Sheets. Create, edit, and analyze spreadsheets with powerful data management capabilities
Supports authentication: OAuth 2.0
Connect a user’s Google Sheets account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.
You can interact with Google Sheets in two ways — via direct proxy API calls or via Scalekit optimized tool calls. Scroll down to see the list of available Scalekit tools.
Proxy API Calls
import { ScalekitClient } from '@scalekit-sdk/node';import 'dotenv/config';
const connectionName = 'google_sheets'; // get your connection name from connection configurationsconst identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsconst scalekit = new ScalekitClient( process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);const actions = scalekit.actions;
// Authenticate the userconst { link } = await actions.getAuthorizationLink({ connectionName, identifier,});console.log('🔗 Authorize Google Sheets:', link); // present this link to your user for authorization, or click it yourself for testingprocess.stdout.write('Press Enter after authorizing...');await new Promise(r => process.stdin.once('data', r));
// Make a request via Scalekit proxyconst result = await actions.request({ connectionName, identifier, path: '/v4/spreadsheets', method: 'GET',});console.log(result);import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "google_sheets" # get your connection name from connection configurationsidentifier = "user_123" # your unique user identifier
# Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsscalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)actions = scalekit_client.actions
# Authenticate the userlink_response = actions.get_authorization_link( connection_name=connection_name, identifier=identifier)# present this link to your user for authorization, or click it yourself for testingprint("🔗 Authorize Google Sheets:", link_response.link)input("Press Enter after authorizing...")
# Make a request via Scalekit proxyresult = actions.request( connection_name=connection_name, identifier=identifier, path="/v4/spreadsheets", method="GET")print(result)Scalekit Tools
googlesheets_create_spreadsheet
Create a new Google Sheets spreadsheet with an optional title and initial sheet configuration. Returns the new spreadsheet ID and metadata.
| Name | Type | Required | Description |
|---|---|---|---|
locale | string | No | Locale of the spreadsheet |
schema_version | string | No | Optional schema version to use for tool execution |
sheets | array<object> | No | Initial sheets to include in the spreadsheet |
time_zone | string | No | Time zone for the spreadsheet |
title | string | No | Title of the new spreadsheet |
tool_version | string | No | Optional tool version to use for execution |
googlesheets_get_values
Returns only the cell values from a specific range in a Google Sheet — no metadata, no formatting, just the data. For full spreadsheet metadata and formatting, use googlesheets_read_spreadsheet instead.
| Name | Type | Required | Description |
|---|---|---|---|
major_dimension | string | No | Whether values are returned by rows or columns |
range | string | Yes | Cell range to read in A1 notation |
schema_version | string | No | Optional schema version to use for tool execution |
spreadsheet_id | string | Yes | The ID of the Google Sheet |
tool_version | string | No | Optional tool version to use for execution |
value_render_option | string | No | How values should be rendered in the response |
googlesheets_read_spreadsheet
Returns everything about a spreadsheet — including spreadsheet metadata, sheet properties, cell values, formatting, themes, and pixel sizes. If you only need cell values, use googlesheets_get_values instead.
| Name | Type | Required | Description |
|---|---|---|---|
include_grid_data | boolean | No | Include cell data in the response |
ranges | string | No | Cell range to read in A1 notation |
schema_version | string | No | Optional schema version to use for tool execution |
spreadsheet_id | string | Yes | The ID of the Google Sheet to read |
tool_version | string | No | Optional tool version to use for execution |
googlesheets_update_values
Update cell values in a specific range of a Google Sheet. Supports writing single cells or multiple rows and columns at once.
| Name | Type | Required | Description |
|---|---|---|---|
include_values_in_response | boolean | No | Return the updated cell values in the response |
range | string | Yes | Cell range to update in A1 notation |
schema_version | string | No | Optional schema version to use for tool execution |
spreadsheet_id | string | Yes | The ID of the Google Sheet to update |
tool_version | string | No | Optional tool version to use for execution |
value_input_option | string | No | How input values should be interpreted |
values | array<array> | Yes | 2D array of values to write to the range |
Tool list
Section titled “Tool list”googlesheets_create_spreadsheet
Section titled “googlesheets_create_spreadsheet”Create a new Google Sheets spreadsheet with an optional title and initial sheet configuration. Returns the new spreadsheet ID and metadata.
| Name | Type | Required | Description |
|---|---|---|---|
locale | string | No | Locale of the spreadsheet |
schema_version | string | No | Optional schema version to use for tool execution |
sheets | array<object> | No | Initial sheets to include in the spreadsheet |
time_zone | string | No | Time zone for the spreadsheet |
title | string | No | Title of the new spreadsheet |
tool_version | string | No | Optional tool version to use for execution |
googlesheets_get_values
Section titled “googlesheets_get_values”Returns only the cell values from a specific range in a Google Sheet — no metadata, no formatting, just the data. For full spreadsheet metadata and formatting, use googlesheets_read_spreadsheet instead.
| Name | Type | Required | Description |
|---|---|---|---|
major_dimension | string | No | Whether values are returned by rows or columns |
range | string | Yes | Cell range to read in A1 notation |
schema_version | string | No | Optional schema version to use for tool execution |
spreadsheet_id | string | Yes | The ID of the Google Sheet |
tool_version | string | No | Optional tool version to use for execution |
value_render_option | string | No | How values should be rendered in the response |
googlesheets_read_spreadsheet
Section titled “googlesheets_read_spreadsheet”Returns everything about a spreadsheet — including spreadsheet metadata, sheet properties, cell values, formatting, themes, and pixel sizes. If you only need cell values, use googlesheets_get_values instead.
| Name | Type | Required | Description |
|---|---|---|---|
include_grid_data | boolean | No | Include cell data in the response |
ranges | string | No | Cell range to read in A1 notation |
schema_version | string | No | Optional schema version to use for tool execution |
spreadsheet_id | string | Yes | The ID of the Google Sheet to read |
tool_version | string | No | Optional tool version to use for execution |
googlesheets_update_values
Section titled “googlesheets_update_values”Update cell values in a specific range of a Google Sheet. Supports writing single cells or multiple rows and columns at once.
| Name | Type | Required | Description |
|---|---|---|---|
include_values_in_response | boolean | No | Return the updated cell values in the response |
range | string | Yes | Cell range to update in A1 notation |
schema_version | string | No | Optional schema version to use for tool execution |
spreadsheet_id | string | Yes | The ID of the Google Sheet to update |
tool_version | string | No | Optional tool version to use for execution |
value_input_option | string | No | How input values should be interpreted |
values | array<array> | Yes | 2D array of values to write to the range |