---
title: "Get volume cost breakdown"
method: GET
path: "/volumes/costs"
tags: ["General APIs with JWT"]
---

# Get volume cost breakdown

`GET /volumes/costs`

Retrieve volume costs with detailed breakdown by cost type.
    
    **Query Parameters:**
    - `volume_id` (optional): Filter by specific volume
    - `group_by` (optional): Set to "date" to aggregate all volumes by date
    - `cost_type` (optional): Filter by cost type ("storage", "egress", "requests", "other", "custom_storage", "chargeable", "all")
    - `start_date` (required): Start date in YYYY-MM-DD format
    - `end_date` (required): End date in YYYY-MM-DD format (max 3 months from start)
    - `page` (optional): Page number for pagination (default: 1)
    - `limit` (optional): Items per page (default: 50, max: 100)
    
    **Cost Types:**
    - `storage`: AWS S3 storage costs
    - `egress`: AWS Data transfer out costs
    - `requests`: All AWS request costs (Tier 1 + Tier 2)
    - `requests_tier1`: AWS PUT, POST, COPY, LIST requests
    - `requests_tier2`: AWS GET, SELECT, HEAD requests
    - `other`: Other AWS S3 related costs
    - `custom_storage`: Our custom storage pricing ($0.00005/gb/hr)
    - `chargeable`: Cost actually charged to users (custom storage only)
    - `all`: All cost types (default)
    
    **Examples:**
    - Get all costs: `GET /volumes/costs?start_date=2025-01-01&end_date=2025-01-31`
    - Get storage costs only: `GET /volumes/costs?cost_type=storage&start_date=2025-01-01&end_date=2025-01-31`
    - Get daily aggregated costs: `GET /volumes/costs?group_by=date&start_date=2025-01-01&end_date=2025-01-31`

## Query parameters

- `volume_id` string, uuid, nullable
- `group_by` string, nullable
- `cost_type` string, nullable
- `start_date` string, required
- `end_date` string, required
- `page` integer
- `limit` integer

## Response `200`

Volume costs retrieved successfully

- VolumeCostsPaginatedResponse — Paginated response for volume costs
  - `data` VolumeCostsResponse[], required
    - `date` string, required — Date in YYYY-MM-DD format
    - `volume_id` string, uuid, nullable — Volume ID (null if grouped by date)
    - `volume_name` string, nullable — Volume name (null if grouped by date)
    - `storage_cost` number, required — AWS Storage costs in USD
    - `egress_cost` number, required — AWS Data transfer out costs in USD
    - `requests_cost` number, required — AWS Combined request costs in USD
    - `requests_tier1_cost` number, required — AWS Tier 1 request costs (PUT, POST, etc.) in USD
    - `requests_tier2_cost` number, required — AWS Tier 2 request costs (GET, etc.) in USD
    - `other_costs` number, required — AWS Other S3 costs in USD
    - `total_cost` number, required — Total AWS costs in USD
    - `custom_storage_cost` number — Custom storage cost using our pricing ($0.00005/gb/hr)
    - `bucket_size_gb` number — Calculated bucket size in GB
    - `chargeable_cost` number — Cost charged to user (custom storage only)
    - `billing_period_start` string, nullable — Billing period start date
    - `billing_period_end` string, nullable — Billing period end date
  - `pagination` object, required — Pagination metadata
  - `filters` object, required — Applied filters
  - `summary` object, required — Cost summary for the period

## Other responses

- `400` — Invalid query parameters
- `403` — Volume features not enabled for this user
- `422` — Validation Error
- `500` — Internal server error

---

[API](https://skmtc.dev/lium/apis/lium-backend-api.md) · [All operations](https://skmtc.dev/lium/apis/lium-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lium/lium-backend-api/revisions/57db0a9348db/schema)
