{"openapi":"3.1.0","info":{"title":"Conduit Fill API","version":"1.0.0","description":"NEC conduit-fill and box-fill maths as an API, computed locally and deterministically — the electrical-code calculations an electrician or estimator does on every run. The conduit-fill endpoint takes a set of conductors (as size:count pairs, e.g. 12:3,10:2) and a conduit trade size and returns the conductor cross-sectional area, the conduit's internal area, the fill percentage and whether it stays within the NEC Chapter 9 limit — 53 % for a single conductor, 31 % for two, 40 % for three or more — so nine #12 THHN fill a half-inch EMT to 39 % (legal) but ten do not. The box-fill endpoint applies NEC 314.16(B): each conductor adds its free-space allowance (2.00 in³ for #14, 2.25 for #12, and so on), a device yoke counts as two, internal cable clamps as one, and all equipment grounds together as one — all at the largest conductor's volume — to give the minimum junction-box size, checked against a box volume if you give one. Uses the THHN/THWN and EMT areas from NEC Chapter 9. Everything is computed locally and deterministically, so it is instant and private. Ideal for electrical-contractor, estimating, inspection and electrician app developers, conduit and box-sizing tools, and apprentice training. Pure local computation — no key, no third-party service, instant. Imperial: square inches and cubic inches. Live, nothing stored. 2 compute endpoints. Always verify against the adopted code edition — this is an estimating aid, not an inspection.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/conduit-api","description":"oanor gateway"}],"tags":[{"name":"Conduit"},{"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/box-fill":{"get":{"operationId":"get_v1_box_fill","tags":["Conduit"],"summary":"NEC 314.16 box fill","description":"","parameters":[{"name":"conductors","in":"query","required":false,"description":"size:count pairs, e.g. 14:3","schema":{"type":"string"},"example":"14:3"},{"name":"wire_size","in":"query","required":false,"description":"Single wire size","schema":{"type":"string"},"example":"14"},{"name":"count","in":"query","required":false,"description":"Count for single size","schema":{"type":"string"},"example":"3"},{"name":"devices","in":"query","required":false,"description":"Device yokes (receptacles/switches)","schema":{"type":"string"},"example":"1"},{"name":"clamps","in":"query","required":false,"description":"Internal cable clamps present","schema":{"type":"string"},"example":"true"},{"name":"grounds","in":"query","required":false,"description":"Equipment grounds present","schema":{"type":"string"},"example":"1"},{"name":"box_volume","in":"query","required":false,"description":"Box volume to check (in³)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"NEC 314.16(B): each conductor adds its free-space allowance; a device counts as 2×, internal clamps as 1×, and all equipment grounds together as 1× — all at the largest conductor's volume.","inputs":{"clamps":1,"devices":1,"conductors":[{"size":"14","count":3}],"ground_systems":1},"required_volume":14,"volume_breakdown":{"clamps":2,"devices":4,"grounds":2,"conductors":6}},"meta":{"timestamp":"2026-06-05T21:48:45.876Z","request_id":"602decef-b32e-436a-aaa7-d27d98ea72d5"},"status":"ok","message":"Box fill","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/conduit-fill":{"get":{"operationId":"get_v1_conduit_fill","tags":["Conduit"],"summary":"NEC conduit fill %","description":"","parameters":[{"name":"conductors","in":"query","required":false,"description":"size:count pairs, e.g. 12:3,10:2","schema":{"type":"string"},"example":"12:3,10:2"},{"name":"wire_size","in":"query","required":false,"description":"Single wire size (AWG/kcmil)","schema":{"type":"string"},"example":"12"},{"name":"count","in":"query","required":false,"description":"Count for single size","schema":{"type":"string"},"example":"3"},{"name":"trade_size","in":"query","required":false,"description":"EMT trade size (1/2, 3/4, 1, …)","schema":{"type":"string"},"example":"1/2"},{"name":"conduit_area","in":"query","required":false,"description":"Override conduit area (in²)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"NEC Chapter 9: max fill is 53% for 1 conductor, 31% for 2, 40% for 3 or more. Fill % = conductor area / conduit area; it must stay within the allowable.","inputs":{"conductors":[{"size":"12","count":3},{"size":"10","count":2}],"trade_size":"1/2","conduit_area":0.304},"spare_area":0.0395,"fill_percent":27.0066,"within_limit":true,"allowable_area":0.1216,"conductor_area":0.0821,"conductor_count":5,"max_fill_percent":40},"meta":{"timestamp":"2026-06-05T21:48:45.953Z","request_id":"645c4d96-6761-4479-b03c-10b329382c97"},"status":"ok","message":"Conduit fill","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":"THHN/THWN conductor and EMT areas (NEC Chapter 9); box-fill volumes (NEC 314.16(B)). Conductors as 'size:count' pairs (e.g. 12:3,10:2). Imperial: in² and in³. Verify against the current code; this is an estimating aid.","service":"conduit-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/box-fill":"Required junction-box volume (NEC 314.16) from conductors, devices, clamps and grounds.","GET /v1/conduit-fill":"Conduit fill % and pass/fail (NEC Chapter 9) for a set of conductors in EMT."},"description":"NEC conduit fill and box fill for electricians: conductor area vs conduit capacity, and junction-box volume requirements."},"meta":{"timestamp":"2026-06-05T21:48:46.011Z","request_id":"d06f22fe-6213-428e-bf64-8d75f57f5f45"},"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":4950,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":530,"monthly_call_quota":49000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1430,"monthly_call_quota":214000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4400,"monthly_call_quota":1285000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/conduit-api"}