---
title: "Get network volume billing history"
method: GET
path: "/v2/billing/networkvolumes"
tags: ["Billing"]
---

# Get network volume billing history

`GET /v2/billing/networkvolumes`

Returns network volume billing history for the authenticated user, split into time buckets by startTime/endTime with bucketSize or by lastN recent buckets. Use networkVolumeId to filter to one volume; without it, records are emitted per volume per bucket. Each record includes standard storage, high-performance storage, and total amounts, while metadata reports the resolved query, distinct volume count, and totals across the returned records.

## Query parameters

- `startTime` string, date-time
- `endTime` string, date-time
- `bucketSize` 'hour' | 'day' | 'week' | 'month' | 'year' — Length of each billing time bucket.
- `lastN` integer
- `networkVolumeId` string

## Response `200`

OK

- ListNetworkVolumeBillingResponse — Time-bucketed network volume billing records plus metadata for the resolved query, record count, distinct volume count, and storage totals.
  - `records` NetworkVolumeBillingRecord[], required
    - `startTime` string, date-time, required — Start of the range, inclusive (RFC 3339).
    - `endTime` string, date-time, required — End of the range, exclusive (RFC 3339).
    - `totalAmount` number, double, required — Total network volume cost in USD for the bucket, across standard and high-performance storage.
    - `standardAmount` number, double, required — Standard storage cost in USD for the bucket.
    - `highPerformanceAmount` number, double, required — High-performance storage cost in USD for the bucket.
    - `networkVolumeId` string, required — The network volume this record bills. When the networkVolumeId filter is set every record carries that id; otherwise one record is emitted per network volume per bucket.
  - `metadata` NetworkVolumeBillingMetadata, required
    - `query` NetworkVolumeBillingQuery, required — Half-open time range [startTime, endTime) in RFC 3339. On a record it is the time bucket; on a query echo it is the resolved window.
      - `startTime` string, date-time, required — Start of the range, inclusive (RFC 3339).
      - `endTime` string, date-time, required — End of the range, exclusive (RFC 3339).
      - `bucketSize` 'hour' | 'day' | 'week' | 'month' | 'year', required — Length of each billing time bucket.
      - `networkVolumeId` string, nullable — The networkVolumeId filter applied, if any.
    - `recordCount` integer, required — Number of records returned (buckets times distinct volumes).
    - `uniqueNetworkVolumeCount` integer, required — Number of distinct network volumes the records span.
    - `totals` NetworkVolumeBillingAmounts, required — Network volume storage cost, split into standard and high-performance. Backs a record's amounts and the metadata totals.
      - `totalAmount` number, double, required — Total network volume cost in USD for the bucket, across standard and high-performance storage.
      - `standardAmount` number, double, required — Standard storage cost in USD for the bucket.
      - `highPerformanceAmount` number, double, required — High-performance storage cost in USD for the bucket.

## Other responses

- `401` — Authentication failed because the bearer token is missing, malformed, expired, or invalid.
- `403` — The bearer token is valid, but it does not grant access to the requested resource or action.
- `429` — The caller exceeded its per-user rate limit. The response identifies the window that was exceeded and how long to wait. The `RateLimit` and `RateLimit-Policy` headers (per the IETF ratelimit-headers draft) also accompany successful responses, so clients can track quota before a 429.
- `default` — Error

---

[API](https://skmtc.net/runpod/apis/runpod-rest-api.md) · [All operations](https://skmtc.net/runpod/apis/runpod-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/runpod/runpod-rest-api/versions/504cd0394ed6/schema)
