{"library":"stream-chat","title":"Stream Chat Python Client","type":"library","description":"The `stream-chat` library is the official Python API client for Stream Chat, a service designed for building chat applications. It provides server-side access to the chat API endpoints. While actively maintained with critical fixes and requested features, it is currently in maintenance mode. New projects are strongly encouraged to use the newer, full-product `getstream` SDK for comprehensive Stream services, including Chat, Video, Moderation, and Feeds. The library typically sees regular minor releases to introduce new features and bug fixes.","language":"python","status":"maintenance","last_verified":"Sun May 17","install":{"commands":["pip install stream-chat"],"cli":null},"imports":["from stream_chat import StreamChat"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":"https://getstream.io/chat/","github":"https://github.com/GetStream/stream-chat-python","docs":"https://getstream.io/activity-feeds/docs/python/?language=python","changelog":"https://github.com/GetStream/stream-chat-python/releases/tag/v4.32.0","pypi":"https://pypi.org/project/stream-chat/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import os\nfrom stream_chat import StreamChat\n\n# Initialize the client with your API Key and Secret\n# Get these from your Stream Dashboard: https://getstream.io/dashboard/\nSTREAM_API_KEY = os.environ.get('STREAM_API_KEY', 'YOUR_STREAM_API_KEY')\nSTREAM_API_SECRET = os.environ.get('STREAM_API_SECRET', 'YOUR_STREAM_API_SECRET')\nSTREAM_USER_ID = os.environ.get('STREAM_USER_ID', 'test_user_id')\n\nif not all([STREAM_API_KEY, STREAM_API_SECRET]):\n    raise ValueError(\"STREAM_API_KEY and STREAM_API_SECRET environment variables must be set.\")\n\nclient = StreamChat(api_key=STREAM_API_KEY, api_secret=STREAM_API_SECRET)\n\n# Create/update a user\nuser_data = {\"id\": STREAM_USER_ID, \"name\": \"Test User\"}\nclient.upsert_user(user_data)\nprint(f\"User '{STREAM_USER_ID}' upserted.\")\n\n# Create a user token for client-side authentication (e.g., in a frontend app)\ntoken = client.create_token(STREAM_USER_ID)\nprint(f\"Generated user token: {token}\")\n\n# Create a channel\nchannel_id = \"general\"\nchannel_type = \"messaging\"\nchannel = client.channel(channel_type, channel_id)\nchannel.create(STREAM_USER_ID)\nprint(f\"Channel '{channel_type}:{channel_id}' created/initialized.\")\n\n# Send a message to the channel\nmessage_data = {\"text\": \"Hello from the Python client!\"}\nchannel.send_message(message_data, STREAM_USER_ID)\nprint(\"Message sent!\")","lang":"python","description":"Initializes the Stream Chat client, upserts a user, generates a user token for client-side authentication, creates or retrieves a channel, and sends a message to it. Ensure `STREAM_API_KEY`, `STREAM_API_SECRET`, and `STREAM_USER_ID` are set as environment variables or replaced with actual values.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"4.32.0","pypi_latest":"4.32.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":90,"avg_install_s":5.2,"avg_import_s":1.32,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.19,"mem_mb":17.6,"disk_size":"33.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.1,"import_time_s":0.86,"mem_mb":17.7,"disk_size":"35M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.47,"mem_mb":19.9,"disk_size":"36.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.1,"import_time_s":1.3,"mem_mb":20,"disk_size":"39M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.54,"mem_mb":19.8,"disk_size":"28.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.8,"import_time_s":1.51,"mem_mb":19.8,"disk_size":"31M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.62,"mem_mb":20.6,"disk_size":"27.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4,"import_time_s":1.46,"mem_mb":20.7,"disk_size":"30M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"stream-chat","exit_code":1,"wheel_type":null,"failure_reason":"build_error","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":"stream-chat","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7,"import_time_s":0.97,"mem_mb":17.3,"disk_size":"38M"}]}}