Skip to content

Brain Web API API

by intellifi.nl

API keyHTTPSIoT
Open documentation ↗

Overview

This document describes the [Intellifi Brain](https://intellifi.zendesk.com/hc/en-us/categories/360000685454) Web API specification using the [OpenAPI specification](https://github.com/OAI/OpenAPI-Specification). The Brain Web API is a RESTful API that allows you to interact with the [Intellifi devices](https://intellifi.zendesk.com/hc/en-us/categories/360000685434) and services in a powerful and simple way. Our end-to-end solution allows you to localize your items/assets based on technologies such as RFID and Bluetooth. # Try it out! The API can be tried out and tested using the ['api-doc/tryitout' endpoint on this site](./tryitout/). This UI allows anyone to visualize and interact with the API’s resources without having any of the implementation logic in place. It’s automatically generated from this Specification, with the visual documentation making it easy for back end implementation and client side consumption. # Authentication Applications are required to provide some form of authentication to the API for every secured endpoint. The Brain offers two forms of authentication. - API key (Via an HTTP request header or URL parameter) - Session cookie <!-- ReDoc-Inject: <security-definitions> --> # See also - About Intellifi and what we do: [intellifi.nl](https://intellifi.nl) - Technical and background information: [intellifi.zendesk.com](https://intellifi.zendesk.com)

Brain Web API is an iot API from intellifi.nl. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 77 endpoints.

At a glance

Authentication
API key
HTTPS
Yes
CORS
Unknown
Category
IoT
Version
2.23.2+0.gfbc3926.dirty
Endpoints
77
Spec updated
2023-03-06

Endpoints

MethodPathWhat it does
GET/authinfoAuthentication information
GET/blobsGet all binary large objects (blob)
POST/blobsCreate binary large object (blob) metadata
GET/blobs/{id}Get binary large object (blob)
DELETE/blobs/{id}Delete binary large object (blob)
GET/blobs/{id}/download/{filename}Download a binary large object (blob)
POST/blobs/{id}/uploadCreate binary large object (blob)
GET/eventsGet all events
GET/events/{id}Get event
GET/itemsGet all items
POST/itemsCreate item
GET/items/{id}Get item
PUT/items/{id}Update existing item
DELETE/items/{id}Delete item
GET/keysGet all keys
POST/keysCreate key
GET/keys/{id}Get key
PUT/keys/{id}Update existing key
DELETE/keys/{id}Delete key
GET/kvpairsGet all key-value pairs
POST/kvpairsCreate key-value pair
GET/kvpairs/{id}Get key-value pair
PUT/kvpairs/{id}Update existing Key-value pair
DELETE/kvpairs/{id}Delete key-value pair
GET/locationrulesGet all location rules
POST/locationrulesCreate location rule
GET/locationrules/{id}Get location rule
PUT/locationrules/{id}Update existing location rule
DELETE/locationrules/{id}Delete location rule
GET/locationsGet all locations
POST/locationsCreate location
GET/locations/{id}Get location
PUT/locations/{id}Update existing location
DELETE/locations/{id}Delete location
GET/presencesGet all presences
GET/presences/{id}Get presence
GET/servicesGet all services
GET/services/{id}Get service
PUT/services/{id}Update existing service
GET/sets/itemlistsGet all item lists
POST/sets/itemlistsCreate item list
GET/sets/itemlists/{id}Get item list
PUT/sets/itemlists/{id}Update existing item list
DELETE/sets/itemlists/{id}Delete item list
GET/sets/itemlists/{id}/idsGet item ids for this list
POST/sets/itemlists/{id}/idsAdd items to an existing list
DELETE/sets/itemlists/{id}/ids/{itemId}Delete item from list
GET/sets/spotlistsGet all spot lists
POST/sets/spotlistsCreate spot list
GET/sets/spotlists/{id}Info for a specific spot list
PUT/sets/spotlists/{id}Update existing spot list
DELETE/sets/spotlists/{id}Delete spot list
GET/sets/spotlists/{id}/idsGet spot ids for this list
POST/sets/spotlists/{id}/idsAdd spots to an existing list
DELETE/sets/spotlists/{id}/ids/{itemId}Delete spot from list
GET/spotsGet all spots
GET/spots/{id}Get spot
PUT/spots/{id}Update existing spot
GET/spots/{id}/setsGet spotsets
POST/spots/{id}/setsCreate spotset
GET/spots/{id}/sets/{setId}Get spotset
PUT/spots/{id}/sets/{setId}Update existing spotset
GET/spotsetsGet spotsets
POST/spotsetsCreate spotset
GET/spotsets/{id}Get spotset
PUT/spotsets/{id}Update existing spotset
GET/subscriptionsGet all subscriptions
POST/subscriptionsCreate subscription
GET/subscriptions/{id}Get subscription
PUT/subscriptions/{id}Update existing subscription
DELETE/subscriptions/{id}Delete subscription
GET/subscriptions/{id}/eventsGet subscription events
GET/usersGet all users
POST/usersCreate user
GET/users/{id}Get user
PUT/users/{id}Update existing user
DELETE/users/{id}Delete user

Questions

Does the Brain Web API API need an API key?

Yes. The Brain Web API API uses API key authentication; the documentation explains how to get credentials.

Does the Brain Web API API support HTTPS?

Yes, the Brain Web API API is served over HTTPS.

How many endpoints does the Brain Web API API have?

Its OpenAPI description lists 77 endpoints in version 2.23.2+0.gfbc3926.dirty. All of them are shown on this page.

What are alternatives to the Brain Web API API?

Other IoT APIs include Adafruit IO REST API, Netatmo, Influx OSS API Service, ClearBlade API, Hardware Sentry TrueSight Presentation Server REST API.

Compare alternatives →

Adafruit IO REST API

IoT

### The Internet of Things for Everyone The Adafruit IO HTTP API provides access to your Adafruit IO data from any programming language or hardware environment that can speak HTTP. The easiest way to get started is with [an Adafruit IO learn guide](https://learn.adafruit.com/series/adafruit-io-basics) and [a simple Internet of Things capable device like the Feather Huzzah](https://www.adafruit.com/product/2821). This API documentation is hosted on GitHub Pages and is available at [https://github.com/adafruit/io-api](https://github.com/adafruit/io-api). For questions or comments visit the [Adafruit IO Forums](https://forums.adafruit.com/viewforum.php?f=56) or the [adafruit-io channel on the Adafruit Discord server](https://discord.gg/adafruit). #### Authentication Authentication for every API request happens through the `X-AIO-Key` header or query parameter and your IO API key. A simple cURL request to get all available feeds for a user with the username "io_username" and the key "io_key_12345" could look like this: $ curl -H "X-AIO-Key: io_key_12345" https://io.adafruit.com/api/v2/io_username/feeds Or like this: $ curl "https://io.adafruit.com/api/v2/io_username/feeds?X-AIO-Key=io_key_12345 Using the node.js [request](https://github.com/request/request) library, IO HTTP requests are as easy as: ```js var request = require('request'); var options = { url: 'https://io.adafruit.com/api/v2/io_username/feeds', headers: { 'X-AIO-Key': 'io_key_12345', 'Content-Type': 'application/json' } }; function callback(error, response, body) { if (!error && response.statusCode == 200) { var feeds = JSON.parse(body); console.log(feeds.length + " FEEDS AVAILABLE"); feeds.forEach(function (feed) { console.log(feed.name, feed.key); }) } } request(options, callback); ``` Using the ESP8266 Arduino HTTPClient library, an HTTPS GET request would look like this (replacing `---` with your own values in the appropriate locations): ```arduino /// based on /// https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266HTTPClient/examples/Authorization/Authorization.ino #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> #include <ESP8266HTTPClient.h> ESP8266WiFiMulti WiFiMulti; const char* ssid = "---"; const char* password = "---"; const char* host = "io.adafruit.com"; const char* io_key = "---"; const char* path_with_username = "/api/v2/---/dashboards"; // Use web browser to view and copy // SHA1 fingerprint of the certificate const char* fingerprint = "77 00 54 2D DA E7 D8 03 27 31 23 99 EB 27 DB CB A5 4C 57 18"; void setup() { Serial.begin(115200); for(uint8_t t = 4; t > 0; t--) { Serial.printf("[SETUP] WAIT %d...\n", t); Serial.flush(); delay(1000); } WiFi.mode(WIFI_STA); WiFiMulti.addAP(ssid, password); // wait for WiFi connection while(WiFiMulti.run() != WL_CONNECTED) { Serial.print('.'); delay(1000); } Serial.println("[WIFI] connected!"); HTTPClient http; // start request with URL and TLS cert fingerprint for verification http.begin("https://" + String(host) + String(path_with_username), fingerprint); // IO API authentication http.addHeader("X-AIO-Key", io_key); // start connection and send HTTP header int httpCode = http.GET(); // httpCode will be negative on error if(httpCode > 0) { // HTTP header has been send and Server response header has been handled Serial.printf("[HTTP] GET response: %d\n", httpCode); // HTTP 200 OK if(httpCode == HTTP_CODE_OK) { String payload = http.getString(); Serial.println(payload); } http.end(); } } void loop() {} ``` #### Client Libraries We have client libraries to help you get started with your project: [Python](https://github.com/adafruit/io-client-python), [Ruby](https://github.com/adafruit/io-client-ruby), [Arduino C++](https://github.com/adafruit/Adafruit_IO_Arduino), [Javascript](https://github.com/adafruit/adafruit-io-node), and [Go](https://github.com/adafruit/io-client-go) are available. They're all open source, so if they don't already do what you want, you can fork and add any

API key71 endpoints

Netatmo

IoT

<h3>Welcome to the Netatmo swagger on-line documentation !</h3> This site is a complement to the official <a href="https://dev.netatmo.com/">Netatmo developper documentation</a> using swagger to bring interactivity and easy testing of requests with the "try it" button (authenticate with the authorization code OAuth2 flow by clicking the authenticate button in the methods). You can find the source code for this site can be found in the project <a href="https://github.com/cbornet/netatmo-swagger-ui">netatmo-swagger-ui</a>. You can also use the online <a href="./swagger.json">swagger declaration</a> file to generate code or static documentation (see <a href="https://github.com/cbornet/netatmo-swagger-api">netatmo-swagger-api</a>).

OAuth22 endpoints

Influx OSS API Service

IoT

# Authentication &lt;!-- ReDoc-Inject: &lt;security-definitions&gt; --&gt;

HTTP Basic197 endpoints

ClearBlade API

IoT

A friendly little API to help you interact with the ClearBlade platform.

No auth220 endpoints

Hardware Sentry TrueSight Presentation Server REST API

IoT

Hardware Sentry TrueSight Presentation Server REST API

API key23 endpoints

Quick start - Telematics SDK

IoT

# Introduction We have prepared a set of APIs for quick start to integrate telematics SDK that powers mobile telematics inside 3rd party mobile applications. * [CONTACT US](https://telematicssdk.com) * [SANDBOX](https://userdatahub.com) * [DEV.PORTAL](https://docs.telematicssdk.com) * [DEMO APP](https://raxeltelematics.com/telematics-app) # Overview Datamotion provides telematics infrastructure for mobile applications. Telematics SDK turns any smartphone into telematics data gathering device to collect Location, driving and behavior data. API services unlocks power of your mobile application There are 3 groups of methods: * 1 - user management * 2 - statistics for mobile app * 3 - statistics for back-end(s) in certain cases you will need SNS or any other notification services. read more [here](https://docs.telematicssdk.com/platform-features/sns) # Possible architecture There are three common schemes that are used by our clients. These schemes can be combined * Collect, Process, Store (required: 1&2) * Collect, Process (required: 1& sns) * Collect (required 1&sns) ## Collect, Process, Store ![Collect, Process, Store](https://website-cliparts-datamotion.s3.us-east-2.amazonaws.com/Dev.portal/Architecture+-+Collection%2C+processing%2C+storage) ## Collect, Process ![Collect, Process](https://website-cliparts-datamotion.s3.us-east-2.amazonaws.com/Dev.portal/Architecture+-+Collection+and+processing) ## Collect ![Collect](https://website-cliparts-datamotion.s3.us-east-2.amazonaws.com/Dev.portal/Architecture+-+Collection+only) *** ![Telematic sdk](https://website-cliparts-datamotion.s3.us-east-2.amazonaws.com/Github/transportation_small.png) # Common use-cases: * Safe and efficient driving * Usage-based insurance * Safe driving assessment * Driver assessment * Trip log * Geo-analysis * Accident monitoring * Driving engagements * Location based services * Realtime Tracking and beyond # How to start * Register a [SANDBOX ACCOUNT](https://userdatahub.com) * Get [CREDENTIALS](https://docs.userdatahub.com/sandbox/credentials) * Follow the guide from [DEVELOPER POERTAL](https://docs.telematicssdk.com) # Authentication To create a user on datamotion platform, you require to use InstanceID and InstanceKEY. You can get it in Datahub -> management -> user-service credentials Once you create a user, you will get Device token, JWT token and refresh token. then, you will use it for APIs

No auth9 endpoints

Listed from APIs.guru (CC0).