py-synologydsm-api
Python API for communication with Synology DSM
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires aiohttp.ClientSession to be created and passed to the constructor; all operations are async and must be awaited within an async context.
- Low friction installation with a pure Python wheel.
- Actively maintained with last commit on 2026-08-01.
License · maintenance · safety
MIT (permissive) — 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.
last release 2026-07-08 (37 days) · last repo commit 2026-08-01 · 32 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 80,745 downloads/mo, #14,274 on PyPI
Alternatives
Verify before relying
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)- 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.
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 on it.
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
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.
Requires aiohttp.ClientSession to be created and passed to the constructor; all operations are async and must be awaited within an async context.
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)
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 packagesaiohttpaiofilesawesomeversion |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Libraries |
Evidence: py_synologydsm_api-2.10.4-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “synology dsm api client”
- py-synologydsm-apiAsynchronous Python client library for communicating with Synology…
- codewords-clientA Python client library for the Codewords API with built-in FastAPI…
- twentyc.rpcA client library for consuming 20c's RESTful API, built on top of the…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also python-incidentio-client · uptime-kuma-api-v2 · pyserial-asyncio · tailscale · uptime-kuma-api · epson-projector · pyvesync · python-designateclient · neptune-api · azure-mgmt-dns