Google Sheets developerMetadata API

Operations on developer metadata

OpenAPI Specification

google-sheets-developermetadata-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Sheets developerMetadata API
  description: The Google Sheets API lets you read, write, and format data in Google Sheets. It supports creating spreadsheets, reading and writing cell values, updating formatting, managing sheets within a spreadsheet, and working with developer metadata.
  version: v4
  termsOfService: https://developers.google.com/terms
  contact:
    name: Google Workspace Developer Support
    url: https://developers.google.com/sheets/api/support
  license:
    name: Creative Commons Attribution 4.0
    url: https://creativecommons.org/licenses/by/4.0/
servers:
- url: https://sheets.googleapis.com/v4
  description: Google Sheets API v4 production server
security:
- oauth2: []
- apiKey: []
tags:
- name: developerMetadata
  description: Operations on developer metadata
paths:
  /spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}:
    get:
      operationId: getDeveloperMetadata
      summary: Google Sheets 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.
      tags:
      - developerMetadata
      parameters:
      - $ref: '#/components/parameters/spreadsheetId'
      - name: metadataId
        in: path
        description: The ID of the developer metadata to retrieve.
        required: true
        schema:
          type: integer
        example: '500123'
      responses:
        '200':
          description: Successful response containing the developer metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeveloperMetadata'
              examples:
                Getdevelopermetadata200Example:
                  summary: Default getDeveloperMetadata 200 response
                  x-microcks-default: true
                  value:
                    metadataId: '500123'
                    metadataKey: example_value
                    metadataValue: example_value
                    location:
                      locationType: DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED
                      spreadsheet: true
                      sheetId: '500123'
                    visibility: DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /spreadsheets/{spreadsheetId}/developerMetadata:search:
    post:
      operationId: searchDeveloperMetadata
      summary: Google Sheets Search Developer Metadata
      description: Returns all developer metadata matching the specified DataFilter. If the provided DataFilter represents a DeveloperMetadataLookup object, this will return all DeveloperMetadata entries selected by it.
      tags:
      - developerMetadata
      parameters:
      - $ref: '#/components/parameters/spreadsheetId'
      requestBody:
        description: The search request.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dataFilters:
                  type: array
                  description: The data filters describing the criteria used to determine which developer metadata entries to return.
                  items:
                    $ref: '#/components/schemas/DataFilter'
            examples:
              SearchdevelopermetadataRequestExample:
                summary: Default searchDeveloperMetadata request
                x-microcks-default: true
                value:
                  dataFilters:
                  - a1Range: example_value
      responses:
        '200':
          description: Successful response containing matching developer metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  matchedDeveloperMetadata:
                    type: array
                    items:
                      type: object
                      properties:
                        developerMetadata:
                          $ref: '#/components/schemas/DeveloperMetadata'
                        dataFilters:
                          type: array
                          items:
                            $ref: '#/components/schemas/DataFilter'
              examples:
                Searchdevelopermetadata200Example:
                  summary: Default searchDeveloperMetadata 200 response
                  x-microcks-default: true
                  value:
                    matchedDeveloperMetadata:
                    - developerMetadata:
                        metadataId: '500123'
                        metadataKey: example_value
                        metadataValue: example_value
                        visibility: DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED
                      dataFilters:
                      - {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    DeveloperMetadataLocation:
      type: object
      description: A location where metadata may be associated in a spreadsheet.
      properties:
        locationType:
          type: string
          description: The type of location this object represents.
          enum:
          - DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED
          - ROW
          - COLUMN
          - SHEET
          - SPREADSHEET
          example: DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED
        spreadsheet:
          type: boolean
          description: True when metadata is associated with an entire spreadsheet.
          example: true
        sheetId:
          type: integer
          description: The ID of the sheet when metadata is associated with an entire sheet.
          example: '500123'
        dimensionRange:
          $ref: '#/components/schemas/DimensionRange'
    GridRange:
      type: object
      description: A range on a sheet. All indexes are zero-based.
      properties:
        sheetId:
          type: integer
          description: The sheet this range is on.
          example: '500123'
        startRowIndex:
          type: integer
          description: The start row (inclusive) of the range, or not set if unbounded.
          example: 10
        endRowIndex:
          type: integer
          description: The end row (exclusive) of the range, or not set if unbounded.
          example: 10
        startColumnIndex:
          type: integer
          description: The start column (inclusive) of the range, or not set if unbounded.
          example: 10
        endColumnIndex:
          type: integer
          description: The end column (exclusive) of the range, or not set if unbounded.
          example: 10
    ErrorResponse:
      type: object
      description: An error response from the API.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: The HTTP status code.
            message:
              type: string
              description: A human-readable error message.
            status:
              type: string
              description: The status of the error.
            details:
              type: array
              description: Additional error details.
              items:
                type: object
          example: example_value
    DeveloperMetadata:
      type: object
      description: Developer metadata associated with a location or object in a spreadsheet.
      properties:
        metadataId:
          type: integer
          description: The spreadsheet-scoped unique ID that identifies the metadata.
          example: '500123'
        metadataKey:
          type: string
          description: The metadata key.
          example: example_value
        metadataValue:
          type: string
          description: Data associated with the metadata's key.
          example: example_value
        location:
          $ref: '#/components/schemas/DeveloperMetadataLocation'
        visibility:
          type: string
          description: The metadata visibility.
          enum:
          - DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED
          - DOCUMENT
          - PROJECT
          example: DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED
    DataFilter:
      type: object
      description: Filter that describes what data should be selected or returned from a request.
      properties:
        developerMetadataLookup:
          $ref: '#/components/schemas/DeveloperMetadataLookup'
        a1Range:
          type: string
          description: Selects data that matches the specified A1 range.
          example: example_value
        gridRange:
          $ref: '#/components/schemas/GridRange'
    DeveloperMetadataLookup:
      type: object
      description: Selects DeveloperMetadata that matches all of the specified fields.
      properties:
        locationType:
          type: string
          description: Limits the selected developer metadata to that which has a matching location type.
          enum:
          - DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED
          - ROW
          - COLUMN
          - SHEET
          - SPREADSHEET
          example: DEVELOPER_METADATA_LOCATION_TYPE_UNSPECIFIED
        metadataLocation:
          $ref: '#/components/schemas/DeveloperMetadataLocation'
        locationMatchingStrategy:
          type: string
          description: Determines how this lookup matches the location.
          enum:
          - DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED
          - EXACT_LOCATION
          - INTERSECTING_LOCATION
          example: DEVELOPER_METADATA_LOCATION_MATCHING_STRATEGY_UNSPECIFIED
        metadataId:
          type: integer
          description: Limits the selected developer metadata to that which has a matching metadata ID.
          example: '500123'
        metadataKey:
          type: string
          description: Limits the selected developer metadata to that which has a matching metadata key.
          example: example_value
        metadataValue:
          type: string
          description: Limits the selected developer metadata to that which has a matching metadata value.
          example: example_value
        visibility:
          type: string
          description: Limits the selected developer metadata to that which has a matching visibility.
          enum:
          - DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED
          - DOCUMENT
          - PROJECT
          example: DEVELOPER_METADATA_VISIBILITY_UNSPECIFIED
    Dimension:
      type: string
      description: Indicates which dimension an operation should apply to.
      enum:
      - DIMENSION_UNSPECIFIED
      - ROWS
      - COLUMNS
    DimensionRange:
      type: object
      description: A range along a single dimension on a sheet.
      properties:
        sheetId:
          type: integer
          description: The sheet this span is on.
          example: '500123'
        dimension:
          $ref: '#/components/schemas/Dimension'
        startIndex:
          type: integer
          description: The start (inclusive) of the span.
          example: 10
        endIndex:
          type: integer
          description: The end (exclusive) of the span.
          example: 10
  parameters:
    spreadsheetId:
      name: spreadsheetId
      in: path
      description: The ID of the spreadsheet to retrieve or modify.
      required: true
      schema:
        type: string
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded. Too many requests in a given amount of time.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: The caller does not have permission to access the requested resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The requested spreadsheet or range was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication for accessing user spreadsheets.
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/v2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/spreadsheets: Read and write access to all spreadsheets.
            https://www.googleapis.com/auth/spreadsheets.readonly: Read-only access to all spreadsheets.
            https://www.googleapis.com/auth/drive: Full access to Google Drive files.
            https://www.googleapis.com/auth/drive.readonly: Read-only access to Google Drive files.
            https://www.googleapis.com/auth/drive.file: Access to files created or opened by the app.
    apiKey:
      type: apiKey
      in: query
      name: key
      description: API key for accessing public spreadsheets without user authentication.
externalDocs:
  description: Google Sheets API documentation
  url: https://developers.google.com/sheets/api