Python 3 library to use the Synology SRM (Synology Router Manager) API. This is NOT the same thing as Synology DSM (DiskStation Manager).
This library should work with the following devices.
- RT1900ac
- RT2600ac
It's not possible to create another account in SRM with admin permissions. You'll need to use your
admin
account (or the one you renamed at creation).
import synology_srm
client = synology_srm.Client(
host='192.168.1.254',
port=8001,
https=True,
username='admin',
password='admin',
)
You can now access all namespaces from the API. The following methods are availabe.
- Base
- getinfo_encryption()
- query_info()
- Core
- list_ddns_extip()
- list_ddns_record()
- get_system_utilization()
- get_network_nsm_device(filters=
{}
) - get_ngfw_traffic(interval=
live|day|week|month
) - list_certificate()
- export_certificate(path=
certificate.zip
)
- Mesh
- get_network_wanstatus()
- get_network_wifidevice()
- get_system_info()
For instance, to list all endpoints available in the API.
endpoints = client.base.query_info()
for endpoint, config in endpoints.items():
print("API endpoint {} (minVersion={}, maxVersion={})".format(
endpoint,
config['minVersion'],
config['maxVersion'],
))
It's possible to target endpoints not directly supported by this library by using the raw http
client.
response = client.http.call(
endpoint='entry.cgi',
api='SYNO.Core.System.Utilization',
method='get',
version=1,
)
You can disable the HTTPS certificate verification if you are using a self-signed certificate.
client.http.disable_https_verify()