Looker Studio · Capability

Looker Studio API

The Looker Studio API enables developers to programmatically manage reports, data sources, and permissions. It provides methods for searching assets and managing asset permissions including getting, updating, adding, and removing members. The API is available to users that belong to an organization with Google Workspace or Cloud Identity.

Run with Naftiko LookerStudioAPI

What You Can Do

GET
Searchassets — Search Looker Studio assets
/assets:search
GET
Getassetpermissions — Looker Studio Get asset permissions
/assets/{assetId}/permissions
PATCH
Updateassetpermissions — Looker Studio Update asset permissions
/assets/{assetId}/permissions
POST
Addassetmembers — Looker Studio Add members to asset permissions
/assets/{assetId}/permissions:addMembers
POST
Revokeallassetpermissions — Looker Studio Revoke all permissions for members
/assets/{assetId}/permissions:revokeAllPermissions

MCP Tools

searchassets

Search Looker Studio assets

read-only idempotent
getassetpermissions

Looker Studio Get asset permissions

read-only idempotent
updateassetpermissions

Looker Studio Update asset permissions

addassetmembers

Looker Studio Add members to asset permissions

revokeallassetpermissions

Looker Studio Revoke all permissions for members

Capability Spec

looker-studio-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Looker Studio API
  description: The Looker Studio API enables developers to programmatically manage reports, data sources, and permissions.
    It provides methods for searching assets and managing asset permissions including getting, updating, adding, and removing
    members. The API is available to users that belong to an organization with Google Workspace or Cloud Identity.
  tags:
  - Looker
  - Studio
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: looker-studio
    baseUri: https://datastudio.googleapis.com/v1
    description: Looker Studio API HTTP API.
    authentication:
      type: bearer
      token: '{{LOOKER_STUDIO_TOKEN}}'
    resources:
    - name: assets-search
      path: /assets:search
      operations:
      - name: searchassets
        method: GET
        description: Search Looker Studio assets
        inputParameters:
        - name: assetTypes
          in: query
          type: array
          required: true
          description: The types of assets to search for. Valid values are REPORT and DATA_SOURCE.
        - name: title
          in: query
          type: string
          description: Filter assets by title (partial match).
        - name: includeTrash
          in: query
          type: boolean
          description: Whether to include trashed assets in the results.
        - name: orderBy
          in: query
          type: string
          description: Field to order results by, such as title, createTime, or updateTime.
        - name: pageSize
          in: query
          type: integer
          description: Maximum number of assets to return per page.
        - name: pageToken
          in: query
          type: string
          description: Token for retrieving the next page of results.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: assets-assetid-permissions
      path: /assets/{assetId}/permissions
      operations:
      - name: getassetpermissions
        method: GET
        description: Looker Studio Get asset permissions
        inputParameters:
        - name: assetId
          in: path
          type: string
          required: true
          description: The unique identifier of the Looker Studio asset.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateassetpermissions
        method: PATCH
        description: Looker Studio Update asset permissions
        inputParameters:
        - name: assetId
          in: path
          type: string
          required: true
          description: The unique identifier of the Looker Studio asset.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: assets-assetid-permissions-addmembers
      path: /assets/{assetId}/permissions:addMembers
      operations:
      - name: addassetmembers
        method: POST
        description: Looker Studio Add members to asset permissions
        inputParameters:
        - name: assetId
          in: path
          type: string
          required: true
          description: The unique identifier of the Looker Studio asset.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: assets-assetid-permissions-revokeallpermissions
      path: /assets/{assetId}/permissions:revokeAllPermissions
      operations:
      - name: revokeallassetpermissions
        method: POST
        description: Looker Studio Revoke all permissions for members
        inputParameters:
        - name: assetId
          in: path
          type: string
          required: true
          description: The unique identifier of the Looker Studio asset.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: looker-studio-rest
    description: REST adapter for Looker Studio API.
    resources:
    - path: /assets:search
      name: searchassets
      operations:
      - method: GET
        name: searchassets
        description: Search Looker Studio assets
        call: looker-studio.searchassets
        outputParameters:
        - type: object
          mapping: $.
    - path: /assets/{assetId}/permissions
      name: getassetpermissions
      operations:
      - method: GET
        name: getassetpermissions
        description: Looker Studio Get asset permissions
        call: looker-studio.getassetpermissions
        with:
          assetId: rest.assetId
        outputParameters:
        - type: object
          mapping: $.
    - path: /assets/{assetId}/permissions
      name: updateassetpermissions
      operations:
      - method: PATCH
        name: updateassetpermissions
        description: Looker Studio Update asset permissions
        call: looker-studio.updateassetpermissions
        with:
          assetId: rest.assetId
        outputParameters:
        - type: object
          mapping: $.
    - path: /assets/{assetId}/permissions:addMembers
      name: addassetmembers
      operations:
      - method: POST
        name: addassetmembers
        description: Looker Studio Add members to asset permissions
        call: looker-studio.addassetmembers
        with:
          assetId: rest.assetId
        outputParameters:
        - type: object
          mapping: $.
    - path: /assets/{assetId}/permissions:revokeAllPermissions
      name: revokeallassetpermissions
      operations:
      - method: POST
        name: revokeallassetpermissions
        description: Looker Studio Revoke all permissions for members
        call: looker-studio.revokeallassetpermissions
        with:
          assetId: rest.assetId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: looker-studio-mcp
    transport: http
    description: MCP adapter for Looker Studio API for AI agent use.
    tools:
    - name: searchassets
      description: Search Looker Studio assets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: looker-studio.searchassets
      with:
        assetTypes: tools.assetTypes
        title: tools.title
        includeTrash: tools.includeTrash
        orderBy: tools.orderBy
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: assetTypes
        type: array
        description: The types of assets to search for. Valid values are REPORT and DATA_SOURCE.
        required: true
      - name: title
        type: string
        description: Filter assets by title (partial match).
      - name: includeTrash
        type: boolean
        description: Whether to include trashed assets in the results.
      - name: orderBy
        type: string
        description: Field to order results by, such as title, createTime, or updateTime.
      - name: pageSize
        type: integer
        description: Maximum number of assets to return per page.
      - name: pageToken
        type: string
        description: Token for retrieving the next page of results.
      outputParameters:
      - type: object
        mapping: $.
    - name: getassetpermissions
      description: Looker Studio Get asset permissions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: looker-studio.getassetpermissions
      with:
        assetId: tools.assetId
      inputParameters:
      - name: assetId
        type: string
        description: The unique identifier of the Looker Studio asset.
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateassetpermissions
      description: Looker Studio Update asset permissions
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: looker-studio.updateassetpermissions
      with:
        assetId: tools.assetId
      inputParameters:
      - name: assetId
        type: string
        description: The unique identifier of the Looker Studio asset.
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: addassetmembers
      description: Looker Studio Add members to asset permissions
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: looker-studio.addassetmembers
      with:
        assetId: tools.assetId
      inputParameters:
      - name: assetId
        type: string
        description: The unique identifier of the Looker Studio asset.
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: revokeallassetpermissions
      description: Looker Studio Revoke all permissions for members
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: looker-studio.revokeallassetpermissions
      with:
        assetId: tools.assetId
      inputParameters:
      - name: assetId
        type: string
        description: The unique identifier of the Looker Studio asset.
        required: true
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    LOOKER_STUDIO_TOKEN: LOOKER_STUDIO_TOKEN