{"library":"statsig-python-core","title":"Statsig Python Core SDK","type":"library","description":"The Statsig Python Core SDK (`statsig-python-core`) provides server-side Python bindings for integrating Statsig's feature flagging, A/B testing, and experimentation platform into your applications. It enables evaluating feature gates, dynamic configs, and experiments, and logging exposures without requiring a client-side Statsig SDK. It's currently at version 0.18.1 and receives regular updates, typically aligning with feature releases.","language":"python","status":"active","last_verified":"Wed May 20","install":{"commands":["pip install statsig-python-core"],"cli":null},"imports":["from statsig import StatsigServer"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":"https://statsig.com","github":"https://github.com/statsig-io/statsig-server-core","docs":"https://docs.statsig.com/server-core/python-core","changelog":"https://github.com/statsig-io/statsig-server-core/releases","pypi":"https://pypi.org/project/statsig-python-core/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import asyncio\nimport os\nfrom statsig import StatsigServer\n\nasync def main():\n    # Replace with your actual Server Secret Key, or set as STATSIG_SERVER_SECRET_KEY env var\n    sdk_key = os.environ.get(\"STATSIG_SERVER_SECRET_KEY\", \"YOUR_SERVER_SECRET_KEY_HERE\")\n\n    if sdk_key == \"YOUR_SERVER_SECRET_KEY_HERE\":\n        print(\"Please set your STATSIG_SERVER_SECRET_KEY environment variable or replace the placeholder.\")\n        return\n\n    await StatsigServer.initialize(sdk_key)\n\n    # Define a user object using a dictionary (StatsigUser class is deprecated)\n    user = {\n        \"userID\": \"test-user-123\",\n        \"email\": \"test@example.com\",\n        \"custom\": {\"plan\": \"enterprise\"}\n    }\n\n    # Check a feature gate\n    if await StatsigServer.check_gate(user, \"my_feature_gate\"): # Replace with your gate name\n        print(\"my_feature_gate is ON for this user!\")\n    else:\n        print(\"my_feature_gate is OFF for this user.\")\n\n    # Get a dynamic config\n    config = await StatsigServer.get_config(user, \"my_dynamic_config\") # Replace with your config name\n    string_value = config.get(\"string_param\", \"default_string\")\n    int_value = config.get(\"int_param\", 0)\n    print(f\"Config values: string_param={string_value}, int_param={int_value}\")\n\n    # Get an experiment\n    experiment = await StatsigServer.get_experiment(user, \"my_experiment\") # Replace with your experiment name\n    variant_value = experiment.get(\"variant_param\", \"control\")\n    print(f\"Experiment variant: {variant_value}\")\n\n    # IMPORTANT: Call shutdown when your application exits to ensure metrics are flushed\n    await StatsigServer.shutdown()\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n","lang":"python","description":"This quickstart demonstrates how to initialize the Statsig server SDK, define a user, check a feature gate, retrieve dynamic configs and experiments, and properly shut down the SDK. Ensure you replace `YOUR_SERVER_SECRET_KEY_HERE` with your actual Statsig server secret key and adjust gate/config/experiment names.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-20","installed_version":"0.16.5","pypi_latest":"0.19.3","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":2.5,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"29.7M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.5,"import_time_s":null,"mem_mb":null,"disk_size":"29M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"31.9M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.5,"import_time_s":null,"mem_mb":null,"disk_size":"31M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"23.6M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.2,"import_time_s":null,"mem_mb":null,"disk_size":"23M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"23.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.2,"import_time_s":null,"mem_mb":null,"disk_size":"23M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"31.8M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":"32M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"statsig-python-core","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}