XYTE APIs

Easily connect, deploy, manage, and monitor your devices 

Use our extensive set of APIs to integrate with our platform in a way that fully supports your needs.
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
Trusted by leading organizations | Used by hundreds of enterprises | Millions of devices managed
Schneider Electric
Bluesound Professional
Avpro logo
logo company

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.

Shane Roma
Product Manager
Middle Atlantic Products – Legrand

Unlock seamless global connectivity for your equipment and devices