From 04c2be9087b3d5be80c40f9020406db946962772 Mon Sep 17 00:00:00 2001 From: Kevin Fronczak Date: Thu, 29 Nov 2018 15:23:28 -0500 Subject: [PATCH] Add changes from source repo --- API.md | 70 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/API.md b/API.md index 6dbdd2c..4927fdc 100644 --- a/API.md +++ b/API.md @@ -1,5 +1,5 @@ # BlinkMonitorProtocol -Unofficial documentation for the Client API of the Blink Wire-Free HD Home Monitoring and Alert System. +Unofficial documentation for the Client API of the Blink Wire-Free HD Home Monitoring & Alert System. Copied from https://github.com/MattTW/BlinkMonitorProtocol @@ -7,9 +7,6 @@ I am not affiliated with the company in any way - this documentation is strictly The Client API is a straightforward REST API using JSON and HTTPS. -## This Document -The purpose here is to describe what is going on behind the scenes, and what commands we know are available to communicate with Blink servers. This is NOT a description of the blinkpy module, but a description of the commands blinkpy relies on to effectively communicate. - ## Login Client login to the Blink Servers. @@ -19,20 +16,25 @@ Client login to the Blink Servers. > "password" : "*your blink password*", > "client_specifier" : "iPhone 9.2 | 2.2 | 222", > "email" : "*your blink login/email*" ->}' --compressed https://prod.immedia-semi.com/login +>}' --compressed https://rest.prod.immedia-semi.com/login **Response:** ->{"authtoken":{"authtoken":"*an auth token*","message":"auth"}} +>{"authtoken":{"authtoken":"*an auth token*","message":"auth"},"networks":{"*network id*":{"name":"*name*","onboarded":true}},"region":{"*regioncode for endpoint*":"*region name"}} **Notes:** The authtoken value is passed in a header in future calls. +The region code for endpoint is required to form the URL of the REST endpoint for future calls. +Depending on the region you are registered you will need to change the REST endpoints below: +- from `https://rest.prod.immedia-semi.com` +- to `https://rest.prde.immedia-semi.com` if e.g. your device is registered in Germany +Please note that at this moment it seems that all regions are not implemented equally: not all endpoints are available in all regions -##Networks +## Networks Obtain information about the Blink networks defined for the logged in user. **Request:** ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/networks +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/networks **Response:** JSON response containing information including Network ID and Account ID. @@ -46,7 +48,7 @@ Network ID is needed to issue arm/disarm calls Obtain information about the Blink Sync Modules on the given network. **Request:** ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/network/*network_id_from_networks_call*/syncmodules +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/network/*network_id_from_networks_call*/syncmodules **Response:** JSON response containing information about the known state of the Sync module, most notably if it is online @@ -56,11 +58,11 @@ Probably not strictly needed but checking result can verify that the sync module ## Arm - + Arm the given network (start recording/reporting motion events) **Request:** ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://prod.immedia-semi.com/network/*network_id_from_networks_call*/arm +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://rest.prod.immedia-semi.com/network/*network_id_from_networks_call*/arm **Response:** JSON response containing information about the arm command request, including the command/request ID @@ -73,7 +75,7 @@ When this call returns, it does not mean the arm request is complete, the clien Disarm the given network (stop recording/reporting motion events) **Request:** ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://prod.immedia-semi.com/network/*network_id_from_networks_call*/disarm +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://rest.prod.immedia-semi.com/network/*network_id_from_networks_call*/disarm **Response:** JSON response containing information about the disarm command request, including the command/request ID @@ -87,7 +89,7 @@ When this call returns, it does not mean the disarm request is complete, the cl Get status info on the given command **Request:** ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/network/*network_id*/command/*command_id* +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/network/*network_id*/command/*command_id* **Response:** JSON response containing state information of the given command, most notably whether it has completed and was successful. @@ -103,7 +105,7 @@ lv_relay, arm, disarm, thumbnail, clip Return information displayed on the home screen of the mobile client **Request:** ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/homescreen +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/homescreen **Response:** JSON response containing information that the mobile client displays on the home page, including: status, armed state, links to thumbnails for each camera, etc. @@ -111,12 +113,12 @@ JSON response containing information that the mobile client displays on the home **Notes:** Not necessary to as part of issuing arm/disarm commands, but contains good summary info. -##Events, thumbnails & video captures +## Events, thumbnails & video captures **Request** Get events for a given network (sync module) -- Need network ID from home ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/events/network/*network__id* +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/events/network/*network__id* **Response** A json list of evets incluing URL's. Replace the "mp4" with "jpg" extension to get the thumbnail of each clip @@ -144,7 +146,7 @@ Note that you replace the 'mp4' with a 'jpg' to get the thumbnail **Request** Captures a new thumbnail for a camera ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/thumbnail +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://rest.prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/thumbnail **Response** Command information. @@ -152,17 +154,17 @@ Command information. **Request** Captures a new video for a camera ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/clip +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://rest.prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/clip **Response** Command information. -##Video Information +## Video Information **Request** Get the total number of videos in the system ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/api/v2/videos/count +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/api/v2/videos/count **Response** JSON response containing the total video count. @@ -170,7 +172,7 @@ JSON response containing the total video count. **Request** Gets a paginated set of video information ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/api/v2/videos/page/0 +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/api/v2/videos/page/0 **Response** JSON response containing a set of video information, including: camera name, creation time, thumbnail URI, size, length @@ -178,7 +180,7 @@ JSON response containing a set of video information, including: camera name, cre **Request** Gets information for a specific video by ID ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/api/v2/video/*video_id* +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/api/v2/video/*video_id* **Response** JSON response containing video information @@ -186,7 +188,7 @@ JSON response containing video information **Request** Gets a list of unwatched videos ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/api/v2/videos/unwatched +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/api/v2/videos/unwatched **Response** JSON response containing unwatched video information @@ -194,7 +196,7 @@ JSON response containing unwatched video information **Request** Deletes a video ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://prod.immedia-semi.com/api/v2/video/*video_id*/delete +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://rest.prod.immedia-semi.com/api/v2/video/*video_id*/delete **Response** Unknown - not tested @@ -202,7 +204,7 @@ Unknown - not tested **Request** Deletes all videos ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://prod.immedia-semi.com/api/v2/videos/deleteall +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --data-binary --compressed https://rest.prod.immedia-semi.com/api/v2/videos/deleteall **Response** Unknown - not tested @@ -212,7 +214,7 @@ Unknown - not tested **Request** Gets a list of cameras ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/network/*network_id*/cameras +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/network/*network_id*/cameras **Response** JSON response containing camera information @@ -220,7 +222,7 @@ JSON response containing camera information **Request** Gets information for one camera ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/network/*network_id*/camera/*camera_id* +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/network/*network_id*/camera/*camera_id* **Response** JSON response containing camera information @@ -228,7 +230,7 @@ JSON response containing camera information **Request** Gets camera sensor information ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/signals +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/signals **Response** JSON response containing camera sensor information, such as wifi strength, temperature, and battery level @@ -236,7 +238,7 @@ JSON response containing camera sensor information, such as wifi strength, tempe **Request** Enables motion detection for one camera ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: $auth_token" --data-binary --compressed https://prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/enable +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: $auth_token" --data-binary --compressed https://rest.prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/enable **Response** JSON response containing camera information @@ -244,7 +246,7 @@ JSON response containing camera information **Request** Disables motion detection for one camera ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: $auth_token" --data-binary --compressed https://prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/disable +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: $auth_token" --data-binary --compressed https://rest.prod.immedia-semi.com/network/*network_id*/camera/*camera_id*/disable **Response** JSON response containing camera information @@ -257,7 +259,7 @@ JSON response containing camera information **Request** Gets information about devices that have connected to the blink service ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/account/clients +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/account/clients **Response** JSON response containing client information, including: type, name, connection time, user ID @@ -265,7 +267,7 @@ JSON response containing client information, including: type, name, connection t **Request** Gets information about supported regions ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/regions +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/regions **Response** JSON response containing region information @@ -273,7 +275,7 @@ JSON response containing region information **Request** Gets information about system health ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/health +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/health **Response** "all ports tested are open" @@ -281,7 +283,7 @@ Gets information about system health **Request** Gets information about programs ->curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://prod.immedia-semi.com/api/v1/networks/*network_id*/programs +>curl -H "Host: prod.immedia-semi.com" -H "TOKEN_AUTH: *authtoken from login*" --compressed https://rest.prod.immedia-semi.com/api/v1/networks/*network_id*/programs **Response** Unknown.