{"openapi":"3.1.0","info":{"title":"Lumber Calculator API","version":"1.0.0","description":"Lumber and framing material-estimation maths as an API, computed locally and deterministically. The boardfeet endpoint computes board feet — the standard volume unit for sawn timber, (thickness_in × width_in × length_ft) ÷ 12 — for a quantity of boards, with the total board feet and linear feet. The studs endpoint frames a wall: the number of vertical studs, ceil(wall length ÷ spacing) + 1 (16-inch ≈ 0.4064 m or 24-inch ≈ 0.6096 m centres), with two extra studs per opening, plus the plate boards for the top and bottom plates. The cost endpoint totals the lumber either by board foot (board feet × price per board foot) or by piece (pieces × price per piece). Everything is computed locally and deterministically, so it is instant and private. Ideal for construction, carpentry and DIY app developers, framing and material take-off tools, and lumberyard and builder calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is lumber and framing estimation; for drywall sheets use a drywall API and for concrete use a concrete API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/lumber-api","description":"oanor gateway"}],"tags":[{"name":"Lumber"},{"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/boardfeet":{"get":{"operationId":"get_v1_boardfeet","tags":["Lumber"],"summary":"Board feet","description":"","parameters":[{"name":"thickness","in":"query","required":true,"description":"Thickness (inches)","schema":{"type":"string"},"example":"2"},{"name":"width","in":"query","required":true,"description":"Width (inches)","schema":{"type":"string"},"example":"4"},{"name":"length","in":"query","required":true,"description":"Length (feet)","schema":{"type":"string"},"example":"8"},{"name":"quantity","in":"query","required":false,"description":"Number of boards (default 1)","schema":{"type":"string"},"example":"10"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Board feet = (thickness_in × width_in × length_ft) / 12. One board foot is 144 in³ of wood.","inputs":{"width":4,"length":8,"quantity":10,"thickness":2},"board_feet_each":5.3333,"board_feet_total":53.3333,"linear_feet_total":80},"meta":{"timestamp":"2026-06-04T18:38:16.628Z","request_id":"4dca6df2-9d87-480b-8de2-7d079c0ed0b6"},"status":"ok","message":"Board feet","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/cost":{"get":{"operationId":"get_v1_cost","tags":["Lumber"],"summary":"Lumber cost","description":"","parameters":[{"name":"board_feet","in":"query","required":false,"description":"Board feet","schema":{"type":"string"},"example":"53.33"},{"name":"price_per_board_foot","in":"query","required":false,"description":"Price per board foot","schema":{"type":"string"},"example":"0.8"},{"name":"pieces","in":"query","required":false,"description":"Or number of pieces","schema":{"type":"string"}},{"name":"price_per_piece","in":"query","required":false,"description":"and price per piece","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"mode":"by_board_foot","note":"Total = board feet × price per board foot.","inputs":{"board_feet":53.33,"price_per_board_foot":0.8},"total_cost":42.66},"meta":{"timestamp":"2026-06-04T18:38:16.727Z","request_id":"246a1a39-ba69-4a7e-9c9e-5ac44499049e"},"status":"ok","message":"Lumber cost","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/studs":{"get":{"operationId":"get_v1_studs","tags":["Lumber"],"summary":"Stud-wall framing","description":"","parameters":[{"name":"wall_length","in":"query","required":true,"description":"Wall length (m)","schema":{"type":"string"},"example":"6"},{"name":"stud_spacing","in":"query","required":false,"description":"Stud spacing (m, default 0.4064 = 16\")","schema":{"type":"string"},"example":"0.4064"},{"name":"plates","in":"query","required":false,"description":"Plate rows (default 2)","schema":{"type":"string"},"example":"2"},{"name":"board_length","in":"query","required":false,"description":"Plate board length (m, default 4.8)","schema":{"type":"string"},"example":"4.8"},{"name":"openings","in":"query","required":false,"description":"Number of openings (default 0)","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Studs = ceil(wall_length / spacing) + 1, plus 2 extra studs per opening. Plate boards cover the top and bottom plates.","inputs":{"plates":2,"openings":0,"wall_length":6,"stud_spacing":0.4064},"studs_needed":16,"plate_boards_needed":3},"meta":{"timestamp":"2026-06-04T18:38:16.845Z","request_id":"61024f19-b936-476c-ab5d-344641cd2d09"},"status":"ok","message":"Stud wall framing","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":"Board-foot dimensions in inches (thickness, width) and feet (length). Stud spacing in metres (16\" ≈ 0.4064 m, 24\" ≈ 0.6096 m). Framing counts are approximate — add for blocking and corners.","service":"lumber-api","formulae":{"cost":"board_feet × price, or pieces × price","studs":"ceil(wall_length / spacing) + 1 (+2 per opening)","board_feet":"(thickness_in × width_in × length_ft) / 12"},"endpoints":{"GET /v1/cost":"Lumber cost by board foot or by piece.","GET /v1/meta":"This document.","GET /v1/studs":"Stud count and plate boards for a framed wall.","GET /v1/boardfeet":"Board feet from thickness, width (inches) and length (feet), times a quantity."},"description":"Lumber and framing estimator: board feet, stud-wall framing counts, and lumber cost."},"meta":{"timestamp":"2026-06-04T18:38:16.951Z","request_id":"328bf4ac-8924-4149-b4c0-1afc65ef8d5d"},"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":900,"monthly_call_quota":25000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":150000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7500,"monthly_call_quota":900000,"rps_limit":60,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/lumber-api"}