pysmartthings
Asynchronous Python client for SmartThings.
What it is and what it does
pysmartthings is an async-first Python client library for the SmartThings API, designed to let you query and manage SmartThings devices and automations from Python code. It wraps HTTP calls to SmartThings' REST endpoints using aiohttp for non-blocking I/O, making it suitable for integration into async applications, home automation frameworks, and event-driven systems.
The package depends on aiohttp for HTTP transport, mashumaro and orjson for efficient data serialization, and yarl for URL handling. It targets modern Python (3.13+) and is actively maintained with a stable API surface. You would use it when you need programmatic access to SmartThings data in an async context—for example, polling device state, triggering automations, or building a bridge between SmartThings and another system.
Use it for:
- Fetch current state of SmartThings devices (lights, locks, thermostats) in an async application
- Build a home automation dashboard that queries SmartThings for real-time device status
- Integrate SmartThings with another home automation platform or custom orchestration system
- Monitor device events and trigger external actions based on SmartThings state changes
- Develop a bot or service that controls SmartThings devices via API calls
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Asynchronous Python client for fetching data from and interacting with SmartThings devices and services via their API.
Yes. The package is actively maintained, has low install friction, carries a permissive license, and fills a clear need for async SmartThings API access in Python. It supports current Python versions and has no known vulnerabilities. Install it if you need to integrate SmartThings into an async Python application.
Install
pysmartthings on PyPI
pip
pip install pysmartthingsuv
uv add pysmartthingspoetry
poetry add pysmartthingsInstalling pysmartthings
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a release 70 days ago and recent commits; requires Python 3.13 or later.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in most commercial and open-source projects without significant restrictions.
Quickstart
pip install pysmartthings
import aiohttp
from pysmartthings import SmartThings
async with aiohttp.ClientSession() as session:
api = SmartThings(session, token='your_token')
devices = await api.devices()
Requires Python 3.13 or later; requires an active SmartThings API token for authentication.
Verify before relying
- Specific SmartThings API endpoints and device types supported by version 4.0.1
- Whether rate limiting or throttling is built in or handled by the caller
- Authentication flow details and token management patterns
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4,>=3.13) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — aiohttp, mashumaro, orjson, yarl |
| Maintenance | actively maintained — 70 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 82,772/month — #14,135 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pysmartthings-4.0.1-py3-none-any.whl
Keywords: api, async, client, smartthings
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
aiowithingsAsynchronous Python client for fetching data…
permissive · top 15,000 on PyPI
pydiscovergyAsynchronous Python client for querying…
permissive · top 15,000 on PyPI
python-bsblanAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
elgatoAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
spotifyaioAsynchronous Python client for fetching data…
permissive · top 15,000 on PyPI
energyzeroAsynchronous Python client for retrieving…
permissive · top 15,000 on PyPI
gotailwindAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
wledAn asynchronous Python client library for…
permissive · top 15,000 on PyPI
adguardhomeAsynchronous Python client library for…
permissive · top 15,000 on PyPI
tailscaleAsynchronous Python client for querying and…
permissive · top 15,000 on PyPI