{"library":"looker-sdk","title":"Looker SDK for Python","description":"The `looker-sdk` is the official Python SDK for interacting with the Looker REST API. It provides a convenient, programmatic way to manage Looker instances, run queries, extract data, and automate workflows. Maintained by Google/Looker, it currently supports API 4.0 and requires Python 3.6+. It's actively developed with regular updates to support new Looker features and API versions.","language":"python","status":"active","last_verified":"Tue May 12","install":{"commands":["pip install looker-sdk"],"cli":null},"imports":["import looker_sdk","sdk = looker_sdk.init40()","from looker_sdk import models"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport looker_sdk\n\n# --- Configuration using Environment Variables ---\n# Set these environment variables before running:\n# LOOKERSDK_BASE_URL: Your Looker instance URL (e.g., https://your.looker.com or https://your.looker.cloud.google.com)\n#   Note: AWS-hosted instances may require ':19999' port (e.g., https://your.looker.com:19999), while GCP-hosted instances usually omit it.\n# LOOKERSDK_API_VERSION: Should be '4.0'\n# LOOKERSDK_VERIFY_SSL: 'true' or 'false'\n# LOOKERSDK_CLIENT_ID: Your API3 Client ID\n# LOOKERSDK_CLIENT_SECRET: Your API3 Client Secret\n# LOOKERSDK_TIMEOUT: (Optional) Request timeout in seconds, default is 120.\n\n# Example of setting environment variables (replace with your actual values):\nos.environ['LOOKERSDK_BASE_URL'] = os.environ.get('LOOKERSDK_BASE_URL', 'https://your.looker.com')\nos.environ['LOOKERSDK_API_VERSION'] = os.environ.get('LOOKERSDK_API_VERSION', '4.0')\nos.environ['LOOKERSDK_VERIFY_SSL'] = os.environ.get('LOOKERSDK_VERIFY_SSL', 'true')\nos.environ['LOOKERSDK_CLIENT_ID'] = os.environ.get('LOOKERSDK_CLIENT_ID', 'YOUR_CLIENT_ID')\nos.environ['LOOKERSDK_CLIENT_SECRET'] = os.environ.get('LOOKERSDK_CLIENT_SECRET', 'YOUR_CLIENT_SECRET')\n\n# Initialize the SDK for API 4.0\ntry:\n    sdk = looker_sdk.init40()\n    print(\"Looker SDK 4.0 initialized successfully.\")\n\n    # Make a simple API call to get the current user\n    me = sdk.me()\n    print(f\"Hello, {me.first_name} {me.last_name} ({me.email})!\")\n\n    # Example of creating a user (requires appropriate permissions)\n    # from looker_sdk import models\n    # new_user_data = models.WriteUser(first_name=\"Test\", last_name=\"User\", email=\"test.user@example.com\")\n    # new_user = sdk.create_user(body=new_user_data)\n    # print(f\"Created new user: {new_user.first_name}\")\n\nexcept Exception as e:\n    print(f\"Error initializing SDK or making API call: {e}\")\n    print(\"Please ensure environment variables (LOOKERSDK_BASE_URL, LOOKERSDK_API_VERSION, CLIENT_ID, CLIENT_SECRET) are correctly set.\")","lang":"python","description":"This quickstart demonstrates how to initialize the Looker SDK using environment variables (recommended for security) and make a basic API call to retrieve information about the current user. It highlights the use of `init40()` for API 4.0, which is the current stable version. Ensure you replace placeholder environment variables with your actual Looker instance details and API credentials.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]},"compatibility":{"tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","last_tested":"2026-05-12","installed_version":"26.8.0","pypi_latest":"26.8.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.6,"avg_import_s":1.94,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.65,"mem_mb":27.5,"disk_size":"25.4M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.64,"mem_mb":27.3,"disk_size":"25.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":1.1,"mem_mb":27.5,"disk_size":"26M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.1,"mem_mb":27.3,"disk_size":"26M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.65,"mem_mb":28.1,"disk_size":"28.1M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.99,"mem_mb":28,"disk_size":"28.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":2.3,"mem_mb":28.1,"disk_size":"29M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.21,"mem_mb":28,"disk_size":"29M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.08,"mem_mb":28,"disk_size":"19.7M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.36,"mem_mb":27.9,"disk_size":"19.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":2.16,"mem_mb":28,"disk_size":"20M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.28,"mem_mb":27.9,"disk_size":"20M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.12,"mem_mb":29.2,"disk_size":"19.5M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.22,"mem_mb":29.1,"disk_size":"19.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":2.04,"mem_mb":29.2,"disk_size":"20M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.25,"mem_mb":29.1,"disk_size":"20M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.46,"mem_mb":27.2,"disk_size":"24.7M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.54,"mem_mb":27.1,"disk_size":"24.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.1,"import_time_s":1.29,"mem_mb":27.2,"disk_size":"25M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"looker-sdk","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.31,"mem_mb":27.1,"disk_size":"25M"}]}}