-
-
Notifications
You must be signed in to change notification settings - Fork 120
Wyzecam API (unofficial, reverse engineered for experimental use only).
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. Feel free to participate, issue pull requests, etc.
Disclaimer: This repository is for fun only. WyzeLabs is a wonderful company, do no harm and be civilized.
URL POST: https://api.wyzecam.com/app/user/login
JSON payload :
{
"phone_id":"bc151f39-787b-4871-be27-5a20fd0a1937",
"app_name":"com.hualai.WyzeCam",
"app_ver":"com.hualai.WyzeCam___2.6.62",
"app_version":"2.6.62",
"sc":"9f275790cab94a72bd206c8876429f3c",
"sv":"41267de22d1847c8b99bfba2658f88d7",
"ts":"1575955440030",
"password":"c991ddddfaed476feced186ae0f3428ac",
"user_name":"[email protected]",
"two_factor_auth":"",
"phone_system_type":"1",
"access_token": ""
}
Field Key | Field Type | Details |
---|---|---|
phone_id | GUID | A unique phone identifier. For that purpose, you may generate a new GUID. As example, here is a valid GUID : bc151f39-787b-4871-be27-5a20fd0a1937 . |
app_name | String | Mobile App Name. Currently using com.hualai.WyzeCam . |
app_ver | String | Mobile app version. Currently using com.hualai___2.6.62 . |
sc | String (32 char length) | TBD. |
sv | String (32 char length) | TBD. |
ts | Time | Current time in milliseconds. |
user_name | String | Your Wyzecam email. |
password | String | Your Wyzecam password. Hash is made of MD5(MD5(password)) . |
access_token | String | For the login request, this field is empty. Upon successful login, the access_token is returned as a JSON value. |
Example with cURL:
TBD
JSON response example :
{
"ts": 1591107521474,
"code": "1",
"msg": "",
"data": {
"user_center_id": "368d248673fa3a859ae4334244bb767b",
"access_token": "access_token",
"refresh_token": "refresh_token"
}
}
JSON login error :
{
"ts": 1591107468085,
"code": "2000",
"msg": "UserNameOrPasswordError",
"data": {}
}
JSON account locked error :
TBD
URL: POST https://api.wyzecam.com/app/v2/home_page/get_object_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",
"refresh_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. Currently using com.hualai___1.1.52 . |
ts | Time | Current time in milliseconds. |
access_token | String | An access token acquired at login. |
refresh_token | String | An access token acquired at login. |
phone_id | GUID | A unique phone identifier. 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/app/v2/home_page/get_object_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"
}]
}
}
URL: POST https://api.wyzecam.com/app/v2/device/get_property_list
JSON payload:
"target_pid_list":[],
"phone_id":"bc151f39-787b-4871-be27-5a20fd0a1937",
"device_model": "PIR3U",
"app_name":"com.hualai.WyzeCam",
"app_version":"2.6.62",
"sc":"01dd431d098546f9baf5233724fa2ee2",
"sv":"22bd9023a23b4b0b9977e4297ca100dd",
"device_mac": "777F1FB1",
"app_ver":"com.hualai.WyzeCam___2.6.62",
"phone_system_type":"1",
"ts":"1575955054511",
"access_token": "ACQUIRED_AT_LOGIN",
"refresh_token": "ACQUIRED_AT_LOGIN"
Field Key | Field Type | Details |
---|---|---|
taraget_pid_list | TBD | TBD |
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 . |
device_model | String | Device model number. |
app_name | String | Mabile App Name. Currenly using com.hualai.WyzeCam . |
app_ver | String | Mobile app version. Currently using com.hualai___2.6.62 . |
sc | String (32 char length) | TBD. |
sv | String (32 char length) | TBD. |
device_mac | String | Device Mac. |
app_ver | String | Mobile app version. Curently using com.hualai___2.6.62 . |
ts | Time | Current time in milliseconds. |
access_token | String | An access token acquired at login. |
refresh_token | String | An access token acquired at login. |
Example with cURL:
TBD
JSON response example for Motion Sensor:
PID | Value | Details |
---|---|---|
P1302 | 0/1 | 0 = No Motion 1 = Motion |
P1303 | 0/100 | Current reported Battery Voltage. |
P1304 | 0/100 | Current reported RSSI. Lower the Number, the better. |
P5 | 0/1 | 0 = Offline 1 = Online |
{
"ts": 1591122613649,
"code": "1",
"msg": "",
"data": {
"property_list": [
{
"pid": "P1",
"value": "0",
"ts": 1588815051461
},
{
"pid": "P1300",
"value": "0",
"ts": 0
},
{
"pid": "P1302",
"value": "0",
"ts": 1591122605885
},
{
"pid": "P1303",
"value": "93",
"ts": 1591122605885
},
{
"pid": "P1304",
"value": "71",
"ts": 1591122605885
},
{
"pid": "P1314",
"value": "1",
"ts": 0
},
{
"pid": "P1315",
"value": "1",
"ts": 0
},
{
"pid": "P1316",
"value": "0",
"ts": 0
},
{
"pid": "P1317",
"value": "0",
"ts": 0
},
{
"pid": "P1318",
"value": "0",
"ts": 0
},
{
"pid": "P1319",
"value": "0",
"ts": 0
},
{
"pid": "P1320",
"value": "0",
"ts": 0
},
{
"pid": "P1325",
"value": "1",
"ts": 0
},
{
"pid": "P1326",
"value": "1",
"ts": 0
},
{
"pid": "P1327",
"value": "0",
"ts": 0
},
{
"pid": "P1328",
"value": "0",
"ts": 0
},
{
"pid": "P1329",
"value": "0",
"ts": 1591122605885
},
{
"pid": "P2",
"value": "0",
"ts": 0
},
{
"pid": "P4",
"value": "1",
"ts": 0
},
{
"pid": "P5",
"value": "1",
"ts": 1591121805351
},
{
"pid": "P6",
"value": "0",
"ts": 0
}
]
}
}
-
https://beta-api.wyzecam.com/app/v2/device_property_notification/register
-
https://beta-platform-service.wyzecam.com/app/v2/platform/set_phone_status
-
https://beta-platform-service.wyzecam.com/app/v2/platform/set_phone_profile
-
https://beta-platform-service.wyzecam.com/app/v2/platform/update_user_profile
-
https://beta-platform-service.wyzecam.com/app/v2/platform/device/get_support_device?arguments=
-
https://beta-platform-service.wyzecam.com/app/v2/platform/get_user_profile
-
https://beta-platform-service.wyzecam.com/app/v2/platform/logout
-
https://beta-membership-service.wyzecam.com/platform/v2/membership/get_plan_info
-
https://beta-hes-service.wyzecam.com/app/v2/platform/get_alarm_status
-
https://beta-wristband-service.wyzecam.com/app/v2/wristband/get_token
-
https://auth-beta.api.wyze.com/api/v2/users/me/mfa/sms/registerPhone/sendCode
-
https://auth-beta.api.wyze.com/api/v2/users/me/mfa/sms/Primary
-
https://auth-beta.api.wyze.com/api/v2/users/me/mfa/sms/Backup
{
"errorCode": 1000,
"description": "Invalid User Name or Password.",
"requestId": "f4d0ee9e-a31c-45d0-bbd6-86b8e61fc32b"
}
URLs to document from https://github.com/nblavoie/wyzecam-api:
- https://api.wyzecam.com:8443/app/device/get_alarm_info_list
- https://api.wyzecam.com:8443/app/device/get_share_info_list
- https://api.wyzecam.com:8443/app/system/get_allow_binding_device_list
- https://api.wyzecam.com:8443/app/system/set_app_info
- https://api.wyzecam.com:8443/app/device/upload_device_connect_info
- https://api.wyzecam.com:8443/app/user/get_user_info
- https://api.wyzecam.com:8443/app/user/refresh_token
- https://api.wyzecam.com:8443/app/user/use_app