py-synologydsm-api
Python API for communication with Synology DSM
What it is and what it does
py-synologydsm-api is an async Python client for Synology NAS devices running DSM. It wraps the Synology HTTP API to let you query system health, manage storage volumes, upload and download files, and control download tasks—all without blocking your event loop. The library handles authentication including two-step verification, caches data between updates, and exposes an object model for DSM subsystems like information, utilisation, storage, file station, and download station.
You provide an aiohttp.ClientSession, instantiate SynologyDSM with your NAS IP and credentials, call login(), then call update() on the subsystem you need. The library is actively maintained, supports Python 3.11 through 3.14, and has no known vulnerabilities. It's most useful in automation scripts, home-automation integrations, or monitoring dashboards where you need non-blocking access to NAS state.
Use it for:
- Monitor Synology NAS CPU, memory, and network usage in real-time from a Python monitoring or alerting system.
- Automate file uploads and downloads to a NAS from a Python application without blocking other async tasks.
- Query storage volume status and disk health in a home-automation or infrastructure-management tool.
- Manage download tasks on a Synology Download Station programmatically (create, pause, resume, delete).
- Integrate NAS metrics and file operations into an async Python framework or monitoring dashboard.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Asynchronous Python client library for communicating with Synology DSM devices over HTTP/HTTPS, providing access to system information, storage, file operations, and download station management.
Yes. The package is actively maintained, has low install friction, carries a permissive MIT license, supports current Python versions (3.11 through 3.14), and has no known vulnerabilities. Install it if you need to interact with a Synology NAS from Python. The only caveat is that it requires an aiohttp session and async/await syntax; if you need synchronous access or don't have a Synology device, it's not applicable.
Install
py-synologydsm-api on PyPI
pip
pip install py-synologydsm-apiuv
uv add py-synologydsm-apipoetry
poetry add py-synologydsm-apiInstalling py-synologydsm-api
Before you install
Low friction installation with a pure Python wheel. Actively maintained with last commit on 2026-08-01. Requires Python 3.11 or later and three lightweight async dependencies: aiohttp, aiofiles, and awesomeversion.
License in practice
MIT license permits commercial and private use with minimal restrictions—you may use, modify, and distribute the package freely provided you include the license notice.
Quickstart
pip install py-synologydsm-api
import asyncio
import aiohttp
from synology_dsm import SynologyDSM
async def main():
async with aiohttp.ClientSession() as session:
api = SynologyDSM(session, "<IP>", "", "user", "pass")
await api.login()
await api.information.update()
print(api.information.model)
Requires aiohttp.ClientSession to be created and passed to the constructor; all operations are async and must be awaited within an async context.
Verify before relying
- Whether two-step authentication (2SA) support is fully documented and reliable in production use.
- Performance characteristics when managing large numbers of files or concurrent operations.
- Compatibility with specific Synology DSM versions beyond the general API coverage.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — aiohttp, aiofiles, awesomeversion |
| Maintenance | actively maintained — 37 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 80,745/month — #14,274 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: py_synologydsm_api-2.10.4-py3-none-any.whl
Keywords: synology-dsm, synology
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
python-incidentio-clientA Python client library for the incident.io…
permissive · top 15,000 on PyPI
uptime-kuma-api-v2Provides a Python client for the Uptime Kuma…
permissive · top 15,000 on PyPI
pyserial-asyncioAdds async/await support to pyserial for…
permissive · top 15,000 on PyPI
tailscaleAsynchronous Python client for querying and…
permissive · top 15,000 on PyPI
uptime-kuma-apiA Python wrapper for the Uptime Kuma Socket.IO…
permissive · top 5,000 on PyPI
epson-projectorAsynchronous Python library for controlling…
permissive · top 15,000 on PyPI
pyvesyncAsynchronous Python library to discover,…
permissive · top 15,000 on PyPI
python-designateclientPython client library and command-line tool for…
permissive · top 15,000 on PyPI
neptune-apiA generated Python client library for the…
permissive · top 5,000 on PyPI
azure-mgmt-dnsManages Azure DNS resources—zones, record sets,…
permissive · top 5,000 on PyPI