{"openapi":"3.1.0","info":{"title":"Firewood Calculator API","version":"1.0.0","description":"Firewood maths as an API, computed locally and deterministically. The volume endpoint turns a wood-stack's length, height and depth (in feet or metres) into its volume in cubic feet and cubic metres, full cords, face cords and steres — a full cord being 128 cubic feet (a 4×4×8 ft stack) and a face cord being an 8×4 ft stack by the piece (log) length. The convert endpoint converts a quantity between cords, face cords, steres, cubic metres and cubic feet, using the piece length for the face-cord relationship. The heat endpoint estimates the heating value of a number of cords by wood species — returning the millions of BTU and the equivalent gallons of heating oil, therms of natural gas and kilowatt-hours — from a built-in table of typical seasoned-wood values (oak, hickory, maple, ash, birch, pine and more) or a custom figure. Everything is computed locally and deterministically, so it is instant and private. Heat values are typical seasoned figures (around 20% moisture) and vary with species, dryness and stove efficiency. Ideal for firewood sellers and delivery tools, heating and homestead apps, and forestry and woodlot calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is firewood volume and energy; for general volume or unit conversion use a unit-conversion API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/firewood-api","description":"oanor gateway"}],"tags":[{"name":"Firewood"},{"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/convert":{"get":{"operationId":"get_v1_convert","tags":["Firewood"],"summary":"Convert cord / stere / m³","description":"","parameters":[{"name":"value","in":"query","required":true,"description":"Quantity","schema":{"type":"string"},"example":"1"},{"name":"from","in":"query","required":true,"description":"cord|facecord|stere|m3|ft3","schema":{"type":"string"},"example":"cord"},{"name":"piece_length","in":"query","required":false,"description":"For face cords (default 16in)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Face-cord conversions depend on the piece (log) length; default 16 in.","input":{"from":"cord","value":1,"piece_length_ft":1.3333},"volume":{"cords":1,"steres":3.6246,"cubic_feet":128,"face_cords":3,"cubic_metres":3.6246}},"meta":{"timestamp":"2026-06-04T01:59:18.915Z","request_id":"1168846b-13de-4bb6-b68b-4fadace6a3c8"},"status":"ok","message":"Cord conversion","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/heat":{"get":{"operationId":"get_v1_heat","tags":["Firewood"],"summary":"Heating value by species","description":"","parameters":[{"name":"cords","in":"query","required":true,"description":"Number of cords","schema":{"type":"string"},"example":"1"},{"name":"species","in":"query","required":false,"description":"oakred|hickory|maple|ash|pine|…","schema":{"type":"string"},"example":"oakred"},{"name":"mbtu_per_cord","in":"query","required":false,"description":"Or custom MBtu/cord","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Heat values are typical seasoned-wood figures (≈20% moisture) and vary with species, dryness and stove efficiency.","input":{"cords":1,"species":"oakred","mbtu_per_cord":24.6},"total_btu":24600000,"equivalent":{"kwh":7209.6,"natural_gas_therms":246,"heating_oil_gallons":177.62},"total_million_btu":24.6},"meta":{"timestamp":"2026-06-04T01:59:19.019Z","request_id":"80fd938a-6ab5-4c66-9c22-a8c1426515e0"},"status":"ok","message":"Heating value","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/volume":{"get":{"operationId":"get_v1_volume","tags":["Firewood"],"summary":"Stack volume to cords","description":"","parameters":[{"name":"length","in":"query","required":true,"description":"Stack length","schema":{"type":"string"},"example":"8"},{"name":"height","in":"query","required":true,"description":"Stack height","schema":{"type":"string"},"example":"4"},{"name":"depth","in":"query","required":true,"description":"Stack depth","schema":{"type":"string"},"example":"4"},{"name":"unit","in":"query","required":false,"description":"ft|m (default ft)","schema":{"type":"string"},"example":"ft"},{"name":"piece_length","in":"query","required":false,"description":"Log length for face cords (default 16)","schema":{"type":"string"},"example":"16"},{"name":"piece_unit","in":"query","required":false,"description":"in|cm|ft|m","schema":{"type":"string"},"example":"in"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"1 cord = 128 ft³ (4×4×8 ft). A face cord is 8×4 ft by the piece length (default 16 in). 1 stere = 1 m³.","input":{"unit":"ft","depth":4,"height":4,"length":8,"piece_length_ft":1.3333},"volume":{"cords":1,"steres":3.6246,"cubic_feet":128,"face_cords":3,"cubic_metres":3.6246}},"meta":{"timestamp":"2026-06-04T01:59:19.103Z","request_id":"d6c6fb3a-91b2-49bb-b368-261936266b53"},"status":"ok","message":"Stack volume","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":{"note":"1 cord = 128 ft³. Face cord = 8×4 ft × piece length (default 16 in). Heat values are typical and vary with moisture.","service":"firewood","species":["osageorange","hickory","blacklocust","oakwhite","oakred","beech","sugarmaple","ash","walnut","birchyellow","redmaple","cherry","elm","douglasfir","sycamore","cedar","pinewhite","poplar","aspen","basswood","spruce","willow"],"endpoints":{"/v1/heat":"Heating value (million BTU) and heating-oil/gas/kWh equivalents from cords and species.","/v1/volume":"Stack dimensions to cubic feet/metres, cords, face cords and steres.","/v1/convert":"Convert between cord, face cord, stere, m³ and ft³ (face cord uses the piece length)."},"description":"Firewood maths: stack volume to cords/face cords/steres/m³, unit conversion, and heating value by species."},"meta":{"timestamp":"2026-06-04T01:59:19.190Z","request_id":"7d7e8133-ae82-4f4e-b778-84f0255d6e0d"},"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":11035,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1255,"monthly_call_quota":20650,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3245,"monthly_call_quota":256500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7045,"monthly_call_quota":1325000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/firewood-api"}