---
title: "GET /v1/projects/{projectOrProductUID}/usage/data"
method: GET
path: "/v1/projects/{projectOrProductUID}/usage/data"
tags: ["usage"]
---

# GET /v1/projects/{projectOrProductUID}/usage/data

`GET /v1/projects/{projectOrProductUID}/usage/data`

Get data usage in bytes for a project with time range and period aggregation

## Path parameters

- `projectOrProductUID` string, required

## Query parameters

- `startDate` integer
- `endDate` integer
- `deviceUID` string[]
- `fleetUID` string[]
- `limit` integer
- `period` 'day' | 'week' | 'month', required
- `aggregate` 'device' | 'fleet' | 'project'

## Response `200`

Response body for Data Usage

- object
  - `data` object[]
    - `data` UsageData[], required
      - `billable_bytes_total` integer — Total billable bytes (only for packet-based protocols)
      - `downlink_bytes` integer
      - `downlink_bytes_billable` integer — Billable downlink bytes (only for packet-based protocols)
      - `downlink_packets` integer — Downlink packets (only for packet-based protocols)
      - `period` string, date-time, required
      - `total_bytes` integer, required
      - `uplink_bytes` integer
      - `uplink_bytes_billable` integer — Billable uplink bytes (only for packet-based protocols)
      - `uplink_packets` integer — Uplink packets (only for packet-based protocols)
    - `device` string — The device UID this usage data belongs to (only present when aggregate is 'device')
    - `device_count` integer — the number of devices represented by this data point
    - `fleet` string — The fleet UID this usage data belongs to (only present when aggregate is 'fleet')
    - `iccid` string — The ICCID of the cellular SIM card (only present when type is 'cellular')
    - `psid` string — The PSID (Packet Service ID) of the satellite (or other packet-based device)
    - `type` 'cellular' | 'satellite', required — The type of connectivity
  - `truncated` boolean — If the data is truncated that means that the parameters selected resulted in a response of over | the requested limit of data points, in order to ensure

## Other responses

- `default` — The response body in case of an API error.

## Changes

- **2026-07-10** `1887e880199a` — 1 breaking, 6 info
  - the response's body type/format changed from ``/`` to `object`/`` for status `default`
  - added the optional property `debug` to the response with the `default` status
  - added the optional property `details` to the response with the `default` status
  - added the optional property `request` to the response with the `default` status
  - …3 more
- **2026-07-07** `b51b37d660fc` — 2 breaking
  - for the `query` request parameter `endDate`, the type/format was changed from `integer`/`` to `integer`/`int64`
  - for the `query` request parameter `startDate`, the type/format was changed from `integer`/`` to `integer`/`int64`
- **2026-02-05** `1654d77f3270` — 6 warning, 6 info
  - removed the optional property `data/items/data/items/billable_bytes_received` from the response with the `200` status
  - removed the optional property `data/items/data/items/billable_bytes_sent` from the response with the `200` status
  - removed the optional property `data/items/data/items/bytes_received` from the response with the `200` status
  - removed the optional property `data/items/data/items/bytes_sent` from the response with the `200` status
  - …8 more
- **2026-02-04** `6b77b7d523c8` — 2 info
  - added the new optional `query` request parameter `limit`
  - added the optional property `truncated` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/notefile/apis/notehub-api/changes/v1/projects/:projectOrProductUID/usage/data/get.md)

---

[API](https://skmtc.dev/notefile/apis/notehub-api.md) · [All operations](https://skmtc.dev/notefile/apis/notehub-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/notefile/notehub-api/revisions/9c5b2b63a991/schema)
