Easily connect, deploy, manage, and monitor your devices
curl --location 'https://entry.xyte.io/v1/devices' \
--header 'Content-Type: application/json' \
--data '{
"device_model": "0bbd47e2-c38f-4872-a493-f3f618232ec7",
"hardware_key": "786ac272-dd85-4813-ae37-148bbfb69e3b",
"mac": "<HH-HH-HH-HH-HH-HH>",
"sn": "<SERIAL-NUMBER>",
"firmware_version": "1.0.0"
}'
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
/* In windows, this will init the winsock stuff */
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL,
"https://entry.xyte.io/v1/devices");
const char *data = "{\n \"device_model\":
\"0bbd47e2-c38f-4872-a493-f3f618232ec7\",\n \"hardware_key\":
\"786ac272-dd85-4813-ae37-148bbfb69e3b\",\n \"mac\":
\" <HH-HH-HH-HH-HH-HH>\",\n \"sn\": \"<SERIAL-NUMBER>\",\n
\"firmware_version\": \"1.0.0\"\n}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"time"
)
func main() {
payload := strings.NewReader(`{
"device_model": "0bbd47e2-c38f-4872-a493-f3f618232ec7",
"hardware_key": "786ac272-dd85-4813-ae37-148bbfb69e3b",
"mac": "<HH-HH-HH-HH-HH-HH>",
"sn": "<SERIAL-NUMBER>",
"firmware_version": "1.0.0",
}`)
req, err := http.NewRequest("POST", "https://entry.xyte.io/v1/devices",
payload)
if err != nil {
fmt.Println(err)
}
req.Header.Set("Content-Type", "application/json")
client := http.Client{Timeout: 10 * time.Second}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
}
fmt.Println("status Code: %d", res.StatusCode)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"device_model\":
\"0bbd47e2-c38f-4872-a493-f3f618232ec7\",\n \"hardware_key\":
\"786ac272-dd85-4813-ae37-148bbfb69e3b\",\n \"mac\":
\"<HH-HH-HH-HH-HH-HH>\",\n \"sn\": \"<SERIAL-NUMBER>\",\n
\"firmware_version\": \"1.0.0\"\n}");
Request request = new Request.Builder()
.url("https://entry.xyte.io/v1/devices")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"device_model": "0bbd47e2-c38f-4872-a493-f3f618232ec7",
"hardware_key": "786ac272-dd85-4813-ae37-148bbfb69e3b",
"mac": "<HH-HH-HH-HH-HH-HH>",
"sn": "<SERIAL-NUMBER>",
"firmware_version": "1.0.0"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://entry.xyte.io/v1/devices", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
import requests
url = "https://entry.xyte.io/v1/devices"
payload = {
"device_model": "0bbd47e2-c38f-4872-a493-f3f618232ec7",
"hardware_key": "786ac272-dd85-4813-ae37-148bbfb69e3b",
"mac": "<HH-HH-HH-HH-HH-HH>",
"sn": "<SERIAL-NUMBER>",
"firmware_version": "1.0.0"
}
response = requests.post(url, json=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://entry.xyte.io/v1/devices")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"device_model": "0bbd47e2-c38f-4872-a493-f3f618232ec7",
"hardware_key": "786ac272-dd85-4813-ae37-148bbfb69e3b",
"mac": "<HH-HH-HH-HH-HH-HH>",
"sn": "<SERIAL-NUMBER>",
"firmware_version": "1.0.0"
})
response = https.request(request)
puts response.read_body
curl --location
'https://eu-1.endpoints.xyte.io/v1/devices/<DEVICE-ID>/telemetry' \
--header 'Content-Type: application/json' \
--header 'Authorization: <ACCESS-KEY>' \
--data '{
"status": "online",
"telemetries": {
"temperature": 31,
"connection": "5g"
}
}'
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
/* In windows, this will init the winsock stuff */
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL,
"https://eu-1.endpoints.xyte.io/v1/devices/<DEVICE-ID>/telemetry");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Authorization: <ACCESS-KEY>");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\n \"status\": \"online\",\n
\"telemetries\": {\n \"temperature\": 31,\n \"connection\":
\"5g\"\n }\n}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
curl_slist_free_all(headers);
}
curl_global_cleanup();
return 0;
}
package main
import (
"strings"
"fmt"
"io/ioutil"
"net/http"
"time"
)
func main() {
url := "https://eu-1.endpoints.xyte.io/v1/devices/<DEVICE-ID>/telemetry"
payload := strings.NewReader(`{
"status": "online",
"telemetries": {
"temperature": 31,
"connection": "5g"
}
}`)
req, err := http.NewRequest("POST", url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Add("Authorization", "<ACCESS-KEY>")
client := http.Client{Timeout: 10 * time.Second}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
}
fmt.Println("status Code: %d", res.StatusCode)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"status\":
\"online\",\n \"telemetries\": {\n \"temperature\": 31,\n
\"connection\": \"5g\"\n }\n}");
Request request = new Request.Builder()
.url("https://eu-1.endpoints.xyte.io/v1/devices/<DEVICE-ID>/telemetry")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "<ACCESS-KEY>")
.build();
Response response = client.newCall(request).execute();
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "<ACCESS-KEY>");
var raw = JSON.stringify({
"status": "online",
"telemetries": {
"temperature": 31,
"connection": "5g"
}
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://eu-1.endpoints.xyte.io/v1/devices/<DEVICE-ID>/telemetry",
requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
import requests
import json
url = "https://eu-1.endpoints.xyte.io/v1/devices/<DEVICE-ID>/telemetry"
payload = {
"status": "online",
"telemetries": {
"temperature": 31,
"connection": "5g"
}
}
headers = {
'Content-Type': 'application/json',
'Authorization': '<ACCESS-KEY>'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://eu-1.endpoints.xyte.io/v1/devices/<DEVICE-ID>/telemetry")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "<ACCESS-KEY>"
request.body = JSON.dump({
"status": "online",
"telemetries": {
"temperature": 31,
"connection": "5g"
}
})
response = https.request(request)
puts response.read_body
Gain full flexibility with our rich set of APIs
Built as a modular and open system, Xyte allows customers full flexibility in implementing the platform. Work with Xyte’s out-of-the-box applications or develop your own. Extract the data you need via our extensive set of RESTful APIs over HTTPS and MQTT.
Use our Device API to connect devices, send custom commands, set up incident-triggering rules, and collect data.
Use our Core API to streamline business operations by creating integrations with your ticketing system, ERP, CRM, task management, messaging, and other systems.
Retrieve platform data that you can use in your own applications or to create custom reports.
We were able to provide a solution that delights our customers in a matter of months. If we had done this ourselves, it would have taken years for us to get this off the ground.