Looker Studio Community Visualization API

Build and deploy custom visualizations for Looker Studio using any JavaScript visualization library. The dscc helper library simplifies development by providing functions for data subscriptions, component dimensions, and user interactions.

Documentation

Specifications

Other Resources

OpenAPI Specification

looker-studio-community-visualization-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Looker Studio Community Visualization API
  description: >-
    Build and deploy custom visualizations for Looker Studio using any
    JavaScript visualization library. The dscc (Data Studio Community Component)
    helper library simplifies development by providing functions for data
    subscriptions, component dimensions, and user interactions. Visualizations
    are event-driven, receiving data and style information as users interact
    with the report. This specification documents the hosting and deployment
    contract for community visualizations.
  version: v1
  contact:
    name: Google
    url: https://developers.google.com/looker-studio/visualization
  license:
    name: Google APIs Terms of Service
    url: https://developers.google.com/terms
  termsOfService: https://developers.google.com/terms
externalDocs:
  description: Looker Studio Community Visualization Documentation
  url: https://developers.google.com/looker-studio/visualization
servers:
  - url: https://lookerstudio.google.com
    description: Looker Studio production server
tags:
  - name: Manifest
    description: >-
      Operations related to the visualization manifest configuration that
      defines how a visualization is discovered and loaded.
  - name: Visualization
    description: >-
      Operations for loading and rendering community visualizations in Looker
      Studio reports.
paths:
  /visualization:
    get:
      operationId: listCommunityVisualizations
      summary: Looker Studio List community visualizations
      description: >-
        Accesses the community visualization gallery where users can browse and
        discover published community visualizations for use in their Looker
        Studio reports.
      tags:
        - Visualization
      responses:
        '200':
          description: >-
            Returns the visualization gallery page with available community
            visualizations.
          content:
            text/html:
              schema:
                type: string
  /visualization/load:
    post:
      operationId: loadVisualization
      summary: Looker Studio Load a community visualization
      description: >-
        Loads a community visualization into a Looker Studio report. The
        visualization is identified by its manifest URL hosted on Google Cloud
        Storage. Looker Studio fetches the manifest, resolves the JavaScript and
        CSS resources, and renders the visualization with the report's data.
      tags:
        - Visualization
      requestBody:
        required: true
        description: >-
          The configuration for loading a community visualization into a report
          component.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoadVisualizationRequest'
      responses:
        '200':
          description: The visualization was loaded successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoadVisualizationResponse'
        '400':
          description: >-
            Invalid manifest URL or the manifest does not conform to the
            required schema.
        '404':
          description: >-
            The visualization manifest could not be found at the specified URL.
  /visualization/manifest:
    get:
      operationId: getVisualizationManifest
      summary: Looker Studio Get visualization manifest schema
      description: >-
        Returns the JSON schema definition for community visualization
        manifests. The manifest defines the visualization's name, description,
        resource locations, data configuration, and style elements.
      tags:
        - Manifest
      responses:
        '200':
          description: The manifest schema definition.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisualizationManifest'
components:
  schemas:
    LoadVisualizationRequest:
      type: object
      description: Request to load a community visualization.
      properties:
        manifestUrl:
          type: string
          format: uri
          description: >-
            The URL to the visualization's manifest.json file, typically hosted
            on Google Cloud Storage.
        componentId:
          type: string
          description: The unique identifier of the report component to render the visualization in.
      required:
        - manifestUrl
    LoadVisualizationResponse:
      type: object
      description: Response after successfully loading a community visualization.
      properties:
        status:
          type: string
          description: The status of the load operation.
          enum:
            - SUCCESS
            - ERROR
        componentId:
          type: string
          description: The component ID where the visualization was loaded.
        error:
          type: object
          description: Error details if the load failed.
          properties:
            message:
              type: string
            code:
              type: string
    VisualizationManifest:
      type: object
      description: >-
        The manifest file that defines a community visualization's metadata,
        resources, data requirements, and style configuration.
      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 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.
        components:
          type: array
          description: The list of visualization components defined in this manifest.
          items:
            $ref: '#/components/schemas/VisualizationComponent'
      required:
        - name
        - components
    VisualizationComponent:
      type: object
      description: A single visualization component within a 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 description of the component's purpose.
        iconUrl:
          type: string
          format: uri
          description: URL to the component's icon image.
        resource:
          $ref: '#/components/schemas/VisualizationResource'
        config:
          $ref: '#/components/schemas/VisualizationConfig'
      required:
        - id
        - name
        - resource
    VisualizationResource:
      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
    VisualizationConfig:
      type: object
      description: >-
        Configuration defining the visualization's data requirements and style
        options.
      properties:
        data:
          type: array
          description: >-
            Data configuration specifying what dimensions and metrics the
            visualization requires.
          items:
            $ref: '#/components/schemas/DataConfig'
        style:
          type: array
          description: >-
            Style configuration specifying the user-configurable style elements
            that appear in the Looker Studio property panel.
          items:
            $ref: '#/components/schemas/StyleConfig'
        interactions:
          type: array
          description: >-
            Interaction configurations defining how the visualization responds
            to user interactions like filtering.
          items:
            $ref: '#/components/schemas/InteractionConfig'
    DataConfig:
      type: object
      description: >-
        Defines a data source slot that the visualization requires, specifying
        the number and type of dimensions and metrics.
      properties:
        id:
          type: string
          description: Unique identifier for this data configuration.
        label:
          type: string
          description: Display label for this data source in the property panel.
        elements:
          type: array
          description: The dimension and metric slots 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.
    StyleConfig:
      type: object
      description: >-
        Defines a group of style elements that appear in the Looker Studio
        property panel for the visualization.
      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.
    InteractionConfig:
      type: object
      description: >-
        Defines an interaction type that the visualization supports, such as
        filter interactions.
      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