Empatica for Developers

Empatica Developer's Documentation

View on GitHub

Empatica Programming Interfaces

Empatica research products are currently compatible with three programming interfaces: Android and iOS SDKs and a Windows based Bluetooth Low Energy (BLE) Server. All three of these solutions are designed to allow for real-time time connections to the E4’s data stream.

In order to build your own applications using the Empatica API, 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 GUI.

Mobile SDKs

Empatica provides developers SDKs for mobile development, both 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.

Also check our 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.


BLE client

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.

BLE server

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.

Support or Contact

Having trouble with Empatica developer's software? Contact support and we’ll help you sort it out.