skillfed

py-synologydsm-api

Python API for communication with Synology DSM

py-synologydsm-api v2.10.4 80.7K downloads/30d#14,274 on PyPI32
Permissive license MIT Active released

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-api

uv

uv add py-synologydsm-api

poetry

poetry add py-synologydsm-api

Installing 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

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

Tags

synology dsm api clientsynology nas python asyncsynology disk station managernas management python librarysynology file station apisynology download station control
nas-managementasync-api-clientsynology

More Libraries packages