---
title: "Calculate usable ZFS pool capacity for any RAID level including stripe, mirror, raidz1, raidz2, and raidz3. Computes raw capacity, parity overhead, data disk count, usable terabytes after ZFS metadata overhead (checksums, block pointers, uberblocks), and storage efficiency percentage. Essential for planning NAS builds, TrueNAS/ZFS server storage, and estimating how much usable space a given disk configuration will provide. Supports variable disk sizes and configurable metadata overhead."
method: POST
path: "/api/zfs_capacity"
tags: ["homelab"]
---

# Calculate usable ZFS pool capacity for any RAID level including stripe, mirror, raidz1, raidz2, and raidz3. Computes raw capacity, parity overhead, data disk count, usable terabytes after ZFS metadata overhead (checksums, block pointers, uberblocks), and storage efficiency percentage. Essential for planning NAS builds, TrueNAS/ZFS server storage, and estimating how much usable space a given disk configuration will provide. Supports variable disk sizes and configurable metadata overhead.

`POST /api/zfs_capacity`

## Request

- Base URL: `https://calc.engineer`
- URL: `https://calc.engineer/api/zfs_capacity`
- Auth: none declared

## Request body

- object
  - `disk_count` number, required: Total number of physical disks in the pool
  - `disk_size_tb` number, required: Size of each individual disk in terabytes
  - `raid_type` 'stripe' | 'mirror' | 'raidz1' | 'raidz2' | 'raidz3': ZFS RAID level: stripe (no redundancy), mirror (2-way), raidz1/2/3 (single/double/triple parity)
  - `record_size_kb` number: ZFS record size in kilobytes, affects compression and performance
  - `metadata_overhead_pct` number: Percentage of raw capacity consumed by ZFS metadata, checksums, and internal structures

## Response `200`

Computed result for zfs_capacity

- object
  - `result` object, required
    - `raw_tb` number, required: Total raw capacity across all disks in terabytes
    - `usable_tb` number, required: Usable capacity after parity and metadata overhead in terabytes
    - `parity_disks` number, required: Number of disks (or disk-equivalents) consumed by parity/mirroring
    - `data_disks` number, required: Number of disks (or disk-equivalents) available for data storage
    - `efficiency_pct` number, required: Storage efficiency as a percentage of raw capacity
  - `tool` string, required
  - `version` string, required
  - `computed_at` string, date-time, required
  - `chain` object, required
    - `feeds` unknown[]
      - unknown
    - `accepts_from` unknown[]
      - unknown

## Other responses

- `400`: Validation error or invalid JSON
- `404`: Tool not found

---

[API](https://skmtc.dev/calc/apis/calc-engineer-api.md) · [All operations](https://skmtc.dev/calc/apis/calc-engineer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calc/apis/calc-engineer-api/revisions/8830480ec488?raw)
