# Time Series Storage

### Overview

Every device on Qubitro has built-in **Time Series Storage**, which is **automatically created** when the device is created.&#x20;

This **fully managed, highly available, and horizontally scalable storage engine** eliminates database operations (DBOps) and the need for third-party databases.

### Core Features

* [x] **Automatic Storage Creation** – No setup required; storage is created per device.
* [x] **Dynamic Data Storage** – Supports **any valid JSON data** structure.
* [x] **Per-Device Retention Period** – Customizable based on **plan and project settings**.
* [x] **Scalability** – Handles high-ingestion workloads with horizontal scaling.
* [x] [**Storage Views**](https://docs.qubitro.com/add-ons/storage-views) – Enables writing data to multiple views for advanced structuring.
* [x] **Multi-Access Support** – Available via APIs, dashboards, and UI-based views.

### Data Accessibility

Time Series Storage data is available through:

#### **Device Detail Page → Storage Tab** (Table view)

<figure><img src="https://3109056034-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfQfo4zX1x0hfOimS9E2u%2Fuploads%2FDqSm8B0cNgpC3R6JVJ3k%2FCleanShot%202025-03-02%20at%2023.21.13.gif?alt=media&#x26;token=a31c26a3-3857-4f46-9915-9544af8ca954" alt=""><figcaption><p>Qubitro Time Series Storage View</p></figcaption></figure>

#### **APIs** (For programmatic access)

{% content-ref url="broken-reference" %}
[Broken link](https://docs.qubitro.com/platform/storage/broken-reference)
{% endcontent-ref %}

#### Example response:

```json
{
  "success": true,
  "action": "get device data",
  "status": 200,
  "message": "Device data fetched successfully.",
  "data": [
    {
      "acoustic_level": 45.425554079986945,
      "anomaly_detected": false,
      "equipment_health": "Good",
      "flow_rate": 159.9091980083704,
      "humidity": 80.84150406882252,
      "maintenance_needed": false,
      "pressure": 926.2272770144835,
      "temperature": 22.9795338621098,
      "time": "2025-03-02T20:30:21.202946Z",
      "timestamp": "2025-03-02T20:30:05Z",
      "vibration": 8.039540775151707
    },
    {
      "acoustic_level": 97.35889180403677,
      "anomaly_detected": false,
      "equipment_health": "Good",
      "flow_rate": 168.36617819046316,
      "humidity": 66.9764711069997,
      "maintenance_needed": false,
      "pressure": 1091.38434821347,
      "temperature": 37.229863557166354,
      "time": "2025-03-02T20:30:06.637564Z",
      "timestamp": "2025-03-02T20:30:06Z",
      "vibration": 1.0982245649319902
    }
  ]
}
```

#### **Dashboard Widgets** (For visualization)

<figure><img src="https://3109056034-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfQfo4zX1x0hfOimS9E2u%2Fuploads%2FBpeDBqSWnXnQuGG7vBLY%2FCleanShot%202025-03-02%20at%2023.34.31%402x.png?alt=media&#x26;token=cc53dbd5-c955-44e6-802d-1af768dcabb2" alt="" width="375"><figcaption></figcaption></figure>

### Retention Period

Retention periods vary based on **plan type** and **organization settings**:

| Plan Type                           | Default Retention Period |
| ----------------------------------- | ------------------------ |
| **Starter Plan (Personal)**         | 7 days                   |
| **Scale Plan (Personal)**           | 14 days                  |
| **Enterprise Plan (Organizations)** | Configurable per project |

For **Enterprise accounts**, retention can be set per projec&#x74;**, per device.**

Example:

* **Project A** → 3 months data retention per device.
* **Project B** → 6 months data retention per device.

{% hint style="info" %}
The default retention period for organizations is defined in the **agreement**.
{% endhint %}

### Data Size Limits

{% hint style="success" %}
The **data size limit** applies **per device**, meaning each device has its own maximum limit for individual data points.
{% endhint %}

| Plan Type                           | Max Data Point Size                 |
| ----------------------------------- | ----------------------------------- |
| **Starter Plan (Personal)**         | 1 KB                                |
| **Scale Plan (Personal)**           | 10 KB                               |
| **Enterprise Plan (Organizations)** | Custom (Up to 10 MB per data point) |

### Deleting Device Data

Qubitro provides multiple options for deleting device data, allowing you to remove data in bulk or delete specific data points as needed.

{% hint style="info" %}
This section covers **per-device data deletion**. To delete data for **all devices**, you can:

* Use the [**Qubitro API**](https://docs.qubitro.com/platform/storage/broken-reference) to fetch all devices and delete their data.
* Delete the entire [**project**](https://docs.qubitro.com/platform/project), which will remove all associated devices and data.
  {% endhint %}

{% hint style="danger" %}
Data deletion is **permanent** and cannot be undone. Once deleted, the data **cannot be recovered**.
{% endhint %}

#### Bulk Deletion

* You can delete **all stored data** for a device from the **Storage** tab.
* Click the **options menu (`...`)** and select **Delete all device data**.

{% hint style="danger" %}
This action removes **all historical data points** from **Time Series Storage** and cannot be undone.
{% endhint %}

#### Deleting Individual Data Points

This method is useful when only selective data needs to be removed without affecting the rest of the dataset.

* To delete a **specific data point**, expand the table view by clicking the **`+`** icon next to a data entry.
* Click the **red cross (❌)** next to the data point to remove it.

#### Deleting Data via API

This method is ideal for automated cleanup tasks or bulk deletions managed through scripts.

* Refer to the [API documentation](https://docs.qubitro.com/platform/storage/broken-reference) for supported endpoints and usage details.
