Skip to content

Latest commit

 

History

History
97 lines (69 loc) · 6.19 KB

README.md

File metadata and controls

97 lines (69 loc) · 6.19 KB

BlinkMonitorProtocol

Unofficial documentation for the Client API of the Blink Wire-Free HD Home Monitoring & Alert System. I am not affiliated with the company in any way - this documentation is strictly "AS-IS".

The Client API is a straightforward REST API using JSON and HTTPS.

When APIs no longer appear in the current versions of the mobile Apps, we assume they are deprecated and mark them as such in this doc.

When Blink obsoletes an API, they do not remove it, but return the message "An app update is required". This presumably triggers logic in the mobile clients to users that they must update to a more current version of the client to restore functionality.

PR's welcome!

Overview

  • Initial server URL - https://rest-prod.immedia-semi.com
    • see Login for notes on possible redirection to a locale specific server after login.
  • Auth Token - Authentication is done by passing a TOKEN_AUTH header. The auth token is provided in the response to a successful login.
  • Account - An account corresponds to a single set of login credentials. The Account ID is returned in a successful login response.
  • Client - A unique client/app to the account. A single account may have many client apps. Clients that the Blink servers believe are new will generate an out-of-band PIN OTP workflow. The Client ID is returned in a successful login response.
  • Network - A single account may have many networks. A network corresponds conceptually to a Blink Synch module. An account could have multiple networks/synch modules - e.g. multiple sites/homes. Network and Synch Module information associated with an account is returned in the homescreen call.
  • Camera - A network (synch module) may have one or more cameras. Camera information is returned in the homescreen call.
  • Command - Some operations reach out from the Blink Servers to your local Blink module. These operations are asynchronous and return a Command ID to be polled for completion via the Command Status call.

Authentication

  • Login : POST /api/v5/account/login
  • Logout : POST /api/v4/account/{AccountID}/client/{clientID}/logout
  • Verify Pin : POST /api/v4/account/{AccountID}/client/{ClientID}/pin/verify

System

Network

  • Command Status : GET /network/{NetworkID}/command/{CommandID}
  • Arm System : POST /api/v1/accounts/{AccountID}/networks/{NetworkID}/state/arm
  • Disarm System : POST api/v1/accounts/{AccountID}/networks/{NetworkID}/state/disarm
  • List Schedules : GET /api/v1/networks/{NetworkID}/programs
  • Enable Schedule : POST /api/v1/networks/{NetworkID}/programs/{ProgramID}/enable
  • Disable Schedule : POST /api/v1/networks/{NetworkID}/programs/{ProgramID}/disable
  • Update Schedule : POST /api/v1/networks/{NetworkID}/programs/{ProgramID/update
  • List Networks (obsolete): GET /networks
  • List Synch Modules (obsolete) GET /network/{NetworkID}/syncmodules

Cameras

  • Enable Motion Detection : POST /network/{NetworkID}/camera/{CameraID}/enable
  • Disable Motion Detection : POST /network/{NetworkID}/camera/{CameraID}/disable
  • Get Current Thumbnail : GET /media/production/account/{AccountID}/network/{NetworkID}/camera/{CameraID}/{JPEG_File_Name}.jpg
  • Create New Thumbnail : POST /network/{NetworkID}/camera/{CameraID}/thumbnail
  • Liveview : POST /api/v5/accounts/{AccountID}/networks/{NetworkID}/cameras/{CameraID}/liveview
  • Record Video Clip from Camera : POST /network/{NetworkID}/camera/{CameraID}/clip
  • Get Camera Config : GET /network/{NetworkID}/camera/{CameraID}/config
  • Update Camera Config : POST /network/{NetworkID}/camera/{CameraID}/update
  • Get Camera List (obsolete - replaced by HomeScreen) - GET /network/{NetworkID}/cameras
  • Get Camera Info (deprecated? - replaced by HomeScreen) - GET /network/{NetworkID}/camera/{CameraID}
  • Get Camera Sensor Info (deprecated? - replaced by HomeScreen) - GET /network/{NetworkID}/camera/{CameraID}/signals

Videos

  • Get Video Events : GET /api/v1/accounts/{AccountID}/media/changed?since={timestamp}&page={PageNumber}
  • Get Video : GET /api/v2/accounts/{AccountID}/media/clip/{mp4_Filename}
  • Get Video Thumbnail : GET /api/v2/accounts/{AccountID}/media/thumb/{jpg_filename}
  • Set Video Options : POST /api/v1/account/video_options
  • Delete Videos : POST /api/v1/accounts/{AccountID}/media/delete
  • Get Network events (obsolete replaced by Get Video Events) - GET /events/network/{NetworkID}
  • Get Video Count (obsolete) - GET /api/v2/videos/count
  • Get Video Info by Page (obsolete) - GET /api/v2/videos/page/{PageNumber}
  • Get Video by ID (obsolete) - GET /api/v2/video/{VideoID}
  • Get Unwatched Videos (obsolete) - GET /api/v2/videos/unwatched
  • Delete a Video (obsolete) - POST /api/v2/video/{VideoID}/delete

Misc

  • App Version Check : GET /api/v1/version
  • Get Regions : GET /regions?locale={Two Character Country Locale}
  • Upload Logs : POST /app/logs/upload
  • Account Options : GET /api/v1/account/options
  • System Health (deprecated?) : GET /health
  • Clients (obsolete) : GET /account/clients

Implementations