Open documentation ↗Overview
This is the API for MIMIC client to connect to MIMIC daemon.
MIMIC REST API is an iot API from gambitcomm.local. Requests are authenticated with HTTP Basic auth. It is served over HTTPS. Its OpenAPI description documents 356 endpoints.
At a glance
- Authentication
- HTTP Basic
- HTTPS
- Yes
- CORS
- Unknown
- Category
- IoT
- Base URL
http://gambitcomm.local- Version
- 21.00
- Endpoints
- 356
- OpenAPI
- Specification ↗
- Spec updated
- 2021-07-27
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "http://gambitcomm.local/mimic/access/get/acldb" \
-H "Accept: application/json" \
-H "Authorization: Basic BASE64_USER_PASSWORD"const response = await fetch("http://gambitcomm.local/mimic/access/get/acldb", {
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",
"http://gambitcomm.local/mimic/access/get/acldb",
headers={
"Accept": "application/json",
"Authorization": "Basic BASE64_USER_PASSWORD",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /mimic/access/add/{user}/{agents}/{mask} | Adds/Overwrites the user entry in the access control database. |
| DELETE | /mimic/access/del/{user} | Clears a users entry from access control database. |
| GET | /mimic/access/get/acldb | Returns the current access control database in use. |
| GET | /mimic/access/get/admindir | Returns the current admin directory. |
| GET | /mimic/access/get/adminuser | Returns the current administrator. |
| GET | /mimic/access/get/enabled | Returns the state of access control checking. |
| GET | /mimic/access/list | Returns an array of entries. |
| PUT | /mimic/access/load/{filename} | Loads the specified file for access control data. |
| PUT | /mimic/access/save/{filename} | Saves current access control data in specified file. |
| PUT | /mimic/access/set/acldb/{databaseName} | Allows setting the name of the current access control database. |
| PUT | /mimic/access/set/enabled/{enabledOrNot} | Allows the user to enable/disable the access control check. |
| POST | /mimic/agent/{agentNum}/add/{IP} | Add an agent. |
| POST | /mimic/agent/{agentNum}/from/add/{IP}/{port} | Add a source address that the agent will accept messages from. |
| DELETE | /mimic/agent/{agentNum}/from/delete/{IP}/{port} | delete a source address that the agent will accept messages from. |
| GET | /mimic/agent/{agentNum}/from/list | List the source addresses that the agent will accept messages from. |
| GET | /mimic/agent/{agentNum}/get/changed | has the agent value space changed? |
| GET | /mimic/agent/{agentNum}/get/config_changed | has the lab configuration changed? |
| GET | /mimic/agent/{agentNum}/get/delay | one-way transit delay in msec. |
| GET | /mimic/agent/{agentNum}/get/drops | drop rate (every N-th PDU). 0 means no drops. |
| GET | /mimic/agent/{agentNum}/get/host | host address of the agent. |
| GET | /mimic/agent/{agentNum}/get/inform_timeout | timeout in seconds for retransmitting INFORM PDUs. |
| GET | /mimic/agent/{agentNum}/get/interface | network interface card for the agent. |
| GET | /mimic/agent/{agentNum}/get/mask | subnet mask of the agent. |
| GET | /mimic/agent/{agentNum}/get/mibs | set of MIBs, simulations and scenarios |
| GET | /mimic/agent/{agentNum}/get/num_starts | number of starts for the agent. |
| GET | /mimic/agent/{agentNum}/get/oiddir | MIB directory of the agent. |
| GET | /mimic/agent/{agentNum}/get/owner | owner of the agent. |
| GET | /mimic/agent/{agentNum}/get/pdusize | maximum PDU size. |
| GET | /mimic/agent/{agentNum}/get/port | port number |
| GET | /mimic/agent/{agentNum}/get/privdir | private directory of the agent. |
| GET | /mimic/agent/{agentNum}/get/protocol | protocols supported by agent |
| GET | /mimic/agent/{agentNum}/get/read | read community string |
| GET | /mimic/agent/{agentNum}/get/scen | first scenario name |
| GET | /mimic/agent/{agentNum}/get/sim | first simulation name |
| GET | /mimic/agent/{agentNum}/get/start | relative start time |
| GET | /mimic/agent/{agentNum}/get/state | current running state of the agent |
| GET | /mimic/agent/{agentNum}/get/state_changed | has the agent state changed? |
| GET | /mimic/agent/{agentNum}/get/statistics | current statistics of the agent instance |
| GET | /mimic/agent/{agentNum}/get/trace | SNMP PDU tracing |
| GET | /mimic/agent/{agentNum}/get/validate | SNMP SET validation policy. |
| GET | /mimic/agent/{agentNum}/get/write | write community string |
| PUT | /mimic/agent/{agentNum}/halt | Halt the current agent. |
| POST | /mimic/agent/{agentNum}/ipalias/add/{IP}/{port}/{mask}/{interface} | Adds a new ipalias for the agent. |
| DELETE | /mimic/agent/{agentNum}/ipalias/delete/{IP}/{port} | Deletes an existing ipalias from the agent. |
| GET | /mimic/agent/{agentNum}/ipalias/list | Lists all the additional ipaliases configured for the agent. |
| PUT | /mimic/agent/{agentNum}/ipalias/start/{IP}/{port} | Starts an existing ipalias for the agent. |
| GET | /mimic/agent/{agentNum}/ipalias/status/{IP}/{port} | Returns the status (0=down, 1=up) of an existing ipalias for the agent. |
| PUT | /mimic/agent/{agentNum}/ipalias/stop/{IP}/{port} | Stops an existing ipalias for the agent. |
| PUT | /mimic/agent/{agentNum}/pause | Pause the current agent. |
| GET | /mimic/agent/{agentNum}/protocol/msg/coap/get/args | Show the agent's COAP argument structure |
| GET | /mimic/agent/{agentNum}/protocol/msg/coap/get/config | Show the agent's COAP configuration |
| GET | /mimic/agent/{agentNum}/protocol/msg/coap/get/statistics | Show the agent's COAP statistics |
| GET | /mimic/agent/{agentNum}/protocol/msg/coap/get/trace | Show the agent's COAP traffic tracing |
| PUT | /mimic/agent/{agentNum}/protocol/msg/coap/set/config/{argument}/{value} | Set the agent's COAP configuration |
| PUT | /mimic/agent/{agentNum}/protocol/msg/coap/set/trace/{enableOrNot} | Set the agent's COAP traffic tracing |
| GET | /mimic/agent/{agentNum}/protocol/msg/dhcp/get/args | Show the agent's DHCP argument structure |
| GET | /mimic/agent/{agentNum}/protocol/msg/dhcp/get/config | Show the agent's DHCP configuration |
| GET | /mimic/agent/{agentNum}/protocol/msg/dhcp/get/statistics | Show the agent's DHCP statistics |
| GET | /mimic/agent/{agentNum}/protocol/msg/dhcp/get/trace | Show the agent's DHCP traffic tracing |
| GET | /mimic/agent/{agentNum}/protocol/msg/dhcp/params | Show the parameters configured by the server in its DHCP-OFFER message |
| PUT | /mimic/agent/{agentNum}/protocol/msg/dhcp/set/config/{argument}/{value} | Set the agent's DHCP configuration |
| PUT | /mimic/agent/{agentNum}/protocol/msg/dhcp/set/trace/{enableOrNot} | Set the agent's DHCP traffic tracing |
| GET | /mimic/agent/{agentNum}/protocol/msg/ipmi/get/args | Show the agent's IPMI argument structure |
| GET | /mimic/agent/{agentNum}/protocol/msg/ipmi/get/config | Show the agent's IPMI configuration |
| GET | /mimic/agent/{agentNum}/protocol/msg/ipmi/get/statistics | Show the agent's IPMI statistics |
| GET | /mimic/agent/{agentNum}/protocol/msg/ipmi/get/trace | Show the agent's IPMI traffic tracing |
| GET | /mimic/agent/{agentNum}/protocol/msg/ipmi/get/{attr} | Show the outgoing message's attributes |
| PUT | /mimic/agent/{agentNum}/protocol/msg/ipmi/set/config/{argument}/{value} | Set the agent's IPMI configuration |
| PUT | /mimic/agent/{agentNum}/protocol/msg/ipmi/set/trace/{enableOrNot} | Set the agent's IPMI traffic tracing |
| PUT | /mimic/agent/{agentNum}/protocol/msg/ipmi/set/{attr}/{value} | Set the outgoing message's attributes |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/get/protstate | Show the agent's MQTT TCP connection state |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/get/state | Show the agent's MQTT state |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/message/card | Show the agent's current messages' cardinality |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/message/get/{msgNum}/{attr} | Show the agent's message attributes |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/message/set/{msgNum}/{attr}/{value} | Set the agent's message attributes |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/resubscribe/{subNum} | Restart receiving messages from a subcription of the agent |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/runtime/abort | Abort agent's MQTT TCP session without sending DISCONNECT command |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/runtime/connect | Start agent's MQTT TCP session |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/runtime/disconnect | Disconnect agent's MQTT TCP session by sending DISCONNECT command |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/broker/{brokerAddr} | Set the agent's MQTT TCP connection target broker |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/cleansession/{cleanOrNot} | Set the agent's MQTT session |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/clientid/{clientID} | Set the agent's MQTT client ID |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/keepalive/{aliveTime} | Set the agent's MQTT TCP keepalive |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/on_disconnect/{action} | Set the agent's MQTT disconnection action |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/password/{password} | Set the agent's MQTT client password |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/port/{port} | Set the agent's MQTT TCP connection target port |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/username/{username} | Set the agent's MQTT client username |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/willmsg/{msg} | Set the agent's MQTT client's will |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/willqos/{qos} | Set the agent's MQTT will message's QOS field |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/willretain/{retain} | Set the agent's MQTT retained will |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/set/willtopic/{topic} | Set the agent's MQTT client will's topic |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/subscribe/card | Show the agent's current subscriptions' cardinality |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/subscribe/get/{subNum}/{attr} | Show the agent's subscription attributes |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/subscribe/set/{subNum}/{attr}/{value} | Set the agent's subscribe attributes |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/client/unsubscribe/{subNum} | Stops receiving messages from a subcription of the agent |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/get/args | Show the agent's MQTT argument structure |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/get/config | Show the agent's MQTT configuration |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/get/statistics | Show the agent's MQTT statistics |
| GET | /mimic/agent/{agentNum}/protocol/msg/mqtt/get/trace | Show the agent's MQTT traffic tracing |
| PUT | /mimic/agent/{agentNum}/protocol/msg/mqtt/set/config/{argument}/{value} | Set the agent's MQTT configuration |
Showing the first 100 of 356 endpoints; the full list is in the documentation.
Questions
Does the MIMIC REST API API need an API key?
Yes. The MIMIC REST API API uses HTTP Basic authentication; the documentation explains how to get credentials.
Does the MIMIC REST API API support HTTPS?
Yes, the MIMIC REST API API is served over HTTPS.
How many endpoints does the MIMIC REST API API have?
Its OpenAPI description lists 356 endpoints in version 21.00. The first 100 are shown on this page.
What are alternatives to the MIMIC REST API 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).