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
TekVox
Applied Materials
Lightricks
Monday
WIX
Etoro
BrightSign
MS Teams
Zoom
Crestron
QSC
Biamp
Poly
Domotz
Neat
LINX
Cenero
TekVox
Applied Materials
Lightricks
Monday
WIX
Etoro
BrightSign
MS Teams
Zoom
Crestron
QSC
Biamp
Poly
Domotz
Neat
LINX
Cenero
TekVox
Applied Materials
Lightricks
Monday
WIX
Etoro
BrightSign
MS Teams
Zoom
Crestron
QSC
Biamp
Poly
Domotz
Neat
LINX
Cenero
UTG
Convergint
Wesco
WyreStorm
Valens
Symetrix
Schneider Electric
rebar
Planar
proAV
MSolutions
Middle Atlantic
Legrand
Bose
Bluesound Professional
Avocor
AVProedge
Atlas
UTG
Convergint
Wesco
WyreStorm
Valens
Symetrix
Schneider Electric
rebar
Planar
proAV
MSolutions
Middle Atlantic
Legrand
Bose
Bluesound Professional
Avocor
AVProedge
Atlas
UTG
Convergint
Wesco
WyreStorm
Valens
Symetrix
Schneider Electric
rebar
Planar
proAV
MSolutions
Middle Atlantic
Legrand
Bose
Bluesound Professional
Avocor
AVProedge
Atlas
TekVox
Applied Materials
Lightricks
Monday
WIX
Etoro
BrightSign
MS Teams
Zoom
Crestron
QSC
Biamp
Poly
Domotz
Neat
LINX
Cenero
TekVox
Applied Materials
Lightricks
Monday
WIX
Etoro
BrightSign
MS Teams
Zoom
Crestron
QSC
Biamp
Poly
Domotz
Neat
LINX
Cenero
UTG
Convergint
Wesco
WyreStorm
Valens
Symetrix
Schneider Electric
rebar
Planar
proAV
MSolutions
Middle Atlantic
Legrand
Bose
Bluesound Professional
Avocor
AVProedge
Atlas
UTG
Convergint
Wesco
WyreStorm
Valens
Symetrix
Schneider Electric
rebar
Planar
proAV
MSolutions
Middle Atlantic
Legrand
Bose
Bluesound Professional
Avocor
AVProedge
Atlas
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