E4 wristband

for Developers

Take a look a the new E4 link and E4 streaming server (previously called EmpaLink library and Windows BLE Server) E4 link and E4 streaming server

E4 Programming Interfaces

E4 wristband research product are compatible with the Android and iOS platforms using the SDK and with Windows using the Bluetooth Low Energy (BLE) Server. All solutions are designed to allow real-time data streaming from E4 devices.

In order to build your own applications you need an API Key and the SDK(s) for your platform(s) of choice. The key is used to authenticate your applications for accounting purposes. You can read the guide Develop your own app.

There are no REST APIs at this time so access to data that has been uploaded to the Empatica Connect web application is only accessible through the use of the Web User Interface.

Mobile SDKs

Empatica provides developers SDKs for mobile development for Android and iOS platforms.



You can find info on how to develop your mobile application using the Empatica SDK for iOS tutorial. Sample projects are provided that demonstrate single and multiple Empatica E4 wristbands connections from your iOS device.

EmpaLink.framework is the legacy version of the framework. The minimum deployment target is iOS 7.0

For more detailed information check EmpaLink 0.7 API reference

Android SDK


For development in Java on your prefered environment, EmpaLink for Android offers developers access to real-time data-streams from within your Android application. E4 data can be retrieved using the following methods:

Return Type Method Description
void didReceiveAcceleration(int x, int y, int z, double timestamp) This method is invoked when a new acceleration value is available
void didReceiveBatteryLevel(float level, double timestamp) This method is invoked when a new battery level value is available
void didReceiveBVP(float bvp, double timestamp) This method is invoked when a new BVP value is available
void didReceiveGSR(float gsr, double timestamp) This method is invoked when a new GSR value is available
void didReceiveIBI(float ibi, double timestamp) This method is invoked when a new interbeat interval (IBI) value is available
void didReceiveTemperature(float temp, double timestamp) This method is invoked when a new temperature value is available

Note that button press/event mark timing is not yet available on the Android platform.

You can find additional info, including a complete tutorial, on the Empatica SDK for Android tutorial.

Sample project

A sample console app that demonstrates how to establish a streaming connection to the E4 wristband can be found on the Empalink Sample Project for Android GitHub project. For simplicity the project demonstrates EDA streaming for ten-seconds - all other arguments are commented out.

Streaming servers


Stream data from one or more E4 wristbands into your Windows-based application with the Empatica BLE Server for Windows. Empatica’s Windows BLE Server solution operates exclusively with the BlueGiga BLED112 Bluetooth Smart Dongle.

The Empatica BLE Server is a Windows application that can connect to multiple Empatica E4 devices using Bluetooth and stream data to local endpoint using multiple socket connections. Instructions about the Empatica BLE server are available at Empatica BLE server documentation.


The Empatica BLE Client application, developed in C#, is an demonstration console that works in conjunction with the BLE Server in the Windows platform. Instructions and client source-code available at: Empatica BLE client GitHub project.

Support or Contact

Having trouble with Empatica E4 software for Developers? Contact Support and we’ll help you sort it out.