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