Skip to main content
Glama

sheets.spreadsheets.values.get

Retrieves cell values from a specified spreadsheet range by ID using A1 or R1C1 notation and returns the requested data as JSON.

Instructions

Returns a range of values from a spreadsheet. The caller must specify the spreadsheet ID and a range [HTTP GET]. Returns the requested resource as JSON — request bodies are built from the typed parameters (typed flags win over the params map), or read whole from body_file Siblings over the same resource: append, batchClear, batchClearByDataFilter, batchGet, batchGetByDataFilter, batchUpdate, batchUpdateByDataFilter, clear, update.

Input Schema

NameRequiredDescriptionDefault
queryNoExtra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe.
rangeYes[URL path segment] The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from.
paramsNoParameter map merged into the request; typed parameters win.
dry_runNoReturn the request that would be sent, without sending it.
body_fileNoRead the request body from this file ('-' for stdin) instead of building one from the parameters.
spreadsheetIdYes[URL path segment] The ID of the spreadsheet to retrieve data from.
majorDimensionNo[query parameter] The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?major Values: `DIMENSION_UNSPECIFIED` = The default value, do not use.; `ROWS` = Operates on the rows of a sheet.; `COLUMNS` = Operates on the columns of a sheet..
valueRenderOptionNo[query parameter] How values should be represented in the output. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `"$1.23"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `"=A1"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values)..
dateTimeRenderOptionNo[query parameter] How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in "serial number" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale)..

Output Schema

NameRequiredDescriptionDefault
rangeNo
valuesNo
majorDimensionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / dateTimeRenderOption / description
      Previous value: -"How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti"New value: +"[query parameter] How dates, times, and durations should be represented in the output. This is ignored if value_render_option is FORMATTED_VALUE. The default dateTime render opti Values: `SERIAL_NUMBER` = Instructs date, time, datetime, and duration fields to be output as doubles in \"serial number\" format, as popularized by Lotus 1-2-3. The whole number portion of the value (left of the decimal) counts the days since December 30th 1899. The fractional portion (right of the decimal) counts the time as a fraction of the day. For example, January 1st 1900 at noon would be 2.5, 2 because it's 2 days after December 30th 1899, and .5 because noon is half a day. February 1st 1900 at 3pm would be 33.625. This correctly treats the year 1900 as not a leap year.; `FORMATTED_STRING` = Instructs date, time, datetime, and duration fields to be output as strings in their given number format (which depends on the spreadsheet locale).."
    • changedInput schema / properties / majorDimension / description
      Previous value: -"The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?major"New value: +"[query parameter] The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?major Values: `DIMENSION_UNSPECIFIED` = The default value, do not use.; `ROWS` = Operates on the rows of a sheet.; `COLUMNS` = Operates on the columns of a sheet.."
    • changedInput schema / properties / range / description
      Previous value: -"The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from."New value: +"[URL path segment] The [A1 notation or R1C1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell) of the range to retrieve values from."
    • changedInput schema / properties / spreadsheetId / description
      Previous value: -"The ID of the spreadsheet to retrieve data from."New value: +"[URL path segment] The ID of the spreadsheet to retrieve data from."
    • changedInput schema / properties / valueRenderOption / description
      Previous value: -"How values should be represented in the output. The default render option is FORMATTED_VALUE."New value: +"[query parameter] How values should be represented in the output. The default render option is FORMATTED_VALUE. Values: `FORMATTED_VALUE` = Values will be calculated & formatted in the response according to the cell's formatting. Formatting is based on the spreadsheet's locale, not the requesting user's locale. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return `\"$1.23\"`.; `UNFORMATTED_VALUE` = Values will be calculated, but not formatted in the reply. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then `A2` would return the number `1.23`.; `FORMULA` = Values will not be calculated. The reply will include the formulas. For example, if `A1` is `1.23` and `A2` is `=A1` and formatted as currency, then A2 would return `\"=A1\"`. Sheets treats date and time values as decimal values. This lets you perform arithmetic on them in formulas. For more information on interpreting date and time values, see [About date & time values](https://developers.google.com/workspace/sheets/api/guides/formats#about_date_time_values).."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "majorDimension": {
      +      "enum": [
      +        "DIMENSION_UNSPECIFIED",
      +        "ROWS",
      +        "COLUMNS"
      +      ],
      +      "type": "string"
      +    },
      +    "range": {
      +      "type": "string"
      +    },
      +    "values": {
      +      "items": {
      +        "items": {
      +          "type": "any"
      +        },
      +        "type": "array"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the safety burden: '[HTTP GET]' signals a non-mutating read, and it notes the response is JSON. However the middle sentence about request bodies/body_file is boilerplate for a GET and it omits any auth or rendering-behavior context beyond what the schema's enum docs already give.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and required params are front-loaded, but the request-body/body_file sentence is largely irrelevant for a GET call and the trailing sibling enumeration is verbose. Structure is acceptable but contains filler that does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and the required inputs are covered. Still, for a 9-parameter read with no annotations, the description does little beyond naming the method and required fields, leaving selection guidance thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents range, majorDimension, valueRenderOption, etc., with rich enum explanations. The description only restates the two required params and adds no syntax or semantics beyond the schema — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Returns') and resource ('a range of values from a spreadsheet'), so the operation is unambiguous. It lists the sibling values.* tools by name, which helps distinguish this retrieve-one-range operation from append/clear/update, though the list is enumeration rather than a stated distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The prerequisite (spreadsheet ID and range) is stated, and the sibling list implies this is the single-range read versus batchGet or update. But it never says when to choose get over batchGet, append, or clear, leaving the agent to infer selection from names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools