Do you happen to have the REST endpoints and authentication documented anywhere? I am looking to integrate the doorbell with my OpenHAB installation and would love to get a jumpstart.
Open API?
That’s exactly what I was thinking of doing, since it seems easy to share the camera out.
This is roughly what I have so far… I plan on creating a client library assuming this doesn’t get broken by Anker (please, let us keep it! or give us a documented API )
Login
POST https://mysecurity.eufylife.com/api/v1/passport/login
Body:
{
"email": "youremail@domain.tld",
"password": "your password"
}
Response
{
"code": 0,
"msg": "Succeed.",
"data": {
"user_id": "REDACTED",
"email": "youremail@domain.tld",
"nick_name": "youremail",
"auth_token": "AUTH_TOKEN_HERE",
"token_expires_at": 1565717940,
"avatar": "",
"invitation_code": "REDACTED",
"inviter_code": "",
"mac_addr": "REDACTED",
"domain": "security-app.eufylife.com",
"ab_code": "US",
"geo_key": "REDACTED",
"privilege": 0,
"params": null
}
}
The important part of that one is the auth_token
which is used in any further requests.
List Devices
POST https://mysecurity.eufylife.com/api/v1/app/get_devs_list
Headers:
x-auth-token: AUTH_TOKEN_HERE
Body:
{
"device_sn": "",
"num": 100,
"orderby": "",
"page": 0,
"station_sn": ""
}
Response
{
"code": 0,
"msg": "Succeed.",
"data": [
{
"device_id": REDACTED,
"device_sn": "REDACTED",
"device_name": "Doorbell",
"device_model": "T8200",
"time_zone": "EST5EDT,M3.2.0,M11.1.0",
"device_type": 5,
"device_channel": 0,
"station_sn": "REDACTED",
"schedule": "",
"schedulex": "",
"wifi_mac": "REDACTED",
"main_sw_version": "2.157",
"main_hw_version": "P2",
"sec_sw_version": "1.030",
"sec_hw_version": "P2",
"sector_id": 0,
"event_num": 26,
"wifi_ssid": "REDACTED",
"ip_addr": "REDACTED",
"volume": "Anker_p988CTsnH",
"main_sw_time": 1562640644,
"bind_time": 1561916617,
"bt_mac": "8C858013A8DE",
"create_time": 1557986947,
"update_time": 1563085853,
"status": 1,
"svr_domain": "",
"svr_port": 0,
"station_conn": {
"station_sn": "REDACTED",
"station_name": "Doorbell",
"station_model": "T8200",
"main_sw_version": "2.157",
"main_hw_version": "P2",
"p2p_did": "REDACTED",
"push_did": "REDACTED",
"ndt_did": "REDACTED",
"p2p_conn": "REDACTED",
"app_conn": "REDACTED",
"binded": false,
"setup_code": ""
},
"family_num": 0,
"member": {
"family_id": REDACTED,
"station_sn": "REDACTED",
"admin_user_id": "REDACTED",
"member_user_id": "REDACTED",
"member_type": 2,
"permissions": 0,
"member_nick": "",
"action_user_id": "REDACTED",
"fence_state": 0,
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1,
"email": "youremail@domain.tld",
"nick_name": "youremail",
"avatar": "",
"action_user_name": "youremail"
},
"permission": null,
"params": [
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 2031,
"param_value": "3",
"create_time": 1561916890,
"update_time": 1561916890,
"status": 1
},
{
"param_id": 1263342,
"device_sn": "REDACTED",
"param_type": 2015,
"param_value": "true",
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 2030,
"param_value": "0",
"create_time": 1561916861,
"update_time": 1561916861,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 2006,
"param_value": "{\"polygonArray\":[{\"pointArray\":[{\"x\":256,\"y\":262},{\"x\":1294,\"y\":213},{\"x\":2091,\"y\":278},{\"x\":2050,\"y\":1055},{\"x\":1234,\"y\":1187},{\"x\":310,\"y\":1148}]}]}",
"create_time": 1562475264,
"update_time": 1562475264,
"status": 1
},
{
"param_id": 1263345,
"device_sn": "REDACTED",
"param_type": 2003,
"param_value": "148",
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 2033,
"param_value": "1",
"create_time": 1561916881,
"update_time": 1561916881,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 1134,
"param_value": "0",
"create_time": 1561916751,
"update_time": 1561916751,
"status": 1
},
{
"param_id": 1263346,
"device_sn": "REDACTED",
"param_type": 2022,
"param_value": "74",
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1
},
{
"param_id": 1263341,
"device_sn": "REDACTED",
"param_type": 2002,
"param_value": "true",
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1
},
{
"param_id": 1263344,
"device_sn": "REDACTED",
"param_type": 2005,
"param_value": "1",
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 2028,
"param_value": "6",
"create_time": 1561917067,
"update_time": 1561917067,
"status": 1
},
{
"param_id": 1263340,
"device_sn": "REDACTED",
"param_type": 2001,
"param_value": "true",
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 1133,
"param_value": "0",
"create_time": 1561916751,
"update_time": 1561916751,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 2010,
"param_value": "{\"totalCapcity\":4294967296,\"usedCapcity\":314370867}",
"create_time": 1561917086,
"update_time": 1561917086,
"status": 1
},
{
"param_id": 0,
"device_sn": "REDACTED",
"param_type": 2029,
"param_value": "1",
"create_time": 1561916883,
"update_time": 1561916883,
"status": 1
},
{
"param_id": 1263343,
"device_sn": "REDACTED",
"param_type": 2004,
"param_value": "1",
"create_time": 1561916618,
"update_time": 1561916618,
"status": 1
}
],
"pir_total": 3,
"pir_none": 0,
"week_pir_total": 24,
"week_pir_none": 0,
"month_pir_total": 48,
"month_pir_none": 0
}
]
}
Get History
POST https://mysecurity.eufylife.com/api/v1/event/app/get_all_history_record
Headers:
x-auth-token: AUTH_TOKEN_HERE
Body:
{
"device_sn": "",
"end_time": 0,
"id": 0,
"num": 100,
"offset": -14400,
"pullup": true,
"shared": true,
"start_time": 0,
"storage": 0
}
Response
{
"code": 0,
"msg": "Succeed.",
"data": [
{
"monitor_id": REDACTED,
"station_sn": "REDACTED",
"device_sn": "REDACTED",
"storage_type": 1,
"storage_path": "/mnt/userdata/video/h264_video_20190713_222945.data",
"hevc_storage_path": "",
"cloud_path": "",
"frame_num": 481,
"thumb_path": "https://zhixin-security-pr.s3.us-west-2.amazonaws.com/thumb/2019/07/14/station/REDACTED",
"thumb_data": "",
"start_time": 1563071383447,
"end_time": 1563071415402,
"cipher_id": 128,
"cipher_user_id": "REDACTED",
"has_human": 1,
"volume": "Anker_p988CTsnH",
"vision": 0,
"device_name": "Doorbell",
"device_type": 5,
"video_type": 1003,
"viewed": false,
"create_time": 1563071417,
"update_time": 1563071417,
"status": 1,
"station_name": "",
"p2p_did": "REDACTED",
"push_did": "REDACTED",
"p2p_license": "REDACTED",
"push_license": "REDACTED",
"ndt_did": "REDACTED",
"ndt_license": "REDACTED",
"p2p_conn": "REDACTED",
"app_conn": "REDACTED",
"wipn_enc_dec_key": "REDACTED",
"wipn_ndt_aes128key": "REDACTED",
"query_server_did": "REDACTED",
"prefix": "",
"ai_faces": null,
"is_favorite": false
},
[...]
}
Start Stream (returns an RTMP URL)
POST https://mysecurity.eufylife.com/api/v1/web/equipment/start_stream
Headers:
x-auth-token: AUTH_TOKEN_HERE
Body:
{
"device_sn": "REDACTED",
"station_sn": "REDACTED",
"proto": 2
}
Response
{
"code": 0,
"msg": "Succeed.",
"data": {
"url": "rtmp://p2p-vir-7.eufylife.com/hls/REDACTED=?time=1563126670&token=REDACTED"
}
}
Very nice! If you do open a client library I’d love to get it into HomeAssistant as well.
Thank you so much! this is really helpful. I will start digging in here and see what I can uncover. Thanks again!
Please put this on an external website, as this post can be deleted at any time.
Any news on this? Would be great if Eufycam could be automated.
Wonder if you managed to get the endpoints/formats for changing the modes?
It would be awesome for home automation integration.
Any updates on this? I really love the eufy doorbell, however the missing integration with home assistant is a deal breaker.
No, haven’t seen anything. I added @maiocj 's documentation to a Github repo, may try to flesh things out a bit more this weekend. I’m a 100% python newb so I don’t think I have the chops to craft this but I may give it a shot.
Hi, does anyone knows the endpoint to turn on and off the alarm sound in the camera?
Thanks
not a developer, love to see an app for SmartThings if possible to integrate my Eufy cameras and doorbell
Please Anker would be great if this could be integrated into Home Assistant. Its a perfect fit with local recording, and the cameras are great.
It would certainly encourage Home Assistant users to buy these cameras.
Hi,
I’ve observed that API URL has slightly changed. Proper response body is only provided:
https://mysecurity.eufylife.com/apieu/v1/app/get_devs_list
Change api into apieu then it works with postman at least.
Best regards
This would be such a great opportunity for Anker as so many are waiting for a good camera integration for Home Assistant.
Hello
did you find the api aprt for security mode setting ?
Regards
This has the integer for security mode:
I tried the endpoints in a Java program, I can get token but not the stream.
On passport/login I get:
{"code":0,
"msg":"ok",
"data":{
"user_id":"...",
"email":"...",
"nick_name":"...",
"auth_token":"...",
On web/equipment/start_stream I get:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head><title>403 Forbidden</title></head>
<body><center><h1>403 Forbidden</h1>
</center><hr><center>tengine</center>
</body></html>
I tried URLs:
https://mysecurity.eufylife.com/api/v1/… and
https://security-app.eufylife.com/v1/…
Any idea why it’s failing?
Because they killed it. Just like they killed the web portal.
They list it as a feature but don’t support it at all.
I regret buying 4 of their cameras and will be replacing them soon. Even though they are only 2 months old they will end up in the trash.
Yes this is very disappointing. I did the same mistake. I have a variety of IoT devices at home from different vendors and I was really surprised to see that I cannot integrate Eufycam into my ecosystem. I wonder what is Eufy approach for integration of Eufy product with 3rd party IoT devices?
I think it would be fair if they make it clear on their home page that they do not support nor even tolerate unofficial ways of integration with 3rd party IoT devices. It’s a shame they are not transparent about that.