Virtuino Cloud HTTP REST API

Welcome to the Virtuino Cloud technical reference guide. This documentation details the available REST endpoints for synchronizing peripheral hardware states, managing user dashboards, and retrieving historical server data logs.

Root Endpoint URI: All API requests described below must be directed to the following base platform URL:
https://cloud.virtuino.com/api/data

1. Authentication

Every inbound REST API network call requires validation via a unique alphanumeric profile key token. Pass this token using the api_key query parameter string on all endpoints.

2. Update Channel Value (Real-Time Publish)

Pushes raw numeric inputs or state changes from microcontrollers directly into the cloud processing layer to update visual UI panel components.

POST /update

Query & Body Parameters

Parameter Type Status Description
api_key String Required Your private alphanumeric cloud infrastructure access key.
channel String / Int Required The targeted data register address identifier (e.g., V1, V12).
value Float / String Required The raw metric data payload to commit into the database server layer.

Code Implementation References

import requests

endpoint_uri = "https://cloud.virtuino.com/api/data/update"
payload_data = {
    "api_key": "YOUR_PRIVATE_API_KEY",
    "channel": "V1",
    "value": 24.85
}

network_response = requests.post(endpoint_uri, json=payload_data)
print(f"Server Response Status: {network_response.status_code}")
print(network_response.json())
#include <WiFi.h>
#include <HTTPClient.h>

const char* target_url = "https://cloud.virtuino.com/api/data/update";

void dispatchTransmission() {
    if(WiFi.status() == WL_CONNECTED) {
        HTTPClient httpClient;
        httpClient.begin(target_url);
        httpClient.addHeader("Content-Type", "application/json");
        
        String jsonPayload = "{\"api_key\":\"YOUR_KEY\",\"channel\":\"V1\",\"value\":\"24.85\"}";
        int httpResultCode = httpClient.POST(jsonPayload);
        
        httpClient.end();
    }
}
const axios = require('axios');

axios.post('https://cloud.virtuino.com/api/data/update', {
    api_key: 'YOUR_PRIVATE_API_KEY',
    channel: 'V1',
    value: '24.85'
})
.then(res => console.log(`Payload status code: ${res.status}`))
.catch(err => console.error(err));

3. Retrieve Channel Historical Logs

Fetches historical time-series logs matching a specific channel code inside a verified time horizon window.

GET /history

URL Parameters

Parameter Type Status Description
api_key String Required Alphanumeric cloud credentials authorization token string.
channel String Required The specific tracked hardware register channel reference (e.g., V1).
limit Integer Optional Caps total row items returned. Ranges 1-1000. Default setting is 100.
from ISO 8601 Optional The start timestamp boundary condition filter (UTC time format).
to ISO 8601 Optional The closing timestamp boundary condition filter (UTC time format).

Multi-Language Query Snippets

<?php
$queryUrl = "https://cloud.virtuino.com/api/data/history?api_key=YOUR_KEY&channel=V1&limit=15";
$serverOutput = file_get_contents($queryUrl);
$parsedData = json_decode($serverOutput, true);
print_r($parsedData);
?>
URL url = new URL("https://cloud.virtuino.com/api/data/history?api_key=YOUR_KEY&limit=15&from=2026-03-08T00:00:00Z&to=2026-03-08T23:59:59Z");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
// Read InputStream...
var response = await http.get(Uri.parse('https://cloud.virtuino.com/api/data/history?api_key=YOUR_KEY&limit=15&from=2026-03-08T00:00:00Z&to=2026-03-08T23:59:59Z'));
print(jsonDecode(response.body));
curl -G "https://cloud.virtuino.com/api/data/history" \
     --data-urlencode "api_key=YOUR_KEY" \
     --data-urlencode "limit=15" \
     --data-urlencode "from=2026-03-08T00:00:00Z" \
     --data-urlencode "to=2026-03-08T23:59:59Z"