Looker Look API

Manage Looks, which are saved queries with visualizations. A Look contains a query definition and visualization configuration that can be shared, scheduled, and embedded.

OpenAPI Specification

looker-look-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Looker Auth Look API
  description: The Looker API 4.0 provides programmatic access to the Looker business intelligence platform. It allows you to manage and interact with Looks, dashboards, queries, users, and other Looker resources. The API uses client credentials (client_id and client_secret) for authentication and returns JSON responses. Looker is part of Google Cloud and the API is available on any Looker instance at the /api/4.0 path.
  version: '4.0'
  contact:
    name: Google Cloud Looker Support
    url: https://cloud.google.com/looker/docs/support
  termsOfService: https://cloud.google.com/terms
  license:
    name: Google Cloud Terms
    url: https://cloud.google.com/terms
servers:
- url: https://{instance}.looker.com/api/4.0
  description: Looker Instance API
  variables:
    instance:
      description: Your Looker instance hostname prefix
      default: your-instance
- url: https://{instance}.cloud.looker.com/api/4.0
  description: Looker (Google Cloud core) Instance API
  variables:
    instance:
      description: Your Looker (Google Cloud core) instance hostname prefix
      default: your-instance
security:
- bearerAuth: []
tags:
- name: Look
  description: Manage Looks, which are saved queries with visualizations. A Look contains a query definition and visualization configuration that can be shared, scheduled, and embedded.
