
Google Sheets
Available ActionsEach successful request consumes credits as outlined below.
Details
Comprehensive Google Sheets integration tool that enables AI agents to perform all spreadsheet operations through OAuth authentication. This tool provides full access to Google Sheets functionality including creating and managing spreadsheets, reading and writing data with support for formulas and batch operations, managing sheets and tabs with adding deleting and renaming capabilities, applying advanced cell formatting with colors fonts and number formats, inserting and deleting rows and columns with automatic resizing, sorting and filtering data with complex criteria, and executing find and replace operations across entire spreadsheets. The tool supports both single and batch operations for optimal performance, handles all Google Sheets data types including formulas dates and currency, provides granular control over cell formatting and sheet properties, and includes advanced features like merging cells setting filters and protecting ranges. Perfect for data analysis reporting automation spreadsheet generation and collaborative document management workflows.
Use Cases
automated report generation, data import and export, spreadsheet templating, bulk data updates, financial modeling, inventory management, dashboard creation, collaborative data entry, formula automation, batch formatting operations
Connect Your Agent In 5 Min
Watch the setup guide for your platform
Or Install Locally
STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to https://api.agentpmt.com/mcp. All tool execution happens in the cloud and the server cannot edit any files on your computer.
npm install -g @agentpmt/mcp-routeragentpmt-setupcurl -X POST "https://api.agentpmt.com/products/purchase" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ********" \
-d '{
"product_id": "696302894cf4309309cac7b2",
"parameters": {
"action": "create_spreadsheet",
"title": "example_title"
}
}'import requests
import json
url = "https://api.agentpmt.com/products/purchase"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
}
data = {
"product_id": "696302894cf4309309cac7b2",
"parameters": {
"action": "create_spreadsheet",
"title": "example_title"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "696302894cf4309309cac7b2",
parameters: {
"action": "create_spreadsheet",
"title": "example_title"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));const axios = require('axios');
const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "696302894cf4309309cac7b2",
parameters: {
"action": "create_spreadsheet",
"title": "example_title"
}
};
axios.post(url, data, { headers })
.then(response => {
console.log(response.status);
console.log(response.data);
})
.catch(error => {
console.error("Error:", error.message);
});Login to view your API and budget keys. The example above uses placeholder values. Sign in to see personalized code with your bearer token.
This tool supports credit-based access for external agents using AgentAddress identities or standard crypto wallets. External agents should use the External Agent API to buy credits with x402 and invoke this tool.
1. Buy Credits
Purchase credits via x402 payment (500 credit minimum, 100 credits = $1).
# Request payment requirements (returns 402 + PAYMENT-REQUIRED header)
curl -i -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'
# Sign the EIP-3009 authorization, then retry with signature header
curl -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64-json>" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'2. Create a Session Nonce (nonce used in signed balance/invoke)
curl -s -X POST "https://www.agentpmt.com/api/external/auth/session" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET" }'3. Invoke This Tool
Sign the message with your wallet (EIP-191 personal-sign), then POST to the invoke endpoint.
# Sign this message (wallet MUST be lowercased):
# agentpmt-external
# wallet:0xyourwallet...
# session:<session_nonce>
# request:<request_id>
# action:invoke
# product:696302894cf4309309cac7b2
# payload:<sha256(canonical_json(parameters))>
curl -s -X POST "https://www.agentpmt.com/api/external/tools/696302894cf4309309cac7b2/invoke" \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0xYOUR_WALLET",
"session_nonce": "<session_nonce>",
"request_id": "invoke-uuid",
"signature": "0x<signature>",
"parameters": {
"action": "your_action",
"your_param": "value"
}
}'Credentials
Manage credentials in your dashboard.
Actions(44)
create_spreadsheet5cr2 params(1 required)Create a new Google Sheets spreadsheet.
create_spreadsheet5cr2 params(1 required)Create a new Google Sheets spreadsheet.
titlerequiredstringTitle for the new spreadsheet
initial_dataobjectInitial data for the first sheet. Contains 'sheet_name' (string) and 'values' (2D array).
sheet_name(string)- Name for the initial sheet (defaults to Sheet1)values(array)- 2D array of initial valuesget_spreadsheet5cr1 param(1 required)Get spreadsheet metadata including title, sheets, locale, and timezone.
get_spreadsheet5cr1 param(1 required)Get spreadsheet metadata including title, sheets, locale, and timezone.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
update_spreadsheet_properties5cr2 params(1 required)Update spreadsheet-level properties such as the title.
update_spreadsheet_properties5cr2 params(1 required)Update spreadsheet-level properties such as the title.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
titlestringNew title for the spreadsheet
search_spreadsheets5cr2 paramsSearch for Google Sheets spreadsheets by name. Returns results sorted by most recently modified.
search_spreadsheets5cr2 paramsSearch for Google Sheets spreadsheets by name. Returns results sorted by most recently modified.
querystringSearch query matching against spreadsheet name (contains match). Omit to list recent spreadsheets.
max_resultsintegerMaximum results to return (1-100)
20list_sheets5cr1 param(1 required)List all sheets/tabs in a spreadsheet.
list_sheets5cr1 param(1 required)List all sheets/tabs in a spreadsheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
add_sheet5cr6 params(2 required)Add a new sheet/tab to a spreadsheet.
add_sheet5cr6 params(2 required)Add a new sheet/tab to a spreadsheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
new_sheet_namerequiredstringName for the new sheet
tab_colorobjectRGB color for sheet tab (values 0-1)
red(number)- Red component (0-1)green(number)- Green component (0-1)blue(number)- Blue component (0-1)hiddenbooleanWhether the sheet should be hidden
num_rowsintegerNumber of rows for the new sheet
num_columnsintegerNumber of columns for the new sheet
delete_sheet5cr4 params(1 required)Delete a sheet/tab from a spreadsheet.
delete_sheet5cr4 params(1 required)Delete a sheet/tab from a spreadsheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
sheet_namestringName of the sheet to delete
sheet_idintegerNumeric ID of the sheet
sheet_indexinteger0-based index of the sheet
duplicate_sheet5cr5 params(1 required)Duplicate an existing sheet within the same spreadsheet.
duplicate_sheet5cr5 params(1 required)Duplicate an existing sheet within the same spreadsheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
sheet_namestringName of the sheet to duplicate
sheet_idintegerNumeric ID of the sheet to duplicate
sheet_indexinteger0-based index of the sheet to duplicate
new_sheet_namestringName for the duplicated sheet
rename_sheet5cr5 params(2 required)Rename a sheet/tab.
rename_sheet5cr5 params(2 required)Rename a sheet/tab.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
new_sheet_namerequiredstringNew name for the sheet
sheet_namestringCurrent name of the sheet to rename
sheet_idintegerNumeric ID of the sheet
sheet_indexinteger0-based index of the sheet
update_sheet_properties5cr7 params(1 required)Update sheet-level properties (title, tab color, visibility).
update_sheet_properties5cr7 params(1 required)Update sheet-level properties (title, tab color, visibility).
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
sheet_namestringName of the sheet to update
sheet_idintegerNumeric ID of the sheet
new_sheet_namestringNew name for the sheet
tab_colorobjectRGB color for sheet tab (values 0-1)
red(number)- Red component (0-1)green(number)- Green component (0-1)blue(number)- Blue component (0-1)hiddenbooleanWhether sheet should be hidden
right_to_leftbooleanWhether sheet should use right-to-left layout
get_values5cr4 params(2 required)Read values from a single range.
get_values5cr4 params(2 required)Read values from a single range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range (e.g., 'Sheet1!A1:C10')
value_render_optionstringHow to return values
FORMATTED_VALUEmajor_dimensionstringWhether to interpret arrays as rows or columns
ROWSbatch_get_values5cr4 params(2 required)Read values from multiple ranges at once.
batch_get_values5cr4 params(2 required)Read values from multiple ranges at once.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangesrequiredarrayArray of A1 notation ranges
value_render_optionstringHow to return values
FORMATTED_VALUEmajor_dimensionstringWhether to interpret arrays as rows or columns
ROWSget_sheet_data5cr2 params(1 required)Get all data from a specific sheet.
get_sheet_data5cr2 params(1 required)Get all data from a specific sheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
sheet_namestringName of the sheet (defaults to 'Sheet1')
search_values5cr6 params(1 required)Search for text within a spreadsheet.
search_values5cr6 params(1 required)Search for text within a spreadsheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
findstringText to search for (or use 'search_query' as alias)
search_querystringAlias for 'find'
rangestringA1 notation range to limit the search
match_casebooleanWhether search is case-sensitive
falsematch_entire_cellbooleanWhether to match entire cell contents only
falseupdate_values5cr7 params(3 required)Write values to a single range (overwrites existing data).
update_values5cr7 params(3 required)Write values to a single range (overwrites existing data).
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range
valuesrequiredarray2D array of values (outer array = rows, inner arrays = columns)
value_input_optionstringHow to interpret input values
USER_ENTEREDmajor_dimensionstringWhether to interpret arrays as rows or columns
ROWSinclude_values_in_responsebooleanWhether to return updated values in response
falseresponse_value_render_optionstringHow to render values in response
FORMATTED_VALUEbatch_update_values5cr4 params(2 required)Write values to multiple ranges at once.
batch_update_values5cr4 params(2 required)Write values to multiple ranges at once.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
datarequiredarrayArray of range/values pairs
value_input_optionstringHow to interpret input values
USER_ENTEREDinclude_values_in_responsebooleanWhether to return updated values
falseappend_values5cr6 params(3 required)Append rows after the last row of existing data.
append_values5cr6 params(3 required)Append rows after the last row of existing data.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range (data will be appended after the last row in this range)
valuesrequiredarray2D array of values to append
value_input_optionstringHow to interpret input values
USER_ENTEREDmajor_dimensionstringWhether to interpret arrays as rows or columns
ROWSinclude_values_in_responsebooleanWhether to return updated values
falseclear_values5cr2 params(2 required)Clear values from a range (preserves formatting).
clear_values5cr2 params(2 required)Clear values from a range (preserves formatting).
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range to clear
batch_clear_values5cr2 params(2 required)Clear values from multiple ranges at once.
batch_clear_values5cr2 params(2 required)Clear values from multiple ranges at once.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangesrequiredarrayArray of A1 notation ranges to clear
format_cells5cr5 params(3 required)Apply text and cell formatting to a range.
format_cells5cr5 params(3 required)Apply text and cell formatting to a range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range (can include sheet name like 'Sheet1!A1:B2')
cell_formatrequiredobjectCell formatting options. Color fields require RGB dicts with 0-1 float values.
bold(boolean)- Bold textitalic(boolean)- Italic textstrikethrough(boolean)- Strikethrough textunderline(boolean)- Underline textfont_size(integer)- Font size in pointsfont_family(string)- Font family nametext_color(object)- Text color (RGB 0-1)background_color(object)- Background color (RGB 0-1)horizontal_alignment(string)- Horizontal alignmentvertical_alignment(string)- Vertical alignmentwrap_strategy(string)- Text wrapping strategysheet_namestringSheet name (can also be embedded in range)
sheet_idintegerNumeric sheet ID
set_number_format5cr5 params(3 required)Apply number formatting to a range.
set_number_format5cr5 params(3 required)Apply number formatting to a range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range
number_formatrequiredobjectNumber format specification
format_type(string)- Number format typepattern(string)- Custom number format pattern (e.g., '$#,##0.00')sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
merge_cells5cr5 params(2 required)Merge cells in a range.
merge_cells5cr5 params(2 required)Merge cells in a range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range to merge
sheet_namestringSheet name (can also be embedded in range)
sheet_idintegerNumeric sheet ID
merge_typestringHow to merge cells
MERGE_ALLunmerge_cells5cr4 params(2 required)Unmerge previously merged cells.
unmerge_cells5cr4 params(2 required)Unmerge previously merged cells.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range to unmerge
sheet_namestringSheet name (can also be embedded in range)
sheet_idintegerNumeric sheet ID
set_borders5cr4 params(2 required)Set borders on cells in a range.
set_borders5cr4 params(2 required)Set borders on cells in a range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
insert_rows5cr6 params(2 required)Insert rows at a specified position.
insert_rows5cr6 params(2 required)Insert rows at a specified position.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
start_indexrequiredinteger0-based row index where insertion starts
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
num_rowsintegerNumber of rows to insert (default 1)
inherit_from_beforebooleanWhether new rows should inherit formatting from the row before
falseinsert_columns5cr6 params(2 required)Insert columns at a specified position.
insert_columns5cr6 params(2 required)Insert columns at a specified position.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
start_indexrequiredinteger0-based column index where insertion starts
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
num_columnsintegerNumber of columns to insert (default 1)
inherit_from_beforebooleanWhether new columns should inherit formatting from the column before
falsedelete_rows5cr5 params(3 required)Delete rows by index range.
delete_rows5cr5 params(3 required)Delete rows by index range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
start_indexrequiredinteger0-based starting row index
end_indexrequiredinteger0-based ending row index (exclusive)
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
delete_columns5cr5 params(3 required)Delete columns by index range.
delete_columns5cr5 params(3 required)Delete columns by index range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
start_indexrequiredinteger0-based starting column index
end_indexrequiredinteger0-based ending column index (exclusive)
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
resize_dimensions5cr7 params(5 required)Set row height or column width in pixels.
resize_dimensions5cr7 params(5 required)Set row height or column width in pixels.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
dimensionrequiredstringDimension to resize
start_indexrequiredinteger0-based starting index
end_indexrequiredinteger0-based ending index (exclusive)
pixel_sizerequiredintegerHeight (for rows) or width (for columns) in pixels
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
auto_resize_dimensions5cr6 params(4 required)Auto-fit row height or column width to content.
auto_resize_dimensions5cr6 params(4 required)Auto-fit row height or column width to content.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
dimensionrequiredstringDimension to auto-resize
start_indexrequiredinteger0-based starting index
end_indexrequiredinteger0-based ending index (exclusive)
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
sort_range5cr5 params(3 required)Sort data in a range by one or more columns.
sort_range5cr5 params(3 required)Sort data in a range by one or more columns.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range to sort
sort_specsrequiredarraySorting specifications
sheet_namestringSheet name (can also be embedded in range)
sheet_idintegerNumeric sheet ID
find_replace5cr9 params(3 required)Find and replace text across the spreadsheet or a specific sheet.
find_replace5cr9 params(3 required)Find and replace text across the spreadsheet or a specific sheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
findrequiredstringText to search for
replacementrequiredstringText to replace with
sheet_namestringSheet name (limit to one sheet)
sheet_idintegerNumeric sheet ID (limit to one sheet)
match_casebooleanWhether search is case-sensitive
falsematch_entire_cellbooleanWhether to match entire cell contents only
falsesearch_by_regexbooleanWhether to use regex for search
falseinclude_formulasbooleanWhether to search in formulas
falsecopy_paste5cr4 params(2 required)Copy and paste a range to another location.
copy_paste5cr4 params(2 required)Copy and paste a range to another location.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringSource A1 notation range
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
cut_paste5cr4 params(2 required)Cut and paste a range to another location.
cut_paste5cr4 params(2 required)Cut and paste a range to another location.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringSource A1 notation range
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
set_basic_filter5cr5 params(2 required)Apply a basic filter to a data range.
set_basic_filter5cr5 params(2 required)Apply a basic filter to a data range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range for the filter
sheet_namestringSheet name (can also be embedded in range)
sheet_idintegerNumeric sheet ID
filter_criteriaobjectFilter criteria specification
clear_filter5cr3 params(1 required)Remove the basic filter from a sheet.
clear_filter5cr3 params(1 required)Remove the basic filter from a sheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
protect_range5cr6 params(2 required)Protect a range from editing.
protect_range5cr6 params(2 required)Protect a range from editing.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range to protect
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
descriptionstringDescription for the protected range
warning_onlybooleanWhether protection should be warning-only (users can still edit)
falseunprotect_range5cr4 params(2 required)Remove protection from a range.
unprotect_range5cr4 params(2 required)Remove protection from a range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range to unprotect
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
add_named_range5cr5 params(3 required)Create a named range in the spreadsheet.
add_named_range5cr5 params(3 required)Create a named range in the spreadsheet.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
namerequiredstringName for the named range
rangerequiredstringA1 notation range
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
delete_named_range5cr2 params(2 required)Delete a named range.
delete_named_range5cr2 params(2 required)Delete a named range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
named_range_idrequiredstringID of the named range to delete
set_data_validation5cr5 params(3 required)Set data validation rules on a range.
set_data_validation5cr5 params(3 required)Set data validation rules on a range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range
validation_rulerequiredobjectData validation rule specification
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
add_conditional_formatting5cr5 params(3 required)Add conditional formatting rules to a range.
add_conditional_formatting5cr5 params(3 required)Add conditional formatting rules to a range.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
rangerequiredstringA1 notation range
rulerequiredobjectConditional formatting rule specification
sheet_namestringSheet name
sheet_idintegerNumeric sheet ID
batch_update5cr2 params(2 required)Execute multiple raw Google Sheets API requests in a single call for advanced operations.
batch_update5cr2 params(2 required)Execute multiple raw Google Sheets API requests in a single call for advanced operations.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
requestsrequiredarrayArray of raw Sheets API batch update request objects
share_spreadsheet5cr4 params(3 required)Share a spreadsheet with a user, group, domain, or anyone.
share_spreadsheet5cr4 params(3 required)Share a spreadsheet with a user, group, domain, or anyone.
spreadsheet_idrequiredstringGoogle Sheets ID or full spreadsheet URL
emailrequiredstringEmail address for sharing
rolerequiredstringSharing role
sharing_typestringSharing type
userUsage Instructions
Usage guidance provided directly by the developer for this product.
Google Sheets
Comprehensive spreadsheet operations: create, read, write, format, and manage Google Sheets.
Spreadsheet Identification
All actions (except create_spreadsheet and search_spreadsheets) require a spreadsheet. Provide either:
- spreadsheet_id - The spreadsheet ID (e.g.,
1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms) - spreadsheet_url - Full URL (e.g.,
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA.../edit)
Range Notation
Ranges use A1 notation: A1:C10, Sheet1!A1:C10, A:C (entire columns), 1:5 (entire rows).
Value Format
Values are 2D arrays: outer array = rows, inner arrays = columns.
[["Name", "Age"], ["Alice", 30], ["Bob", 25]]
Actions
Spreadsheet Management
create_spreadsheet
Create a new spreadsheet.
- Required:
title - Optional:
initial_data(object withsheet_nameandvalues2D array)
{"action": "create_spreadsheet", "title": "Q1 Budget"}
{"action": "create_spreadsheet", "title": "Team Roster", "initial_data": {"sheet_name": "Players", "values": [["Name", "Position"], ["Alice", "Forward"]]}}
get_spreadsheet
Get spreadsheet metadata (title, sheets, locale, timezone).
- Required:
spreadsheet_id
{"action": "get_spreadsheet", "spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"}
update_spreadsheet_properties
Update spreadsheet-level properties such as the title.
- Required:
spreadsheet_id - Optional:
title
{"action": "update_spreadsheet_properties", "spreadsheet_id": "SPREADSHEET_ID", "title": "Renamed Budget"}
search_spreadsheets
Search for spreadsheets by name. Returns results sorted by most recently modified.
- Optional:
query(name contains match; omit to list recent spreadsheets),max_results(1-100, default 20)
{"action": "search_spreadsheets", "query": "budget", "max_results": 5}
share_spreadsheet
Share a spreadsheet with a user.
- Required:
spreadsheet_id,email,role - Optional:
type(default:user; options:user,group,domain,anyone)
Role options: owner, organizer, fileOrganizer, writer, commenter, reader
{"action": "share_spreadsheet", "spreadsheet_id": "SPREADSHEET_ID", "email": "bob@example.com", "role": "writer"}
Sheet (Tab) Operations
list_sheets
List all sheets/tabs in a spreadsheet.
- Required:
spreadsheet_id
{"action": "list_sheets", "spreadsheet_id": "SPREADSHEET_ID"}
add_sheet
Add a new sheet/tab.
- Required:
spreadsheet_id,new_sheet_name - Optional:
tab_color(RGB object with 0-1 floats),hidden,num_rows,num_columns
{"action": "add_sheet", "spreadsheet_id": "SPREADSHEET_ID", "new_sheet_name": "Q2 Data", "tab_color": {"red": 0.2, "green": 0.6, "blue": 1.0}}
delete_sheet
Delete a sheet/tab.
- Required:
spreadsheet_id, and one of:sheet_name,sheet_id, orsheet_index
{"action": "delete_sheet", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Old Data"}
duplicate_sheet
Duplicate an existing sheet within the same spreadsheet.
- Required:
spreadsheet_id, and one of:sheet_name,sheet_id, orsheet_index - Optional:
new_sheet_name
{"action": "duplicate_sheet", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Template", "new_sheet_name": "March Copy"}
rename_sheet
Rename a sheet/tab.
- Required:
spreadsheet_id,new_sheet_name, and one of:sheet_name,sheet_id, orsheet_index
{"action": "rename_sheet", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1", "new_sheet_name": "Revenue"}
update_sheet_properties
Update sheet-level properties (title, tab color, visibility).
- Required:
spreadsheet_id, and one of:sheet_nameorsheet_id - Optional:
new_sheet_name,tab_color,hidden
{"action": "update_sheet_properties", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Data", "tab_color": {"red": 1.0, "green": 0, "blue": 0}, "hidden": false}
Reading Data
get_values
Read values from a single range.
- Required:
spreadsheet_id,range - Optional:
value_render_option(FORMATTED_VALUEdefault,UNFORMATTED_VALUE,FORMULA),major_dimension(ROWSdefault,COLUMNS)
{"action": "get_values", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A1:D10"}
batch_get_values
Read values from multiple ranges at once.
- Required:
spreadsheet_id,ranges(array of A1 ranges) - Optional:
value_render_option,major_dimension
{"action": "batch_get_values", "spreadsheet_id": "SPREADSHEET_ID", "ranges": ["Sheet1!A1:B5", "Sheet2!A1:C3"]}
get_sheet_data
Get all data from a specific sheet.
- Required:
spreadsheet_id - Optional:
sheet_name(defaults toSheet1)
{"action": "get_sheet_data", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Inventory"}
search_values
Search for text within a spreadsheet.
- Required:
spreadsheet_id,find(orsearch_query) - Optional:
range(limit search to range),match_case,match_entire_cell
{"action": "search_values", "spreadsheet_id": "SPREADSHEET_ID", "find": "overdue", "range": "Sheet1!A1:Z100"}
Writing Data
update_values
Write values to a single range (overwrites existing data).
- Required:
spreadsheet_id,range,values - Optional:
value_input_option(USER_ENTEREDdefault,RAW),major_dimension,include_values_in_response
{"action": "update_values", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A1:C2", "values": [["Name", "Score", "Grade"], ["Alice", 95, "A"]]}
append_values
Append rows after the last row of existing data.
- Required:
spreadsheet_id,range,values - Optional:
value_input_option,major_dimension,include_values_in_response
{"action": "append_values", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A:C", "values": [["Bob", 88, "B+"], ["Carol", 92, "A-"]]}
batch_update_values
Write values to multiple ranges at once.
- Required:
spreadsheet_id,data(array of objects withrangeandvalues) - Optional:
value_input_option,include_values_in_response
{"action": "batch_update_values", "spreadsheet_id": "SPREADSHEET_ID", "data": [{"range": "Sheet1!A1:B2", "values": [["X", "Y"], [1, 2]]}, {"range": "Sheet2!A1", "values": [["Done"]]}]}
clear_values
Clear values from a range (preserves formatting).
- Required:
spreadsheet_id,range
{"action": "clear_values", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A1:C10"}
batch_clear_values
Clear multiple ranges at once.
- Required:
spreadsheet_id,ranges
{"action": "batch_clear_values", "spreadsheet_id": "SPREADSHEET_ID", "ranges": ["Sheet1!A1:B5", "Sheet1!D1:D5"]}
Formatting
format_cells
Apply text and cell formatting.
- Required:
spreadsheet_id,range,cell_format, and one of:sheet_name,sheet_id, or sheet name embedded in range (e.g.,Sheet1!A1:B2) - cell_format options:
bold,italic,underline,strikethrough,font_size,font_family,text_color(RGB 0-1),background_color(RGB 0-1),horizontal_alignment(LEFT/CENTER/RIGHT),vertical_alignment(TOP/MIDDLE/BOTTOM),wrap_strategy(OVERFLOW_CELL/CLIP/WRAP)
{"action": "format_cells", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A1:D1", "cell_format": {"bold": true, "background_color": {"red": 0.9, "green": 0.9, "blue": 0.9}, "horizontal_alignment": "CENTER"}}
set_number_format
Apply number formatting to a range.
- Required:
spreadsheet_id,range,number_format, and one of:sheet_name,sheet_id, or sheet name in range - number_format: object with
type(TEXT,NUMBER,PERCENT,CURRENCY,DATE,TIME,DATE_TIME,SCIENTIFIC) and optionalpattern
{"action": "set_number_format", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!B2:B100", "sheet_name": "Sheet1", "number_format": {"type": "CURRENCY", "pattern": "$#,##0.00"}}
merge_cells
Merge cells in a range.
- Required:
spreadsheet_id,range, and one of:sheet_name,sheet_id, or sheet name in range - Optional:
merge_type(MERGE_ALLdefault,MERGE_ROWS,MERGE_COLUMNS)
{"action": "merge_cells", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A1:D1", "merge_type": "MERGE_ALL"}
unmerge_cells
Unmerge previously merged cells.
- Required:
spreadsheet_id,range, and one of:sheet_name,sheet_id, or sheet name in range
{"action": "unmerge_cells", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A1:D1"}
Row and Column Operations
All row/column operations use 0-based indexing.
insert_rows
Insert rows at a position.
- Required:
spreadsheet_id,start_index(0-based), and one of:sheet_nameorsheet_id - Optional:
num_rows(default 1),inherit_from_before
{"action": "insert_rows", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1", "start_index": 2, "num_rows": 3}
insert_columns
Insert columns at a position.
- Required:
spreadsheet_id,start_index(0-based), and one of:sheet_nameorsheet_id - Optional:
num_columns(default 1),inherit_from_before
{"action": "insert_columns", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1", "start_index": 1, "num_columns": 2}
delete_rows
Delete rows by index range.
- Required:
spreadsheet_id,start_index,end_index(exclusive, 0-based), and one of:sheet_nameorsheet_id
{"action": "delete_rows", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1", "start_index": 5, "end_index": 8}
delete_columns
Delete columns by index range.
- Required:
spreadsheet_id,start_index,end_index(exclusive, 0-based), and one of:sheet_nameorsheet_id
{"action": "delete_columns", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1", "start_index": 2, "end_index": 4}
resize_dimensions
Set row height or column width in pixels.
- Required:
spreadsheet_id,dimension(ROWSorCOLUMNS),start_index,end_index,pixel_size, and one of:sheet_nameorsheet_id
{"action": "resize_dimensions", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1", "dimension": "COLUMNS", "start_index": 0, "end_index": 3, "pixel_size": 200}
auto_resize_dimensions
Auto-fit row height or column width to content.
- Required:
spreadsheet_id,dimension(ROWSorCOLUMNS),start_index,end_index, and one of:sheet_nameorsheet_id
{"action": "auto_resize_dimensions", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1", "dimension": "COLUMNS", "start_index": 0, "end_index": 5}
Data Manipulation
sort_range
Sort data in a range by one or more columns.
- Required:
spreadsheet_id,range,sort_specs, and one of:sheet_name,sheet_id, or sheet name in range - sort_specs: array of objects with
dimensionIndex(0-based column) andsortOrder(ASCENDINGorDESCENDING)
{"action": "sort_range", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A2:D100", "sort_specs": [{"dimensionIndex": 1, "sortOrder": "DESCENDING"}]}
find_replace
Find and replace text across the spreadsheet or a specific sheet.
- Required:
spreadsheet_id,find,replacement - Optional:
sheet_nameorsheet_id(limit to one sheet),match_case,match_entire_cell,search_by_regex,include_formulas
{"action": "find_replace", "spreadsheet_id": "SPREADSHEET_ID", "find": "TBD", "replacement": "Confirmed", "sheet_name": "Sheet1"}
Filtering
set_basic_filter
Apply a basic filter to a data range.
- Required:
spreadsheet_id,range, and one of:sheet_name,sheet_id, or sheet name in range - Optional:
filter_criteria
{"action": "set_basic_filter", "spreadsheet_id": "SPREADSHEET_ID", "range": "Sheet1!A1:D100"}
clear_filter
Remove the basic filter from a sheet.
- Required:
spreadsheet_id, and one of:sheet_nameorsheet_id
{"action": "clear_filter", "spreadsheet_id": "SPREADSHEET_ID", "sheet_name": "Sheet1"}
Advanced
batch_update
Execute multiple raw Google Sheets API requests in a single call. Use this for operations not covered by other actions.
- Required:
spreadsheet_id,requests(array of Sheets API batch update request objects)
{"action": "batch_update", "spreadsheet_id": "SPREADSHEET_ID", "requests": [{"updateSheetProperties": {"properties": {"sheetId": 0, "title": "New Name"}, "fields": "title"}}]}
Common Workflows
Build a report from scratch
create_spreadsheetwith title and initial headersappend_valuesto add data rowsformat_cellsto style the header row (bold, background color)set_number_formatfor currency/percentage columnsauto_resize_dimensionsto fit column widthsshare_spreadsheetwith stakeholders
Update existing data
search_spreadsheetsto find the spreadsheet by nameget_valuesto read current dataupdate_valuesorappend_valuesto write changessort_rangeto re-sort if needed
Manage multiple sheets
list_sheetsto see all tabsadd_sheetorduplicate_sheetto create new tabsrename_sheetorupdate_sheet_propertiesto organizedelete_sheetto remove unused tabs
Important Notes
- Value input:
USER_ENTERED(default) parses values as if typed by a user (formulas, dates, numbers are interpreted).RAWstores values exactly as provided. - Colors: All color fields (text_color, background_color, tab_color) require RGB objects with float values from 0 to 1. Hex strings are not supported. Example:
{"red": 0.2, "green": 0.6, "blue": 1.0} - Indexing: Row/column operations (insert, delete, resize) use 0-based indexing.
end_indexis exclusive. - Sheet identification: Most sheet operations accept
sheet_name,sheet_id, orsheet_index. You can also embed the sheet name in the range (e.g.,Sheet1!A1:C10). - Formulas: Write formulas by including them in values with a leading
=and usingUSER_ENTEREDinput option. Example:[["=SUM(B2:B10)"]]
About The Developer

Apoth3osis
Joined Agent Payment: August 14, 2025
We build tools that enable AI agents to excel in the mathematical realm.
Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.





