Developer APIs
Our APIs specify how a device or piece of software can talk to the One Platform. Once the data is on the One Platform, the processing, analysis, visualization and alerting can begin!
Most of our APIs (except UDP) can be used over a secure interface (e.g. HTTPS) – in fact, that is how we prefer it!
HTTP
Data Interface
This lightweight HTTP API uses a simple HTTP (or HTTPS) POST method as an easy and secure way to start sending your data to the cloud. It is perfect for client devices that don’t have a lot of processing power or software functionality. It also is just a great way to write a quick and dirty application that doesn’t need more than the ability to simply send data points to the One Platform.
The One Platform’s HTTP transport also supports an advanced JSON-encoded RPC API as well as an HTTP-verb driven Device Provisioning API.
API Reference, Libraries and Examples
- API Reference: HTTP Data Interface API
- API Address: https://m2.exosite.com -or- http://m2.exosite.com
- Libraries: This interface is simple enough that we didn’t see a need to create any libraries to simplify it further.
- Examples: our Github Exosite Garage Projects have a number of examples of using this interface with:
- Python
- Arduino (e.g. 8-bit micros)
- Arduino-compatible devices
JSON RPC
This full-featured HTTP API exposes a heavy-duty feature set useful for creating custom applications that interface to the One Platform – it is basically a wrapper for the full One Platform API. Developers use this API when creating User Interface applications or developing for more capable client devices that need to create, manage and visualize different data elements in the cloud. While the API is exposed over HTTP (or HTTPS), the JSON-RPC format is transport independent.
If writing your own implementation for our RPC API isn’t your thing, we also post wrapper libraries to our Exosite Labs Github projects..
API Reference, Libraries and Examples
- API Reference: JSON RPC API
- API Address: https://m2.exosite.com -or- http://m2.exosite.com
- Libraries: We maintain libraries for this API on our Github Exosite-Labs page.
- Examples: All of the libraries posted on Github have example code as part of the project.
Device Provisioning
This HTTP API exposes an interface that allows devices to authenticate with the One Platform even if they are not pre-programmed with a CIK. The Device Provisioning interface was created to enable device OEMs to create custom “cloud profiles” for devices that would allow fleet-level management of large device fleets across different device models.
API Reference, Libraries and Examples
- User Guide: Device Provisioning User Guide
- API Reference: Device Provisioning API
- API Address: https://m2.exosite.com -or- http://m2.exosite.com
- Libraries: The pyonep library, in addition to wrapping the JSON RPC, also has the provisioning API integrated.
- Examples: Example code can be found on our Exosite Garage github pages.
UDP
Single Shot
The Single-Shot UDP API is meant for use in situations where the number of data bytes in a transmission are at a premium. The Single Shot UDP interface is like a no-look pass – it does not employ any type of packet ordering, acknowledgement or verification. The most common application for this interface is simple data logging over a cellular network.
The number one issue with UDP is it does not support any standards-based encryption on the data stream. For applications that require encryption yet want to keep data-rates low, Exosite recommends you do one of the following with this API:
- Create a custom encryption scheme: You can unpack the data in the One Platform with the scripting interface.
- Use VPN to secure the transmissions: This can be supported over some partner cellular networks and for custom integrations.
API Reference, Libraries and Examples
- API Reference: UDP Single Shot API
- API Address: m2.exosite.com port 18494
- Libraries: This interface is simple enough that we didn’t see a need to create any libraries to simplify it further.
- Examples: Exosite Garage has a demo script showing usage of this API.
XMPP
Commander Chat
The Commander XMPP API is a ‘chat-like’ interface to the platform. The API runs on top of XMPP providing a secure and well-known layer to start communicating from devices, software applications, and web page java-script. Many XMPP libraries and clients exist for different coding languages and operating systems.
- API Reference: Commander XMPP API
- API Address (JID): commander@m2.exosite.com
Custom APIs
Exosite uses additional APIs and transports both for internal One Platform components and for customer projects. We are experts at creating API interfaces to match the communications protocol of existing products or the constraints of custom applications. Contact us today if you need assistance in this area.