{"openapi":"3.1.0","info":{"title":"RAID Calculator API","version":"1.0.0","description":"RAID storage-array maths as an API, computed locally and deterministically. The capacity endpoint computes the usable and raw capacity, the storage efficiency and the fault tolerance of a RAID level — RAID 0 stripes for n×disk with no redundancy, RAID 1 mirrors to one disk and tolerates n−1 failures, RAID 5 gives (n−1)×disk with one-disk tolerance, RAID 6 gives (n−2)×disk with two-disk tolerance, and RAID 10 gives (n/2)×disk — and reports the minimum disks each level needs. The compare endpoint lays the levels side by side for the same disks and disk size so you can weigh capacity against redundancy. The rebuild endpoint estimates how long it takes to rebuild a single disk at a given rebuild speed, the window during which a second failure would lose data in RAID 5/6. Everything is computed locally and deterministically, so it is instant and private. Ideal for storage, NAS, server and IT-admin app developers, capacity-planning and procurement tools, and homelab calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is RAID array sizing; for data-transfer time use a transfer API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/raid-api","description":"oanor gateway"}],"tags":[{"name":"RAID"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/capacity":{"get":{"operationId":"get_v1_capacity","tags":["RAID"],"summary":"RAID capacity","description":"","parameters":[{"name":"level","in":"query","required":true,"description":"RAID level: 0, 1, 5, 6 or 10","schema":{"type":"string"},"example":"5"},{"name":"disks","in":"query","required":true,"description":"Number of disks","schema":{"type":"string"},"example":"6"},{"name":"disk_size","in":"query","required":true,"description":"Size of each disk (e.g. TB)","schema":{"type":"string"},"example":"4"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Usable = data disks × disk size; the rest is parity or mirror. Fault tolerance is how many disks can fail without data loss.","inputs":{"disks":6,"level":"RAID 5","disk_size":4},"raw_capacity":24,"minimum_disks":3,"usable_capacity":20,"efficiency_percent":83.3333,"fault_tolerance_disks":1},"meta":{"timestamp":"2026-06-04T18:38:13.449Z","request_id":"6253a25f-5d5a-4846-83ae-a35e2bd7c234"},"status":"ok","message":"RAID capacity","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/compare":{"get":{"operationId":"get_v1_compare","tags":["RAID"],"summary":"Compare RAID levels","description":"","parameters":[{"name":"disks","in":"query","required":true,"description":"Number of disks","schema":{"type":"string"},"example":"6"},{"name":"disk_size","in":"query","required":true,"description":"Size of each disk","schema":{"type":"string"},"example":"4"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Levels that need more (or an even number of) disks than provided are omitted.","inputs":{"disks":6,"disk_size":4,"raw_capacity":24},"levels":[{"level":"RAID 0","usable_capacity":24,"efficiency_percent":100,"fault_tolerance_disks":0},{"level":"RAID 1","usable_capacity":4,"efficiency_percent":16.67,"fault_tolerance_disks":5},{"level":"RAID 5","usable_capacity":20,"efficiency_percent":83.33,"fault_tolerance_disks":1},{"level":"RAID 6","usable_capacity":16,"efficiency_percent":66.67,"fault_tolerance_disks":2},{"level":"RAID 10","usable_capacity":12,"efficiency_percent":50,"fault_tolerance_disks":1}]},"meta":{"timestamp":"2026-06-04T18:38:13.550Z","request_id":"23820bf6-38b7-4334-80e1-ec780ddc5953"},"status":"ok","message":"Compare RAID levels","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/rebuild":{"get":{"operationId":"get_v1_rebuild","tags":["RAID"],"summary":"Rebuild time","description":"","parameters":[{"name":"disk_size","in":"query","required":true,"description":"Disk size (TB)","schema":{"type":"string"},"example":"4"},{"name":"rebuild_speed","in":"query","required":false,"description":"Rebuild speed (MB/s, default 100)","schema":{"type":"string"},"example":"100"},{"name":"binary","in":"query","required":false,"description":"Use binary TiB (true/false)","schema":{"type":"string"},"example":"false"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Rebuild time = disk bytes / rebuild speed. Larger disks widen the window where a second failure causes data loss (relevant for RAID 5/6).","inputs":{"binary":false,"disk_size_tb":4,"rebuild_speed_mb_s":100},"rebuild_days":0.46296,"rebuild_hours":11.1111,"rebuild_seconds":40000},"meta":{"timestamp":"2026-06-04T18:38:13.649Z","request_id":"2dc957ce-7fe9-41d4-b990-f317428fee2a"},"status":"ok","message":"Rebuild time","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Disk size in TB (or any consistent unit for capacity). RAID 5 needs ≥3 disks, RAID 6 ≥4, RAID 10 an even number ≥4. Rebuild speed in MB/s (decimal TB by default).","service":"raid-api","formulae":{"raid0":"n·d (tol 0)","raid1":"d (tol n−1)","raid5":"(n−1)·d (tol 1)","raid6":"(n−2)·d (tol 2)","raid10":"(n/2)·d (tol ≥1)"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/compare":"Compare RAID 0/1/5/6/10 for the same disks and size.","GET /v1/rebuild":"Rebuild time for a single disk at a given rebuild speed.","GET /v1/capacity":"Usable/raw capacity, efficiency and fault tolerance for a RAID level."},"description":"RAID array calculator: usable capacity, fault tolerance and efficiency by level, a level comparison, and disk-rebuild time."},"meta":{"timestamp":"2026-06-04T18:38:13.797Z","request_id":"6ac034e5-b56d-439b-852c-d43e4d4e4d10"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":600,"monthly_call_quota":15000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1800,"monthly_call_quota":80000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5900,"monthly_call_quota":400000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/raid-api"}