paths:
  /looks:
    get:
      operationId: allLooks
      summary: Looker List All Looks
      description: Returns a list of all Looks accessible to the authenticated user. Supports filtering by fields to limit the response payload.
      tags:
      - Look
      parameters:
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: List of Looks
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Look'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /looks/search:
    get:
      operationId: searchLooks
      summary: Looker Search Looks
      description: Searches for Looks matching the specified criteria. Supports filtering by title, description, space, user, and other attributes. Results are paginated.
      tags:
      - Look
      parameters:
      - $ref: '#/components/parameters/fields'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - name: title
        in: query
        description: Filter by Look title (case-insensitive match)
        schema:
          type: string
      - name: description
        in: query
        description: Filter by Look description
        schema:
          type: string
      - name: space_id
        in: query
        description: Filter by space (folder) ID
        schema:
          type: string
      - name: user_id
        in: query
        description: Filter by creator user ID
        schema:
          type: string
      - name: sorts
        in: query
        description: Sort fields (e.g. title asc, created_at desc)
        schema:
          type: string
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Look'
        '400':
          description: Invalid search parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /looks/{look_id}:
    get:
      operationId: look
      summary: Looker Get a Look
      description: Retrieves a single Look by its ID, including the query definition, visualization configuration, and metadata such as the creator, space, and sharing settings.
      tags:
      - Look
      parameters:
      - $ref: '#/components/parameters/lookId'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Look details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Look'
        '404':
          description: Look not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: updateLook
      summary: Looker Update a Look
      description: Updates an existing Look. Only the fields provided in the request body are updated; all other fields remain unchanged.
      tags:
      - Look
      parameters:
      - $ref: '#/components/parameters/lookId'
      - $ref: '#/components/parameters/fields'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WriteLookWithQuery'
      responses:
        '200':
          description: Updated Look
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Look'
        '404':
          description: Look not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteLook
      summary: Looker Delete a Look
      description: Permanently deletes the specified Look. This action cannot be undone. The Look is moved to trash first if soft delete is enabled.
      tags:
      - Look
      parameters:
      - $ref: '#/components/parameters/lookId'
      responses:
        '204':
          description: Look deleted successfully
        '404':
          description: Look not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /looks/{look_id}/run/{result_format}:
    get:
      operationId: runLook
      summary: Looker Run a Look
      description: Executes the query associated with a Look and returns the results in the specified format. Supported formats include json, csv, txt, xlsx, html, md, json_label, json_detail, and png.
      tags:
      - Look
      parameters:
      - $ref: '#/components/parameters/lookId'
      - name: result_format
        in: path
        required: true
        description: Format for the query results
        schema:
          type: string
          enum:
          - json
          - csv
          - txt
          - xlsx
          - html
          - md
          - json_label
          - json_detail
          - png
      - $ref: '#/components/parameters/limit'
      - name: apply_formatting
        in: query
        description: Whether to apply model-specified formatting to results
        schema:
          type: boolean
      - name: apply_vis
        in: query
        description: Whether to apply visualization options to results
        schema:
          type: boolean
      responses:
        '200':
          description: Query results in the specified format
          content:
            application/json:
              schema:
                type: string
            text/csv:
              schema:
                type: string
        '404':
          description: Look not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    limit:
      name: limit
      in: query
      description: Maximum number of results to return
      schema:
        type: integer
        default: 100
    lookId:
      name: look_id
      in: path
      required: true
      description: The unique numeric ID of the Look
      schema:
        type: integer
        format: int64
    fields:
      name: fields
      in: query
      description: Comma-separated list of field names to include in the response. Use this to limit response payload and improve performance.
      schema:
        type: string
    offset:
      name: offset
      in: query
      description: Number of results to skip before returning results
      schema:
        type: integer
        default: 0
  schemas:
    SpaceBase:
      type: object
      description: Basic space (folder) information
      properties:
        id:
          type: string
          description: Unique identifier
          example: abc123
        name:
          type: string
          description: Display name
          example: Example Title
        parent_id:
          type: string
          nullable: true
          description: Parent space ID
          example: '500123'
        is_shared_root:
          type: boolean
          description: Whether this is the shared root space
          example: true
        is_users_root:
          type: boolean
          description: Whether this is the users root space
          example: true
        is_user_root:
          type: boolean
          description: Whether this is a user's personal root space
          example: true
    LookModel:
      type: object
      description: Basic LookML model information
      properties:
        id:
          type: string
          description: Model name/identifier
          example: abc123
        label:
          type: string
          description: Display label for the model
          example: Example Title
    WriteQuery:
      type: object
      required:
      - model
      - view
      description: Writable fields for creating a new query
      properties:
        model:
          type: string
          description: LookML model name
          example: example_value
        view:
          type: string
          description: LookML explore (view) name
          example: example_value
        fields:
          type: array
          description: List of field names to include
          items:
            type: string
          example: []
        pivots:
          type: array
          nullable: true
          description: Fields to pivot on
          items:
            type: string
          example: []
        fill_fields:
          type: array
          nullable: true
          description: Fields to fill missing values for
          items:
            type: string
          example: []
        filters:
          type: object
          nullable: true
          description: Filter expressions keyed by field name
          additionalProperties:
            type: string
          example: example_value
        filter_expression:
          type: string
          nullable: true
          description: Custom filter expression
          example: example_value
        sorts:
          type: array
          nullable: true
          description: Sort order for results
          items:
            type: string
          example: []
        limit:
          type: string
          nullable: true
          description: Maximum rows to return
          example: example_value
        column_limit:
          type: string
          nullable: true
          description: Maximum columns for pivoted results
          example: example_value
        total:
          type: boolean
          description: Include row totals
          example: true
        row_total:
          type: string
          nullable: true
          description: Row total setting
          example: example_value
        subtotals:
          type: array
          nullable: true
          description: Fields to subtotal on
          items:
            type: string
          example: []
        dynamic_fields:
          type: string
          nullable: true
          description: JSON string of dynamic field definitions
          example: example_value
        vis_config:
          type: object
          nullable: true
          description: Visualization configuration
          additionalProperties: true
          example: example_value
        query_timezone:
          type: string
          nullable: true
          description: Timezone for date/time calculations
          example: example_value
    WriteLookWithQuery:
      type: object
      description: Writable fields for creating or updating a Look
      properties:
        title:
          type: string
          description: Display title
          example: Example Title
        description:
          type: string
          nullable: true
          description: Description of the Look
          example: A sample description.
        space_id:
          type: string
          description: Space (folder) ID to place the Look in
          example: '500123'
        folder_id:
          type: string
          description: Folder ID to place the Look in
          example: '500123'
        query_id:
          type: integer
          format: int64
          description: ID of the query to use
          example: '500123'
        query:
          $ref: '#/components/schemas/WriteQuery'
        public:
          type: boolean
          description: Whether the Look is public
          example: true
        is_run_on_load:
          type: boolean
          description: Whether to auto-run the query on load
          example: true
    ErrorResponse:
      type: object
      description: Error response from the Looker API
      properties:
        message:
          type: string
          description: Human-readable error message
          example: example_value
        documentation_url:
          type: string
          description: URL to relevant API documentation
          example: https://www.example.com
    Query:
      type: object
      description: A query defines a data request against a LookML model. Queries are immutable once created and contain the model, view, fields, filters, sorts, and limit needed to generate SQL and retrieve results.
      properties:
        id:
          type: integer
          format: int64
          description: Unique numeric identifier for this query
          readOnly: true
          example: abc123
        model:
          type: string
          description: LookML model name
          example: example_value
        view:
          type: string
          description: LookML explore (view) name
          example: example_value
        fields:
          type: array
          description: List of field names to include in the query results (e.g. orders.count, users.created_date)
          items:
            type: string
          example: []
        pivots:
          type: array
          nullable: true
          description: List of field names to pivot on
          items:
            type: string
          example: []
        fill_fields:
          type: array
          nullable: true
          description: Fields to fill missing date values for
          items:
            type: string
          example: []
        filters:
          type: object
          nullable: true
          description: Key-value map of filter expressions. Keys are field names and values are Looker filter expressions.
          additionalProperties:
            type: string
          example: example_value
        filter_expression:
          type: string
          nullable: true
          description: Custom filter expression using Looker filter syntax
          example: example_value
        sorts:
          type: array
          nullable: true
          description: Sort order for results. Each item is a field name optionally followed by asc or desc.
          items:
            type: string
          example: []
        limit:
          type: string
          nullable: true
          description: Maximum number of rows to return (as string)
          example: example_value
        column_limit:
          type: string
          nullable: true
          description: Maximum number of columns for pivoted results
          example: example_value
        total:
          type: boolean
          description: Whether to include row totals
          example: true
        row_total:
          type: string
          nullable: true
          description: Row total display setting
          example: example_value
        subtotals:
          type: array
          nullable: true
          description: Fields to subtotal on
          items:
            type: string
          example: []
        dynamic_fields:
          type: string
          nullable: true
          description: JSON string of dynamic field definitions
          example: example_value
        vis_config:
          type: object
          nullable: true
          description: Visualization configuration object
          additionalProperties: true
          example: example_value
        query_timezone:
          type: string
          nullable: true
          description: Timezone for date/time calculations
          example: example_value
        client_id:
          type: string
          description: Client-generated hash of the query for caching
          readOnly: true
          example: '500123'
        slug:
          type: string
          description: Short unique URL slug for this query
          readOnly: true
          example: example_value
        share_url:
          type: string
          description: Shareable URL for this query
          readOnly: true
          example: https://www.example.com
        url:
          type: string
          description: Relative URL for this query in the Looker UI
          readOnly: true
          example: https://www.example.com
        has_table_calculations:
          type: boolean
          description: Whether this query has table calculations
          readOnly: true
          example: true
    Look:
      type: object
      description: A Look is a saved query with a visualization. Looks can be shared, embedded, scheduled for delivery, and added to dashboards as tiles.
      properties:
        id:
          type: integer
          format: int64
          description: Unique numeric identifier for this Look
          readOnly: true
          example: abc123
        title:
          type: string
          description: Display title of the Look
          example: Example Title
        description:
          type: string
          nullable: true
          description: Description of the Look's purpose
          example: A sample description.
        content_metadata_id:
          type: integer
          format: int64
          description: ID of the content metadata record
          readOnly: true
          example: '500123'
        query_id:
          type: integer
          format: int64
          description: ID of the query associated with this Look
          example: '500123'
        query:
          $ref: '#/components/schemas/Query'
        space_id:
          type: string
          description: ID of the space (folder) containing this Look
          example: '500123'
        folder_id:
          type: string
          description: ID of the folder containing this Look
          example: '500123'
        user_id:
          type: integer
          format: int64
          description: ID of the user who created this Look
          readOnly: true
          example: '500123'
        space:
          $ref: '#/components/schemas/SpaceBase'
        folder:
          $ref: '#/components/schemas/FolderBase'
        public:
          type: boolean
          description: Whether this Look is publicly accessible
          example: true
        is_run_on_load:
          type: boolean
          description: Whether the query runs automatically when the Look is loaded
          example: true
        created_at:
          type: string
          format: date-time
          description: Timestamp when the Look was created
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        updated_at:
          type: string
          format: date-time
          description: Timestamp when the Look was last updated
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        deleted_at:
          type: string
          format: date-time
          nullable: true
          description: Timestamp when the Look was soft-deleted
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        deleted:
          type: boolean
          description: Whether this Look has been soft-deleted
          readOnly: true
          example: true
        last_accessed_at:
          type: string
          format: date-time
          nullable: true
          description: Timestamp when the Look was last viewed
          readOnly: true
          example: '2026-01-15T10:30:00Z'
        view_count:
          type: integer
          description: Number of times the Look has been viewed
          readOnly: true
          example: 10
        favorite_count:
          type: integer
          description: Number of users who have favorited this Look
          readOnly: true
          example: 10
        model:
          $ref: '#/components/schemas/LookModel'
        url:
          type: string
          description: Relative URL path for this Look
          readOnly: true
          example: https://www.example.com
    FolderBase:
      type: object
      description: Basic folder information
      properties:
        id:
          type: string
          description: Unique identifier
          example: abc123
        name:
          type: string
          description: Display name
          example: Example Title
        parent_id:
          type: string
          nullable: true
          description: Parent folder ID
          example: '500123'
        content_metadata_id:
          type: integer
          format: int64
          description: Content metadata ID
          example: '500123'
        is_shared_root:
          type: boolean
          description: Whether this is the shared root folder
          example: true
        is_users_root:
          type: boolean
          description: Whether this is the users root folder
          example: true
        is_user_root:
          type: boolean
          description: Whether this is a user's personal root folder
          example: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Access token obtained from the /login endpoint using client credentials. Include as Bearer token in the Authorization header.
externalDocs:
  description: Looker API 4.0 Documentation
  url: https://cloud.google.com/looker/docs/reference/looker-api/latest