Google Data Studio · Schema

Looker Studio Community Connector

Defines the structure and interface for a Looker Studio Community Connector built with Google Apps Script. Community Connectors enable direct connections from Looker Studio to any internet-accessible data source by implementing getAuthType, getConfig, getSchema, and getData functions.

AnalyticsBusiness IntelligenceDashboardsDataReportingVisualization

Properties

Name Type Description
authType object
config object
schema object
data object
View JSON Schema on GitHub

JSON Schema

google-data-studio-connector-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "google-data-studio-connector-schema.json",
  "title": "Looker Studio Community Connector",
  "description": "Defines the structure and interface for a Looker Studio Community Connector built with Google Apps Script. Community Connectors enable direct connections from Looker Studio to any internet-accessible data source by implementing getAuthType, getConfig, getSchema, and getData functions.",
  "type": "object",
  "properties": {
    "authType": {
      "$ref": "#/$defs/AuthTypeResponse"
    },
    "config": {
      "$ref": "#/$defs/ConfigResponse"
    },
    "schema": {
      "$ref": "#/$defs/SchemaResponse"
    },
    "data": {
      "$ref": "#/$defs/DataResponse"
    }
  },
  "$defs": {
    "AuthTypeResponse": {
      "type": "object",
      "description": "Response from getAuthType() specifying the authentication method used by the connector.",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The authentication type used by the connector.",
          "enum": [
            "NONE",
            "OAUTH2",
            "KEY",
            "USER_PASS",
            "USER_TOKEN",
            "PATH_USER_PASS",
            "PATH_KEY"
          ]
        },
        "helpUrl": {
          "type": "string",
          "description": "Optional documentation URL. Available for USER_TOKEN, USER_PASS, KEY, PATH_USER_PASS, and PATH_KEY auth types.",
          "format": "uri"
        }
      },
      "additionalProperties": false
    },
    "ConfigResponse": {
      "type": "object",
      "description": "Response from getConfig() defining user-configurable options for the connector.",
      "properties": {
        "configParams": {
          "type": "array",
          "description": "Array of configuration parameters presented to the user.",
          "items": {
            "$ref": "#/$defs/ConfigParam"
          }
        },
        "dateRangeRequired": {
          "type": "boolean",
          "description": "Whether date range filtering applies to this connector."
        },
        "isSteppedConfig": {
          "type": "boolean",
          "description": "Whether to prompt users step-by-step for configuration values."
        }
      },
      "additionalProperties": false
    },
    "ConfigParam": {
      "type": "object",
      "description": "A single configuration parameter for the connector.",
      "required": [
        "type",
        "name"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of configuration control to display.",
          "enum": [
            "TEXTINPUT",
            "TEXTAREA",
            "SELECT_SINGLE",
            "SELECT_MULTIPLE",
            "CHECKBOX",
            "INFO"
          ]
        },
        "name": {
          "type": "string",
          "description": "Unique field identifier. Must be alphanumeric with no spaces.",
          "pattern": "^[a-zA-Z0-9_]+$"
        },
        "displayName": {
          "type": "string",
          "description": "Label text displayed in the configuration UI."
        },
        "helpText": {
          "type": "string",
          "description": "Additional guidance text shown to the user."
        },
        "placeholder": {
          "type": "string",
          "description": "Hint text displayed in the input field. Only applicable for TEXTINPUT and TEXTAREA types."
        },
        "isDynamic": {
          "type": "boolean",
          "description": "Whether this field dynamically populates based on other configuration values."
        },
        "parameterControl": {
          "type": "object",
          "description": "Control settings for parameter override behavior.",
          "properties": {
            "allowOverride": {
              "type": "boolean",
              "description": "Whether this parameter can be overridden in reports."
            }
          },
          "additionalProperties": false
        },
        "options": {
          "type": "array",
          "description": "Available options for SELECT_SINGLE and SELECT_MULTIPLE types.",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "description": "Display label for the option."
              },
              "value": {
                "type": "string",
                "description": "Value submitted when the option is selected."
              }
            },
            "required": [
              "label",
              "value"
            ],
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "SchemaResponse": {
      "type": "object",
      "description": "Response from getSchema() defining the data structure of the connector.",
      "properties": {
        "schema": {
          "type": "array",
          "description": "Array of field definitions describing the connector's data structure.",
          "items": {
            "$ref": "#/$defs/Field"
          }
        }
      },
      "required": [
        "schema"
      ],
      "additionalProperties": false
    },
    "Field": {
      "type": "object",
      "description": "A field definition describing a column in the connector's data schema.",
      "required": [
        "name",
        "dataType"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique identifier for the field."
        },
        "label": {
          "type": "string",
          "description": "Display name shown in the Looker Studio UI."
        },
        "description": {
          "type": "string",
          "description": "Plain text description of the field."
        },
        "dataType": {
          "type": "string",
          "description": "The data type of the field values.",
          "enum": [
            "STRING",
            "NUMBER",
            "BOOLEAN"
          ]
        },
        "isHidden": {
          "type": "boolean",
          "description": "Whether the field is hidden from users. Formula fields cannot be hidden."
        },
        "group": {
          "type": "string",
          "description": "Field grouping category for organizational purposes."
        },
        "formula": {
          "type": "string",
          "description": "Calculated field definition formula."
        },
        "isDefault": {
          "type": "boolean",
          "description": "Whether this is a default dimension or metric."
        },
        "defaultAggregationType": {
          "type": "string",
          "description": "Default aggregation applied to the field.",
          "enum": [
            "AVG",
            "COUNT",
            "COUNT_DISTINCT",
            "MAX",
            "MIN",
            "SUM",
            "NONE",
            "AUTO"
          ]
        },
        "semantics": {
          "$ref": "#/$defs/FieldSemantics"
        }
      },
      "additionalProperties": false
    },
    "FieldSemantics": {
      "type": "object",
      "description": "Semantic type information for a field, defining how Looker Studio interprets and displays the data.",
      "properties": {
        "conceptType": {
          "type": "string",
          "description": "Whether the field is a dimension or metric.",
          "enum": [
            "DIMENSION",
            "METRIC"
          ]
        },
        "semanticType": {
          "type": "string",
          "description": "The semantic type controlling display formatting and behavior.",
          "enum": [
            "YEAR",
            "YEAR_QUARTER",
            "YEAR_MONTH",
            "YEAR_WEEK",
            "YEAR_MONTH_DAY",
            "YEAR_MONTH_DAY_HOUR",
            "YEAR_MONTH_DAY_SECOND",
            "QUARTER",
            "MONTH",
            "WEEK",
            "MONTH_DAY",
            "DAY_OF_WEEK",
            "DAY",
            "HOUR",
            "MINUTE",
            "COUNTRY",
            "COUNTRY_CODE",
            "CONTINENT",
            "CONTINENT_CODE",
            "SUB_CONTINENT",
            "SUB_CONTINENT_CODE",
            "REGION",
            "REGION_CODE",
            "CITY",
            "CITY_CODE",
            "METRO_CODE",
            "LATITUDE_LONGITUDE",
            "NUMBER",
            "PERCENT",
            "TEXT",
            "BOOLEAN",
            "URL",
            "HYPERLINK",
            "IMAGE",
            "IMAGELINK",
            "CURRENCY_AED",
            "CURRENCY_ALL",
            "CURRENCY_ARS",
            "CURRENCY_AUD",
            "CURRENCY_BDT",
            "CURRENCY_BGN",
            "CURRENCY_BOB",
            "CURRENCY_BRL",
            "CURRENCY_CAD",
            "CURRENCY_CDF",
            "CURRENCY_CHF",
            "CURRENCY_CLP",
            "CURRENCY_CNY",
            "CURRENCY_COP",
            "CURRENCY_CRC",
            "CURRENCY_CZK",
            "CURRENCY_DKK",
            "CURRENCY_DOP",
            "CURRENCY_EGP",
            "CURRENCY_ETB",
            "CURRENCY_EUR",
            "CURRENCY_GBP",
            "CURRENCY_HKD",
            "CURRENCY_HRK",
            "CURRENCY_HUF",
            "CURRENCY_IDR",
            "CURRENCY_ILS",
            "CURRENCY_INR",
            "CURRENCY_IRR",
            "CURRENCY_ISK",
            "CURRENCY_JMD",
            "CURRENCY_JPY",
            "CURRENCY_KRW",
            "CURRENCY_LKR",
            "CURRENCY_LTL",
            "CURRENCY_MNT",
            "CURRENCY_MVR",
            "CURRENCY_MXN",
            "CURRENCY_MYR",
            "CURRENCY_NGN",
            "CURRENCY_NOK",
            "CURRENCY_NZD",
            "CURRENCY_PAB",
            "CURRENCY_PEN",
            "CURRENCY_PHP",
            "CURRENCY_PKR",
            "CURRENCY_PLN",
            "CURRENCY_RON",
            "CURRENCY_RSD",
            "CURRENCY_RUB",
            "CURRENCY_SAR",
            "CURRENCY_SEK",
            "CURRENCY_SGD",
            "CURRENCY_THB",
            "CURRENCY_TRY",
            "CURRENCY_TWD",
            "CURRENCY_TZS",
            "CURRENCY_UAH",
            "CURRENCY_USD",
            "CURRENCY_UYU",
            "CURRENCY_VEF",
            "CURRENCY_VND",
            "CURRENCY_ZAR"
          ]
        },
        "semanticGroup": {
          "type": "string",
          "description": "Suggested grouping for the semantic type.",
          "enum": [
            "NUMERIC",
            "DATETIME",
            "GEO",
            "CURRENCY"
          ]
        },
        "isReaggregatable": {
          "type": "boolean",
          "description": "Whether the field supports re-aggregation in Looker Studio."
        }
      },
      "additionalProperties": false
    },
    "DataResponse": {
      "type": "object",
      "description": "Response from getData() containing tabular data matching the request parameters.",
      "required": [
        "schema",
        "rows"
      ],
      "properties": {
        "schema": {
          "type": "array",
          "description": "Array of field objects describing the returned data columns.",
          "items": {
            "type": "object",
            "required": [
              "name",
              "dataType"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Field identifier matching the requested field name."
              },
              "dataType": {
                "type": "string",
                "description": "Data type of the field.",
                "enum": [
                  "STRING",
                  "NUMBER",
                  "BOOLEAN"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "rows": {
          "type": "array",
          "description": "Array of data rows. Maximum 1 million rows per response.",
          "items": {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of values corresponding to the schema fields.",
                "items": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "boolean"
                    }
                  ]
                }
              }
            },
            "required": [
              "values"
            ],
            "additionalProperties": false
          }
        },
        "filtersApplied": {
          "type": "boolean",
          "description": "Whether all requested filters were successfully applied."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-data-studio-connector"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.