Open documentation ↗Overview
With the smart-me REST API you get Access to all your devices in the smart-me Cloud and you can add your own devices. So its an easy way to add the smart-me Cloud support to your Hardware or Software Product.
smart-me is an iot API from smart-me.com. Requests are authenticated with HTTP Basic auth. It is served over HTTPS. Its OpenAPI description documents 64 endpoints.
At a glance
- Authentication
- HTTP Basic
- HTTPS
- Yes
- CORS
- Unknown
- Category
- IoT
- Base URL
https://smart-me.com:443- Version
- v1
- Endpoints
- 64
- OpenAPI
- Specification ↗
- Spec updated
- 2023-03-06
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "https://smart-me.com:443/api/Account/login" \
-H "Accept: application/json" \
-H "Authorization: Basic BASE64_USER_PASSWORD"const response = await fetch("https://smart-me.com:443/api/Account/login", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Basic BASE64_USER_PASSWORD",
},
});
const data = await response.json();
console.log(data);import requests
response = requests.request(
"GET",
"https://smart-me.com:443/api/Account/login",
headers={
"Accept": "application/json",
"Authorization": "Basic BASE64_USER_PASSWORD",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| PUT | /api/AccessToken | Creates a Access Token to write on a Card (e.g. NFC) |
| GET | /api/Account/login | Account_Login |
| POST | /api/Account/login | — |
| POST | /api/Actions | Set an action for the specified device. |
| GET | /api/Actions/{id} | Gets all available Actions of a Device |
| GET | /api/AdditionalDeviceInformation/{id} | Gets the additional information (e.g. Firmware Version) about a device. |
| GET | /api/CustomDevice | Gets all Custom Devices |
| POST | /api/CustomDevice | Creates or updates a Custom Device or updates it's values. |
| GET | /api/CustomDevice/{id} | Gets a Custom Device by it's ID |
| GET | /api/DeviceBySerial | Gets a Device by it's Serial Number. The Serial is the part before the "-". |
| GET | /api/Devices | Gets all Devices |
| POST | /api/Devices | Creates or updates a Device or updates it's values. |
| GET | /api/Devices/{id} | Gets a Device by it's ID |
| PUT | /api/Devices/{id} | Updates the On/Off Switch on a device. For new implementations please use the "actions" command |
| GET | /api/DevicesByEnergy | Gets all Devices for an Energy Type |
| GET | /api/DevicesBySubType | Gets all Devices by it's Sub Type (e.g. E-Charging Station) |
| GET | /api/FastSendDeviceValues/{id} | Force a device to send the data every second (if supported). This for about 30s. Don't use this call to force a device to send the data every secon |
| GET | /api/Folder/{id} | Gets the Values for a folder or a meter |
| GET | /api/FolderMenu | Gets the folder menu items (each item might contain child items) |
| POST | /api/FolderMenu | Creates and updates the folder menu items |
| GET | /api/Health | A method returning HTTP 200 OK when queried. It is used by Kubernetes probes to determine whether the app is healthy. |
| POST | /api/MBus | M-BUS API: Adds data of a M-BUS Meter to the smart-me Cloud. Just send us the M-BUS Telegram (RSP_UD) and we will do the Rest. |
| POST | /api/MeterFolderInformation | Sets the Name of a Meter or a Folder |
| GET | /api/MeterFolderInformation/{id} | Beta: Gets the General Information for a Meter or a Folder |
| GET | /api/MeterValues/{id} | Gets the Values for a Meter at a given Date. The first Value found before the given Date is returned. |
| GET | /api/RegisterForRealtimeApi | Gets all registrations for the Realtime API. |
| POST | /api/RegisterForRealtimeApi | Creates a new registration for the realtime API. The Realtime API sends you the data of the registred devices as soon as we have them on the cloud. |
| DELETE | /api/RegisterForRealtimeApi/{id} | Deletes a realtime API registration. |
| POST | /api/SmartMeDeviceConfiguration | Sets the configuration of a smart-me device. The device needs to be online. |
| GET | /api/SmartMeDeviceConfiguration/{id} | Gets the configuration of a smart-me device. |
| POST | /api/SubUser | Creates or updates a subuser. To create a new user set no ID (empty) |
| GET | /api/SubUser/{id} | Get a sub user. The user must be assigend to the user that makes this call. |
| DELETE | /api/SubUser/{id} | Delete a subuser |
| GET | /api/User | Gets the informations for the user. |
| DELETE | /api/User | Triggers user account deletion. |
| GET | /api/Values/{id} | Gets all (last) values of a device |
| GET | /api/ValuesInPast/{id} | Gets all (last) values of a device The first Value found before the given Date is returned. |
| GET | /api/ValuesInPastMultiple/{id} | Gets multiple values of a device. This call needs a smart-me professional licence. |
| GET | /api/VirtualBillingMeterActive | Beta: Gets all active virtual meters |
| POST | /api/VirtualBillingMeterActive | Beta: Virtual Meter API: Activates a Meter and add the Consumption to a Virtual Meter assosiated with the User. |
| POST | /api/VirtualBillingMeterDeactivate | Beta: Virtual Meter API: Deactivates a Virtual Meter. |
| GET | /api/VirtualBillingMeters | Beta: Gets all Meters available to activate as a Virtual Meter. |
| GET | /api/VirtualMeterCalculateFormula | Calculates a virtual meter from a formula. A meter is coded as ID("METERID") |
| GET | /api/VirtualTariff | Gets all Virtual Tariffs of a user |
| GET | /api/VirtualTariff/{id} | Gets all virtual tariffs of a folder |
| GET | /api/VirtualTariffConsumption | Gets the consumption of a folder with a virtuall tariffs. |
| GET | /api/VirtualTariffsForProperty/{id} | Gets all Virtual Tariffs for a property (folder) |
| GET | /api/VirtualTariffsStatusForProperty/{id} | Gets the calculation status for a virtual tariff property |
| POST | /api/folder/assign | Assign a folder (source) or meter to another folder (target). Can be used to create a folder structure. |
| GET | /api/folder/settings/{id} | Gets the settings of a folder or meter |
| POST | /api/folder/settings/{id} | Add or edit a folder or a meter. To add a new folder use and empty ID |
| DELETE | /api/folder/settings/{id} | Deletes a folder |
| POST | /api/folder/user/assign | Assign a user to a folder |
| DELETE | /api/folder/user/assign | Deletes a user to folder assignement |
| GET | /api/oauth/authorize | OAuth_Authorize |
| POST | /api/oauth/authorize | — |
| GET | /api/pico | Gets all pico charging stations for this user |
| GET | /api/pico/charging/{id} | Gets the active charging data of a pico station |
| GET | /api/pico/history/{id} | Gets the last charging history for a pico station |
| GET | /api/pico/loadmanagementgroup | GET: api/pico/loadmanagementgroup Returns all available load management groups |
| POST | /api/pico/loadmanagementgroup/current/{serial} | Sets the dynamic current of a load management group or a single station. |
| GET | /api/pico/loadmanagementgroup/{id} | GET: api/pico/loadmanagementgroup Returns a pico load management group by it's id |
| GET | /api/pico/settings/{id} | GET: api/pico/settings Returns the settings of a pico charging station. |
| POST | /api/pico/tryenablecablelock/{id} | Try to fix lock the cable of a pico. The pico must be online and a cable (without car) needs to be connected. Otherwise this will fail. |
Questions
Does the smart-me API need an API key?
Yes. The smart-me API uses HTTP Basic authentication; the documentation explains how to get credentials.
Does the smart-me API support HTTPS?
Yes, the smart-me API is served over HTTPS.
How many endpoints does the smart-me API have?
Its OpenAPI description lists 64 endpoints in version v1. All of them are shown on this page.
What are alternatives to the smart-me API?
Other IoT APIs include Brain Web API, Adafruit IO REST API, Netatmo, Influx OSS API Service, ClearBlade API.
Similar iot APIs
Compare alternatives →Brain Web API
IoTThis 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)
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
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>).
Influx OSS API Service
IoT# Authentication <!-- ReDoc-Inject: <security-definitions> -->
ClearBlade API
IoTA friendly little API to help you interact with the ClearBlade platform.
Hardware Sentry TrueSight Presentation Server REST API
IoTHardware Sentry TrueSight Presentation Server REST API
Listed from APIs.guru (CC0).