{"openapi":"3.1.0","info":{"title":"Log Scaling & Timber API","version":"1.0.0","description":"Log-scaling and timber maths as an API, computed locally and deterministically — the board-foot yield and cubic volume a logger, sawyer or forester scales a round saw log with. The boardfeet endpoint runs the three classic log rules at once from the small-end diameter inside bark and the length: Doyle = ((D − 4) ÷ 4)² × L, Scribner Decimal C ≈ (0.79·D² − 2·D − 4) × L ÷ 16, and the International ¼-inch rule by exact four-foot segments with a half-inch taper allowance, rounded to the nearest 5 board feet — so a 20-inch, 16-foot log scales 256 BF by Doyle, 272 by Scribner and 320 by International, neatly showing how Doyle under-scales small logs, International is the most accurate and Scribner sits between. The volume endpoint gives the cubic content by Smalian’s formula — the average of the two end cross-section areas times length — and Huber’s formula — the mid cross-section area times length, usually the most accurate — both in cubic feet and cords (128 ft³ = 1 cord). Everything is computed locally and deterministically, so it is instant and private. Ideal for forestry, logging, sawmill, timber-cruising and land-management app developers, log-buyer and timber-valuation tools, and woodlot calculators. Pure local computation — no key, no third-party service, instant. Imperial forestry units. Live, nothing stored. 2 compute endpoints. For sawn-board board feet use a lumber API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/logscale-api","description":"oanor gateway"}],"tags":[{"name":"LogScale"},{"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":["LogScale"],"summary":"Board-foot yield (log rules)","description":"","parameters":[{"name":"diameter_in","in":"query","required":true,"description":"Small-end diameter inside bark (in)","schema":{"type":"string"},"example":"20"},{"name":"length_ft","in":"query","required":true,"description":"Log length (ft)","schema":{"type":"string"},"example":"16"},{"name":"logs","in":"query","required":false,"description":"Number of identical logs (default 1)","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Board feet of sawn lumber a round log will yield, by the three standard rules. Doyle under-scales small logs and over-scales big ones; International ¼\" is the most accurate; Scribner sits between. Diameter is the small end inside bark.","total":{"doyle":256,"scribner":272,"international_quarter_inch":320},"inputs":{"logs":1,"length_ft":16,"diameter_in":20},"per_log":{"doyle":256,"scribner":272,"international_quarter_inch":320}},"meta":{"timestamp":"2026-06-06T07:14:03.405Z","request_id":"0cee1f1f-bbc6-4049-b9a5-4aacd82970ae"},"status":"ok","message":"Log 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/volume":{"get":{"operationId":"get_v1_volume","tags":["LogScale"],"summary":"Cubic volume (Smalian/Huber)","description":"","parameters":[{"name":"length_ft","in":"query","required":true,"description":"Log length (ft)","schema":{"type":"string"},"example":"16"},{"name":"small_diameter_in","in":"query","required":true,"description":"Small-end diameter (in)","schema":{"type":"string"},"example":"18"},{"name":"large_diameter_in","in":"query","required":false,"description":"Large-end diameter (Smalian)","schema":{"type":"string"},"example":"22"},{"name":"mid_diameter_in","in":"query","required":false,"description":"Mid diameter (Huber)","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Smalian's = (large-end area + small-end area) ÷ 2 × length. Huber's = mid area × length (usually the most accurate). Areas use diameter inside bark. 128 ft³ = 1 stacked cord.","inputs":{"length_ft":16,"small_diameter_in":18},"huber_cuft":34.907,"huber_cords":0.273,"smalian_cuft":35.256,"smalian_cords":0.275,"mid_diameter_in":20,"large_diameter_in":22},"meta":{"timestamp":"2026-06-06T07:14:03.501Z","request_id":"6331830d-b008-44ff-8183-5fa735fd0c4e"},"status":"ok","message":"Log 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":{"notes":"Imperial forestry units: small-end diameter inside bark (inches), length (feet). Doyle = ((D−4)/4)²×L; Scribner ≈ (0.79D²−2D−4)×L/16; International ¼\" by 4-ft segments to the nearest 5 BF. For sawn-board board feet use a lumber API.","service":"logscale-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/volume":"Cubic-foot (and cord) volume by Smalian's and Huber's formulas.","GET /v1/boardfeet":"Board-foot yield of a saw log by all three log rules."},"description":"Log-scaling maths: board-foot yield by the Doyle, Scribner and International ¼-inch rules, and cubic volume by Smalian's and Huber's formulas."},"meta":{"timestamp":"2026-06-06T07:14:03.589Z","request_id":"2e6abdae-d7e9-4716-989f-5855bae3e334"},"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":6800,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":450,"monthly_call_quota":51500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1220,"monthly_call_quota":216000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3900,"monthly_call_quota":1285000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/logscale-api"}