License API
Device Variables
Track Device Variables
10 min
{ "tab" "examples", "url" "/api/v4/track device variables", "name" "/api/v4/track device variables", "method" "post", "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[ { "kind" "required", "name" "date", "type" "string", "children" \[], "description" "in rfc7231 format (see \\"license api authorization\\"), eg thu, 17 nov 2022 20 51 35 gmt" }, { "kind" "required", "name" "authorization", "type" "string", "children" \[], "description" "see \\"license api authorization\\" article" } ], "bodydataparameters" \[ { "kind" "required", "name" "hardware id", "type" "string", "children" \[], "description" "unique hardware id generated for the client device" }, { "kind" "required", "name" "product", "type" "string", "children" \[], "description" "product short code" }, { "name" "variables", "kind" "required", "type" "object", "description" "json key value object, with keys being variable names and values being the values to set for those variables values may be string, number or boolean", "children" \[] }, { "kind" "optional", "name" "license key", "type" "string", "children" \[], "description" "required if product is key based (see section below)" }, { "kind" "optional", "name" "username", "type" "string", "children" \[], "description" "required if product is user based (see section below)" }, { "name" "license id", "kind" "optional", "type" "number", "description" "ensures that the action affects only the license with the specified id this is useful if e g you have multiple licenses for the same product assigned to the same user for obtaining a list of licenses assigned to a user, see \\"user licenses\\"", "children" \[] } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "es8g1cukjmbnpiivt9vof", "code" "\[\n {\n \\"variable\\" \\"first variable\\",\n \\"value\\" \\"cooling\\",\n \\"device id\\" 1698663677416479,\n \\"created at\\" 1698667364802\n }\n]", "language" "200", "customlabel" "" }, { "id" "7eyilksv2qgjcowesdz 2", "code" "{\n \\"unknown product\\" \\"provided product was not found\\",\n \\"license not found\\" \\"license with the provided license user not found\\",\n \\"license not enabled\\" \\"the license is not enabled\\",\n \\"blacklisted\\" \\"this device is blacklisted\\",\n \\"device not found\\" \\"an active device matching the hardware id not found \\",\n}\n ", "language" "400", "customlabel" "" } ], "selectedlanguageid" "es8g1cukjmbnpiivt9vof" }, "examples" { "languages" \[ { "id" "sjeys 1xundnpnhvqaonk", "language" "curl", "code" "curl location request post '/api/v4/track device variables' \\\\\n header 'accept application/json' \\\\\n header 'date string' \\\\\n header 'authorization string' \\\\\n data raw '{\\"hardware id\\" \\"string\\",\\"product\\" \\"string\\",\\"variables\\" \\"object\\",\\"license key\\" \\"string\\",\\"username\\" \\"string\\"}'", "customlabel" "" }, { "id" "zdmwskrxf1dcrdsrwlbeq", "language" "nodejs", "code" "var request = require('request');\nvar options = {\n 'method' 'post',\n 'url' '/api/v4/track device variables',\n 'headers' {\n 'accept' 'application/json',\n 'date' 'string',\n 'authorization' 'string'\n },\n body '{\\"hardware id\\" \\"string\\",\\"product\\" \\"string\\",\\"variables\\" \\"object\\",\\"license key\\" \\"string\\",\\"username\\" \\"string\\"}'\n\n};\nrequest(options, function (error, response) {\n if (error) throw new error(error);\n console log(response body);\n});\n", "customlabel" "" }, { "id" "gdrtikuyhqbgaw9fie09u", "language" "javascript", "code" "var myheaders = new headers();\nmyheaders append(\\"accept\\", \\"application/json\\");\nmyheaders append(\\"date\\", \\"string\\");\nmyheaders append(\\"authorization\\", \\"string\\");\n\nvar raw = \\"{\\\\\\"hardware id\\\\\\" \\\\\\"string\\\\\\",\\\\\\"product\\\\\\" \\\\\\"string\\\\\\",\\\\\\"variables\\\\\\" \\\\\\"object\\\\\\",\\\\\\"license key\\\\\\" \\\\\\"string\\\\\\",\\\\\\"username\\\\\\" \\\\\\"string\\\\\\"}\\";\n\nvar requestoptions = {\n method 'post',\n headers myheaders,\n body raw,\n redirect 'follow'\n};\n\nfetch(\\"/api/v4/track device variables\\", requestoptions)\n then(response => response text())\n then(result => console log(result))\n catch(error => console log('error', error));", "customlabel" "" }, { "id" "ztc9gvmeg5pjpmz12biaq", "language" "python", "code" "import requests\n\nurl = \\"/api/v4/track device variables\\"\n\npayload = \\"{\\\\\\"hardware id\\\\\\" \\\\\\"string\\\\\\",\\\\\\"product\\\\\\" \\\\\\"string\\\\\\",\\\\\\"variables\\\\\\" \\\\\\"object\\\\\\",\\\\\\"license key\\\\\\" \\\\\\"string\\\\\\",\\\\\\"username\\\\\\" \\\\\\"string\\\\\\"}\\"\nheaders = {\n 'accept' 'application/json',\n 'date' 'string',\n 'authorization' 'string'\n}\n\nresponse = requests request(\\"post\\", url, headers=headers, data=payload)\n\nprint(response text)\n", "customlabel" "" }, { "id" "yzojz6phgji3pggn8pkjc", "language" "ruby", "code" "require \\"uri\\"\nrequire \\"net/http\"\n\nurl = uri(\\"/api/v4/track device variables\\")\n\nhttp = net http new(url host, url port);\nrequest = net http post new(url)\nrequest\[\\"accept\\"] = \\"application/json\\"\nrequest\[\\"date\\"] = \\"string\\"\nrequest\[\\"authorization\\"] = \\"string\\"\nrequest body = \\"{\\\\\\"hardware id\\\\\\" \\\\\\"string\\\\\\",\\\\\\"product\\\\\\" \\\\\\"string\\\\\\",\\\\\\"variables\\\\\\" \\\\\\"object\\\\\\",\\\\\\"license key\\\\\\" \\\\\\"string\\\\\\",\\\\\\"username\\\\\\" \\\\\\"string\\\\\\"}\\"\n\nresponse = http request(request)\nputs response read body\n", "customlabel" "" } ], "selectedlanguageid" "ztc9gvmeg5pjpmz12biaq" }, "description" "stores metadata for a specific device\n", "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" } } variables are sent as a json object , where parameter is the variable name and value is the value of the variable, e g if a variable already exists on the device, its value will be overwritten device variables can also be set during activation by providing a variables parameter in the activation payload, with the same syntax as described on this page for more details see activate license (online method) docid\ mt2ygm6cjzh2bumu gfww , deactivate bundle (offline method) docid\ ucxi3f0ly0ysvouqhh8lf schema request body type trackdevicevariablesrequestbody = { // required parameters product string, hardware id string, variables { \[key string] string | number | boolean, } // required for key based products license key string, // required for user based products username string, } json schema response body type trackdevicevariablesresponsebody = ({ variable string, value string | number | boolean, device id number, created at number, // unix timestamp in milliseconds, e g 1737128752745 })\[]; json schema license authorization method there are two types of product licenses based on how the client application authorizes itself to interact with a license key based product licenses client interactions with the license have to be authorized using a license key user based product licenses the license has a corresponding "license user" instead of a license key client interactions with the license have to be authorized using a username errors if an error occurs, the response will have an http status code of 400 or higher, and the response body will contain an error description in the following format { status number, code string, message string } json schema { "$schema" "https //json schema org/draft/2020 12/schema", "type" "object", "properties" { "status" { "type" "number" }, "code" { "type" "string" }, "message" { "type" "string" } }, "required" \[ "status", "code", "message" ], "additionalproperties" false } list of exceptions