Reolink Camera HTTP API (Condensed) Protocol HTTP/HTTPS: POST only, JSON payload, Content-Type: application/json or application/octet-stream (for uploads). URL: https:///api.cgi?cmd=[&token=] Authentication: Long Session: Login to get token (3600s lease), append &token= to URLs. Short Session: Append &user=&password= to URLs. JSON Structure:[{"cmd": "", "action": 0|1, "param": {...}}] action: 0 (set), 1 (get initial/range). Response: [{"cmd": "", "code": 0, "value": {...}}] or "error": {"rspCode": , "detail": ""}. Core Commands System GetAbility: cmd=GetAbility, param: {"User": {"userName": ""}}. Returns permissions (permit), versions (ver). GetDevInfo: cmd=GetDevInfo. Returns model, firmware, channel count, etc. Get/SetDevName: cmd=GetDevName/SetDevName, param: {"channel": 0, "DevName": {"name": ""}}. Get/SetTime: cmd=GetTime/SetTime, param: {"Dst": {"enable": 0|1, ...}, "Time": {"year": , "timeFmt": "DD/MM/YYYY", "timeZone": , "hourFmt": 0|1}}. Get/SetAutoMaint: cmd=GetAutoMaint/SetAutoMaint, param: {"AutoMaint": {"enable": 0|1, "weekDay": "", "hour": , ...}}. GetHddInfo: cmd=GetHddInfo. Returns storage capacity, format status. Format: cmd=Format, param: {"HddInfo": {"id": []}}. Upgrade: cmd=Upgrade&clearConfig=<0|1>, multipart upgrade-package (max 40K chunks). Precede with UpgradePrepare. UpgradePrepare: cmd=UpgradePrepare, param: {"restoreCfg": 0|1, "fileName": ".pak"}. Restore/Reboot: cmd=Restore/Reboot. Get/SetAutoUpgrade: cmd=GetAutoUpgrade/SetAutoUpgrade, param: {"AutoUpgrade": {"enable": 0|1}}. CheckFirmware/UpgradeOnline/UpgradeStatus: cmd=CheckFirmware/UpgradeOnline/UpgradeStatus. Check/start/monitor online upgrades. Getchannelstatus: cmd=Getchannelstatus. Returns NVR channel status. Security Login: cmd=Login, param: {"User": {"Version": "0", "userName": "", "password": ""}}. Returns Token: {"name": "", "leaseTime": 3600}. Logout: cmd=Logout. Get/Add/Del/ModifyUser: cmd=GetUser/AddUser/DelUser/ModifyUser, param: {"User": {"userName": "", "password": "", "level": "admin|guest"}}. Max 20 users. GetOnline/Disconnect: cmd=GetOnline/Disconnect, param: {"User": {"userName": "", "sessionId": }}. Get/SetSysCfg: cmd=GetSysCfg/SetSysCfg, param: {"SysCfg": {"loginLock": 0|1}}. Network Get/SetLocalLink: cmd=GetLocalLink/SetLocalLink, param: {"LocalLink": {"type": "DHCP|Static", "static": {"ip": "", "mask": "", "gateway": ""}, "dns": {"auto": 0|1, "dns1": "", "dns2": ""}}}. Get/SetDdns: cmd=GetDdns/SetDdns, param: {"Ddns": {"enable": 0|1, "type": "no-ip|Dyndns", "userName": "", "password": "", "domain": ""}}. Get/SetEmail(V20): cmd=GetEmail|GetEmailV20/SetEmail|SetEmailV20, param: {"Email": {"smtpServer": "", "smtpPort": , "userName": "", "password": "", "ssl": 0|1, "interval": "