wyzecam-api

Project Url: nblavoie/wyzecam-api
Introduction: Wyzecam API reverse engineered to support Wyzecam alternatives applications.
More: Author   ReportBugs   
Tags:

Note: May 15 2019: Project has been discontinued.



Wyzecams are awesome. At 19$, these are the perfect Wi-Fi cameras. They are reliable, well built and the Wyzecam mobile app is well made. But, the mobile application lacks a feature I really need: a way to access the cameras feed outside its walled garden. This repository is my attempt to document the Wyzecam API protocol to locally get my cameras feed in a cross-platform desktop application.

Feel free to participate, issue pull requests, etc.

Disclaimer : This repository is for fun only. WizeLabs is a wonderful company, do no harm and be civilized.

URL : https://api.wyzecam.com:8443

1. Login method.

URL POST: https://api.wyzecam.com:8443

JSON payload :

{
    "sc": "f5609af3fa9541fd82a486df5fd9965a",
    "sv": "1ee66ee1fe03403b9ded3fe2fa869f2a",
    "app_ver": "com.hualai___1.1.52",
    "ts": 1524247514196,
    "access_token": "",
    "phone_id": "bc151f39-787b-4871-be27-5a20fd0a1937",
    "user_name": "email@domain.com",
    "password": "password"
}
Field Key Field Type Details
sc String (32 char length) TBD.
sv String (32 char length) TBD.
app_ver String Mobile app version. Curently using com.hualai___1.1.52.
ts Time Current time in milliseconds.
access_token String For the login request, this field is empty. Upon a successful login, the access_token will be returned as a JSON value (see data.access_token in the next section).
phone_id GUID A unique phone identifiant. For that purpose, you may generate a new GUID. As example, here is a valid GUID : bc151f39-787b-4871-be27-5a20fd0a1937.
user_name String Your Wyzecam email.
password String Your Wyzecam password. Hash is made of MD5(MD5(password)).

Example with cURL :

curl -H "Content-Type: application/json" -X POST -d '{"sc":""f5609af3fa9541fd82a486df5fd9965a",","sv":""1ee66ee1fe03403b9ded3fe2fa869f2a",","app_ver":"com.hualai___1.1.52","ts":1524248711789,"access_token":"","phone_id":"bc151f39-787b-4871-be27-5a20fd0a1937","user_name":"email@domain.com","password":"password"}' https://api.wyzecam.com:8443/app/user/login

JSON response example :

{
   "ts":1524249332073,
   "code":"1",
   "msg":"",
   "data":{
      "access_token":"access token",
      "refresh_token":"refresh token"
   }
}

JSON login error :

TBD

JSON account locked error :

TBD

2. List devices (get list of cameras).

URL: POST https://api.wyzecam.com:8443/app/device/get_device_list

JSON payload:

{
    "sv": "01463873df804629b15694df13126d31",
    "sc": "01dd431d098546f9baf5233724fa2ee2",
    "ts": 1525365683583,
    "app_ver": "com.hualai.WyzeCam___1.3.116",
    "phone_id": "bc151f39-787b-4871-be27-5a20fd0a1937",
    "access_token": "ACQUIRED_AT_LOGIN"
}
Field Key Field Type Details
sc String (32 char length) TBD.
sv String (32 char length) TBD.
app_ver String Mobile app version. Curently using com.hualai___1.1.52.
ts Time Current time in milliseconds.
access_token String An access token acquired at login. (see data.access_token).
phone_id GUID A unique phone identifiant. For that purpose, you may generate a new GUID. As example, here is a valid GUID : bc151f39-787b-4871-be27-5a20fd0a1937.

Example with cURL:

    curl -H 'Host: api.wyzecam.com:8443' -H 'Content-Type: application/json' -H 'Accept: */*' -H 'User-Agent: HLHome/1.3.116 (iPhone; iOS 11.3; Scale/3.00)' -H 'Accept-Language: en-US;q=1' --data-binary '{"sv":"01463873df804629b15694df13126d31","sc":"01dd431d098546f9baf5233724fa2ee2","ts":1525365683583,"app_ver":"com.hualai.WyzeCam___1.1.52","phone_id":"bc151f39-787b-4871-be27-5a20fd0a1937","access_token":"ACQUIRED_AT_LOGIN"}' --compressed 'https://api.wyzecam.com:8443/app/device/get_device_list'

JSON response example:

{
    "ts": 1525365690660,
    "code": "1",
    "msg": "",
    "data": {
        "device_info_list": [{
            "mac": "CAMERA_MAC_ADDRESS",
            "enr": "TBD",
            "p2p_id": "PEER_TO_PEER_IDENTIFIER",
            "p2p_type": 3,
            "product_model": "WYZEC1-JZ",
            "product_type": "Camera",
            "hardware_ver": "0.0.0.0",
            "firmware_ver": "4.9.1.42",
            "role": 1,
            "nickname": "LilCam",
            "device_logo": "",
            "device_timezone": "",
            "binding_user_nickname": "ACCOUNT_EMAIL_ADDRESS",
            "ssid": "CAMERA_CONNECTED_WIFI_SSIDE",
            "ip": "CAMERA_IP_ADDRESS",
            "conn_state": 1,
            "power_switch": 1
        }],
        "device_sort_list": [{
            "device_id": "CAMERA_ID",
            "product_model": "WYZEC1-JZ"
        }]
    }
}

URLs to document:

Apps
About Me
Google+: Trinea trinea
GitHub: Trinea