Edge Impulse API and SDKs references

Welcome to the Edge Impulse API, SDKs and Libraries documentation. Here, you will find developer resources to integrate Edge Impulse with your projects, whether you're working on a machine learning prototype or deploying a solution at scale. Our resources are designed to be straightforward and accessible, helping you get your projects up and running with minimal setup. Most of the sections in this documentation are automatically generated. If anything is unclear, please reach out on Edge Impulse Forum or contact your customer success/solution engineer.

If you are looking for our getting started or product guides, tutorials, edge AI hardware targets documentation, you can have a look at the main Edge Impulse documentation.

If you are looking for the libraries and SDKs open source codes, they are hosted on our Github organization.

Edge Impulse Python SDK

The Edge Impulse Python SDK is designed to help machine learning practitioners build and deploy models for edge AI hardware targets. Directly from Python scripts, it allows you to collect data, profile and export your models to a C++ Library and much more. See the "deployment options" listed in the return of this function ei.model.list_deployment_targets().

It's perfect for integrating into existing Python-based workflows or Jupyter Notebooks.

Quick Start: Install via pip install edgeimpulse Source Code: GitHub repository Python package documentation: egdeimpulse python package Documentation: Python SDK Documentation Tutorials: Python SDK tutorials

Inferencing SDKs

Deploy your trained models using our inferencing SDKs available in multiple programming languages:

  • C++: Deploy on any device with our optimized C++ library for microcontrollers and embedded systems.

  • Python (Linux and MacOS): Ideal for prototyping on desktops or devices like the Raspberry Pi.

  • Node.js (Linux and MacOS): Embed machine learning models into your Node.js applications.

  • C++ (Linux and MacOS): This library lets you run machine learning models and collect sensor data on Linux machines using C++. You can also use it to generate your .eim model files.

Remote Management


The remote management server implements a two-way protocol between devices and Edge Impulse, which allows users to control devices (for example to acquire new data) straight from the Studio. Devices can either connect directly to the remote management service over a WebSocket or can connect through a proxy like the serial daemon using the serial protocol. The remote management protocol is not used for data ingestion, as a result, you will need to use the ingestion service for this.

Serial Protocol

The Serial Protocol enables devices to communicate directly with the Edge Impulse CLI or Studio over a serial connection using AT commands. This makes it easy to send data to your Edge Impulse project for training or inference without needing an internet connection.

Ingestion API

The ingestion API is used to send data to Edge Impulse. It's available on both HTTP and HTTPS endpoints and requires an API key to authenticate. It can be used with the remote management protocols or in your data pipelines. The ingestion API works with the available data acquisition formats

Edge Impulse API

For developers looking to integrate Edge Impulse into their systems at a deep level, our OpenAPI specifications provide a comprehensive and detailed view of all the API endpoints. These are ideal for building custom integrations or for developers who need to automate their workflows.

We also provide a Python API-bindings package.

Last updated