Looker Studio · Schema
Looker Studio Community Visualization
Represents a Looker Studio community visualization manifest that defines the visualization's metadata, resource locations, data requirements, and style configuration. The manifest is a JSON file hosted on Google Cloud Storage.
AnalyticsBusiness IntelligenceDashboardsData VisualizationGoogleReports
Properties
| Name | Type | Description |
|---|---|---|
| name | string | The display name of the visualization. |
| organization | string | The organization or developer that created the visualization. |
| description | string | A text description of what the visualization does. |
| logoUrl | string | URL to the visualization's logo image. |
| devMode | boolean | Whether the visualization is in development mode. Development mode disables caching for faster iteration. |
| components | array | The visualization components defined in this manifest. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/api-evangelist/looker-studio/json-schema/looker-studio-visualization-schema.json",
"title": "Looker Studio Community Visualization",
"description": "Represents a Looker Studio community visualization manifest that defines the visualization's metadata, resource locations, data requirements, and style configuration. The manifest is a JSON file hosted on Google Cloud Storage.",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The display name of the visualization."
},
"organization": {
"type": "string",
"description": "The organization or developer that created the visualization."
},
"description": {
"type": "string",
"description": "A text description of what the visualization does."
},
"logoUrl": {
"type": "string",
"format": "uri",
"description": "URL to the visualization's logo image."
},
"devMode": {
"type": "boolean",
"description": "Whether the visualization is in development mode. Development mode disables caching for faster iteration."
},
"components": {
"type": "array",
"description": "The visualization components defined in this manifest.",
"items": {
"$ref": "#/$defs/Component"
},
"minItems": 1
}
},
"required": [
"name",
"components"
],
"$defs": {
"Component": {
"type": "object",
"description": "A single visualization component within the manifest.",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for this component."
},
"name": {
"type": "string",
"description": "The display name of the component."
},
"description": {
"type": "string",
"description": "A text description of the component."
},
"iconUrl": {
"type": "string",
"format": "uri",
"description": "URL to the component's icon image."
},
"resource": {
"$ref": "#/$defs/Resource"
},
"config": {
"$ref": "#/$defs/Config"
}
},
"required": [
"id",
"name",
"resource"
]
},
"Resource": {
"type": "object",
"description": "The JavaScript and CSS resources required to render the visualization.",
"properties": {
"js": {
"type": "string",
"format": "uri",
"description": "URL to the visualization's JavaScript bundle."
},
"css": {
"type": "string",
"format": "uri",
"description": "URL to the visualization's CSS stylesheet."
}
},
"required": [
"js"
]
},
"Config": {
"type": "object",
"description": "Configuration defining data requirements, style options, and interactions.",
"properties": {
"data": {
"type": "array",
"description": "Data configuration specifying required dimensions and metrics.",
"items": {
"$ref": "#/$defs/DataConfig"
}
},
"style": {
"type": "array",
"description": "Style configuration specifying user-configurable style elements.",
"items": {
"$ref": "#/$defs/StyleConfig"
}
},
"interactions": {
"type": "array",
"description": "Interaction configurations defining supported user interactions.",
"items": {
"$ref": "#/$defs/InteractionConfig"
}
}
}
},
"DataConfig": {
"type": "object",
"description": "Defines a data source slot with its dimension and metric requirements.",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this data configuration."
},
"label": {
"type": "string",
"description": "Display label for this data source slot."
},
"elements": {
"type": "array",
"description": "The dimension and metric elements for this data source.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this element."
},
"label": {
"type": "string",
"description": "Display label for this element."
},
"type": {
"type": "string",
"description": "Whether this element accepts dimensions or metrics.",
"enum": [
"DIMENSION",
"METRIC"
]
},
"options": {
"type": "object",
"properties": {
"min": {
"type": "integer",
"description": "Minimum number of fields required."
},
"max": {
"type": "integer",
"description": "Maximum number of fields allowed."
}
}
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"id"
]
},
"StyleConfig": {
"type": "object",
"description": "Defines a group of style elements in the property panel.",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this style group."
},
"label": {
"type": "string",
"description": "Display label for this style group."
},
"elements": {
"type": "array",
"description": "The individual style elements in this group.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this style element."
},
"label": {
"type": "string",
"description": "Display label for this element."
},
"type": {
"type": "string",
"description": "The type of style input to render.",
"enum": [
"FONT_COLOR",
"FONT_SIZE",
"FONT_FAMILY",
"FILL_COLOR",
"BORDER_COLOR",
"BORDER_WEIGHT",
"OPACITY",
"LINE_WEIGHT",
"LINE_STYLE",
"CHECKBOX",
"TEXTINPUT",
"SELECT_SINGLE",
"SELECT_RADIO"
]
},
"defaultValue": {
"type": "string",
"description": "The default value for this style element."
}
},
"required": [
"id",
"type"
]
}
}
},
"required": [
"id"
]
},
"InteractionConfig": {
"type": "object",
"description": "Defines a supported interaction type.",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this interaction."
},
"supportedActions": {
"type": "array",
"description": "The types of actions this interaction supports.",
"items": {
"type": "string",
"enum": [
"FILTER"
]
}
}
},
"required": [
"id"
]
}
}
}