Google Sheets API
The Google Sheets API is a RESTful interface that lets you read and modify a spreadsheet's data..
The Google Sheets API is a RESTful interface that lets you read and modify a spreadsheet's data..
openapi: 3.1.0
info:
title: Google Sheets API
description: The Google Sheets API is a RESTful interface that lets you read and modify a spreadsheet's data..
version: 1.0.0
servers:
- url: https://sheets.googleapis.com
description: Google Sheets API Server
security:
- oauth2Auth: []
tags:
- name: Append
description: Operations related to Append
- name: Batch
description: Operations related to Batch
- name: Clear
description: Operations related to Clear
- name: Copy
description: Operations related to Copy
- name: Create
description: Operations related to Create
- name: Data
description: Operations related to Data
- name: Developer
description: Operations related to Developer
- name: Filter
description: Operations related to Filter
- name: Get
description: Operations related to Get
- name: Search
description: Operations related to Search
- name: Sheet
description: Operations related to Sheet
- name: Update
description: Operations related to Update
- name: Values
description: Operations related to Values
paths:
/v4/spreadsheets/{spreadsheetId}/values/{range}:
get:
tags:
- Get
- Values
summary: Google Get Values
description: Returns a range of values from a spreadsheet. The caller must specify the spreadsheet ID and a range.
security:
- oauth2Auth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: majorDimension
in: query
schema:
type: string
example: '{{majorDimension}}'
- name: valueRenderOption
in: query
schema:
type: string
example: '{{valueRenderOption}}'
- name: dateTimeRenderOption
in: query
schema:
type: string
example: '{{dateTimeRenderOption}}'
- name: access_token
in: query
schema:
type: string
description: OAuth access token.
example: '{{accessToken}}'
- name: alt
in: query
schema:
type: string
description: Data format for response.
example: '{{alt}}'
- name: callback
in: query
schema:
type: string
description: JSONP
example: '{{callback}}'
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: '{{fields}}'
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: '{{key}}'
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: '{{oauthToken}}'
- name: prettyPrint
in: query
schema:
type: string
description: Returns response with indentations and line breaks.
example: '{{prettyPrint}}'
- name: quotaUser
in: query
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
example: '{{quotaUser}}'
- name: upload_protocol
in: query
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
example: '{{uploadProtocol}}'
- name: uploadType
in: query
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
example: '{{uploadType}}'
- name: $.xgafv
in: query
schema:
type: string
description: V1 error format.
example: '{{.Xgafv}}'
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
- name: range
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{range}}'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesGetResponse'
examples:
SpreadsheetsValuesGetResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesGetResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesGetResponseExample
put:
tags:
- Update
- Values
summary: Google Update Values
description: Sets values in a range of a spreadsheet. The caller must specify the spreadsheet ID, range, and a valueInputOption.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
- name: range
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{range}}'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesPutRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesPutResponse'
examples:
SpreadsheetsValuesPutResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesPutResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesPutResponseExample
/v4/spreadsheets/{spreadsheetId}/values/{range}:append:
post:
tags:
- Append
- Values
summary: Google Append Values
description: Appends values to a spreadsheet. The input range is used to search for existing data and find a "table" within that range. Values will be appended to the next row of the table, starting with the first column of the table. See the [guide](/sheets/api/guides/values#appending_values) and [sample code](/sheets/api/samples/writing#append_values) for specific details of how tables are detected and data is appended. The caller must specify the spreadsheet ID, range, and a valueInputOption. The `valueInputOption` only controls how the input data will be added to the sheet (column-wise or row-wise), it does not influence what cell the data starts being written to.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
- name: range
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesPostResponse'
examples:
SpreadsheetsValuesPostResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesPostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesPostResponseExample
/v4/spreadsheets/{spreadsheetId}/values/{range}:clear:
post:
tags:
- Clear
- Values
summary: Google Clear Values
description: Clears values from a spreadsheet. The caller must specify the spreadsheet ID and range. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
- name: range
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesPostRequest1'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesPostResponse1'
examples:
SpreadsheetsValuesPostResponse1Example:
$ref: '#/components/examples/SpreadsheetsValuesPostResponse1Example'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesPostResponse1Example
/v4/spreadsheets/{spreadsheetId}/values:batchClear:
post:
tags:
- Batch
- Clear
- Values
summary: Google Batch Clear Values
description: Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges. Only values are cleared -- all other properties of the cell (such as formatting and data validation) are kept.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchClearPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchClearPostResponse'
examples:
SpreadsheetsValuesbatchClearPostResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesbatchClearPostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesbatchClearPostResponseExample
/v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter:
post:
tags:
- Batch
- Clear
- Data
- Filter
- Values
summary: Google Batch Clear Values by Data Filter
description: Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchClearByDataFilterPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchClearByDataFilterPostResponse'
examples:
SpreadsheetsValuesbatchClearByDataFilterPostResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesbatchClearByDataFilterPostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesbatchClearByDataFilterPostResponseExample
/v4/spreadsheets/{spreadsheetId}/values:batchGet:
get:
tags:
- Batch
- Get
- Values
summary: Google Get Values Batch
description: Returns one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges.
security:
- oauth2Auth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchGetGetResponse'
examples:
SpreadsheetsValuesbatchGetGetResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesbatchGetGetResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesbatchGetGetResponseExample
/v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter:
post:
tags:
- Data
- Filter
- Get
- Values
summary: Google Get Values By Data Filter
description: Returns one or more ranges of values that match the specified data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges that match any of the data filters in the request will be returned.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchGetByDataFilterPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchGetByDataFilterPostResponse'
examples:
SpreadsheetsValuesbatchGetByDataFilterPostResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesbatchGetByDataFilterPostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesbatchGetByDataFilterPostResponseExample
/v4/spreadsheets/{spreadsheetId}/values:batchUpdate:
post:
tags:
- Batch
- Update
- Values
summary: Google Batch Update Values
description: Sets values in one or more ranges of a spreadsheet. The caller must specify the spreadsheet ID, a valueInputOption, and one or more ValueRanges.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchUpdatePostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchUpdatePostResponse'
examples:
SpreadsheetsValuesbatchUpdatePostResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesbatchUpdatePostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesbatchUpdatePostResponseExample
/v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter:
post:
tags:
- Data
- Filter
- Update
summary: Google Update by Data Filter
description: Sets values in one or more ranges of a spreadsheet. The caller must specify the spreadsheet ID, a valueInputOption, and one or more DataFilterValueRanges.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchUpdateByDataFilterPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsValuesbatchUpdateByDataFilterPostResponse'
examples:
SpreadsheetsValuesbatchUpdateByDataFilterPostResponseExample:
$ref: '#/components/examples/SpreadsheetsValuesbatchUpdateByDataFilterPostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsValuesbatchUpdateByDataFilterPostResponseExample
/v4/spreadsheets:
post:
tags:
- Create
- Sheet
summary: Google Create Sheet
description: Creates a spreadsheet, returning the newly created spreadsheet.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsPostResponse'
examples:
SpreadsheetsPostResponseExample:
$ref: '#/components/examples/SpreadsheetsPostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsPostResponseExample
/v4/spreadsheets/{spreadsheetId}:
get:
tags:
- Get
- Sheet
summary: Google Get Sheet
description: 'Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. By default, data within grids is not returned. You can include grid data in one of 2 ways: * Specify a [field mask](https://developers.google.com/sheets/api/guides/field-masks) listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData URL parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, as a best practice, retrieve only the specific spreadsheet fields that you want. To retrieve only subsets of spreadsheet data, use the ranges URL parameter. Ranges are specified using [A1 notation](/sheets/api/guides/concepts#cell). You can define a single cell (for example, `A1`) or multiple cells (for example, `A1:D5`). You can also get cells from other sheets within the same spreadsheet (for example, `Sheet2!A1:C4`) or retrieve multiple ranges at once (for example, `?ranges=A1:D5&ranges=Sheet2!A1:C4`). Limiting the range returns only the portions of the spreadsheet that intersect the requested ranges.'
security:
- oauth2Auth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsGetResponse'
examples:
SpreadsheetsGetResponseExample:
$ref: '#/components/examples/SpreadsheetsGetResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsGetResponseExample
/v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo:
post:
tags:
- Copy
- Sheet
summary: Google Copy To Sheet
description: Copies a single sheet from a spreadsheet to another spreadsheet. Returns the properties of the newly created sheet.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
- name: sheetId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsSheetsPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsSheetsPostResponse'
examples:
SpreadsheetsSheetsPostResponseExample:
$ref: '#/components/examples/SpreadsheetsSheetsPostResponseExample'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsSheetsPostResponseExample
/v4/spreadsheets/{spreadsheetId}:batchUpdate:
post:
tags:
- Batch
- Update
summary: Google Batch Update Sheets
description: Applies one or more updates to the spreadsheet. Each request is validated before being applied. If any request is not valid then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. The replies will mirror the requests. For example, if you applied 4 updates and the 3rd one had a reply, then the response will have 2 empty replies, the actual reply, and another empty reply, in that order. Due to the collaborative nature of spreadsheets, it is not guaranteed that the spreadsheet will reflect exactly your changes after this completes, however it is guaranteed that the updates in the request will be applied together atomically. Your changes may be altered with respect to collaborator changes. If there are no collaborators, the spreadsheet should reflect your changes.
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsPostRequest1'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsPostResponse1'
examples:
SpreadsheetsPostResponse1Example:
$ref: '#/components/examples/SpreadsheetsPostResponse1Example'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsPostResponse1Example
/v4/spreadsheets/{spreadsheetId}:getByDataFilter:
post:
tags:
- Data
- Filter
- Get
- Sheet
summary: Google Get Sheet by Data Filter
description: 'Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. This method differs from GetSpreadsheet in that it allows selecting which subsets of spreadsheet data to return by specifying a dataFilters parameter. Multiple DataFilters can be specified. Specifying one or more data filters returns the portions of the spreadsheet that intersect ranges matched by any of the filters. By default, data within grids is not returned. You can include grid data one of 2 ways: * Specify a [field mask](https://developers.google.com/sheets/api/guides/field-masks) listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, as a best practice, retrieve only the specific spreadsheet fields that you want.'
security:
- oauth2Auth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsPostRequest2'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/SpreadsheetsPostResponse2'
examples:
SpreadsheetsPostResponse2Example:
$ref: '#/components/examples/SpreadsheetsPostResponse2Example'
x-api-evangelist-processing:
ChooseTags: true
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SpreadsheetsPostResponse2Example
/v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}:
get:
tags:
- Developer
- Get
summary: Google Get Developer Metadata
description: Returns the developer metadata with the specified ID. The caller must specify the spreadsheet ID and the developer metadata's unique metadataId.
security:
- oauth2Auth: []
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: spreadsheetId
in: path
schema:
type: string
required: true
description: '(Required) '
example: '{{spreadsheetId}}'
- name: metadataId
in: path
# --- truncated at 32 KB (2519 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google/refs/heads/main/openapi/google-sheets-api-openapi.yml