API · /lumber-api

Lumber Calculator API

healthy 4,756 Subscribers

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.

api.oanor.com/lumber-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/lumber-api/openapi.json
/api/lumber-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
94 ms
Server probes · 24h
Subscribers
4,756
active
Total calls
32
last 7 days
status Full status page → · 24 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 2,000 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • Board-feet volume endpoint
  • Deterministic instant results
  • Imperial & metric units
Sign in to subscribe

Starter

€9.00 /month

  • 25,000 calls / month
  • 5 requests / second
  • Hard cap (429 above quota, no overage)
  • All framing material-estimation endpoints
  • Board-feet & linear-foot conversions
  • Waste-factor allowance input
  • Email support
Sign in to subscribe

Pro

€24.00 /month

  • 150,000 calls / month
  • 20 requests / second
  • Hard cap (429 above quota, no overage)
  • High-volume takeoff batches
  • Stud/joist count estimation
  • Cost-per-board-foot calculation
  • Priority support
Sign in to subscribe

Mega

€75.00 /month

  • 900,000 calls / month
  • 60 requests / second
  • Hard cap (429 above quota, no overage)
  • Estimating-SaaS scale throughput
  • Full framing & material schedule outputs
  • Bulk batch board-feet computation
  • SLA-backed support
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Deck Builder API

Deck-building maths as an API, computed locally and deterministically — the board, joist and fastener counts a homeowner or contractor needs to material out a rectangular deck. The boards endpoint turns the deck size into a real shopping list: rows = deck width ÷ (board width + gap), rounded up, so a 16 ft × 12 ft deck with a 5.5-inch board face (a 5/4×6) and a 1/8-inch gap needs 26 rows; boards run the length, each row takes one 16 ft board, and a 10 % waste allowance brings it to 29 boards plus the linear footage and the deck area. The joists endpoint frames it: joists are spaced along the length, so count = ⌊length ÷ spacing⌋ + 1 — thirteen joists at 16-inch on-center (seventeen at 12-inch for stronger or diagonal decking), each spanning the width, plus two rim joists and a ledger as total framing linear feet. The fasteners endpoint counts the screws: every decking row crosses every joist once and is fastened with two face screws there, so a 16×12 deck takes 26 × 13 × 2 = 676 screws, about 744 with waste — or one hidden clip per intersection. Everything is computed locally and deterministically, so it is instant and private. Ideal for construction, contractor, home-improvement, building-materials and renovation app developers, deck-estimator and takeoff tools, and lumber-yard calculators. Pure local computation — no key, no third-party service, instant. US units (feet/inches). Live, nothing stored. 3 compute endpoints. Rectangular decks; for indoor floor area use a flooring API.

api.oanor.com/deck-api

Picture Framing API

Picture-framing maths as an API, computed locally and deterministically — the mat-cutting and moulding numbers a framer or artist measures a job by. The mat endpoint sizes the mat board around an artwork: the window opening is the art minus a small overlap on each edge (≈ 0.25 inch so the mat holds the print), and the outer mat is the window plus the border widths — give one border or per-side borders, with a heavier bottom for a balanced, bottom-weighted mat, so an 8×10 print with a 2-inch border has a 7.5×9.5 window and an 11.5×13.5 mat. The moulding endpoint computes the frame stick needed: length = inner perimeter + 8 × the moulding width, because each of the four 45-degree mitred corners adds one moulding width — an 11.5×13.5 frame in 1.5-inch moulding needs 62.5 inches, plus any waste allowance. Everything is computed locally and deterministically, so it is instant and private. Ideal for picture-framing, custom-framing, art-gallery and DIY app developers, mat-cutter and moulding-estimating tools, and framing education. Pure local computation — no key, no third-party service, instant. Imperial inches in; lengths in inches and feet. Live, nothing stored. 2 compute endpoints. A planning aid — measure twice, cut once.

api.oanor.com/framing-api

Masonry Estimating API

Masonry estimating maths as an API, computed locally and deterministically — the brick, block and mortar counts a bricklayer, builder or estimator works to. The brick endpoint computes how many bricks a wall needs from its area (or length × height in feet): bricks per square foot = 144 / ((brick length + joint) × (brick height + joint)), so a standard modular brick with a 3/8-inch mortar joint works out to the well-known 6.86 bricks per square foot — a 100 ft² wall is 686 bricks, plus a waste allowance and the mortar bags (about 7 per 1000 bricks). The block endpoint does the same for concrete masonry units: a standard 16×8-inch CMU with a 3/8-inch joint is 1.125 blocks per square foot, with roughly 2.5 mortar bags per 100 blocks. Both endpoints take custom unit face dimensions and joint thickness, add a configurable waste percentage and round up to whole units. Everything is computed locally and deterministically, so it is instant and private. Ideal for construction, masonry-contractor, building-supply and home-improvement app developers, takeoff and material-estimating tools, and trade calculators. Pure local computation — no key, no third-party service, instant. Imperial units (inches and square feet). Live, nothing stored. 2 compute endpoints. This is brick/block and mortar estimating; for poured-concrete volume use a concrete API and for drywall use a drywall API.

api.oanor.com/masonry-api

Roof Pitch API

Roofing geometry as an API, computed locally and deterministically. The pitch endpoint converts freely between the three ways trades describe a roof slope — the pitch as rise per 12 of run (the X:12 notation), the angle in degrees and the slope as a percentage — using angle = atan(pitch/12); a 6:12 roof is 26.57° and a 50 % slope, and it also returns the pitch multiplier √(1 + tan²) that scales a flat plan length to the true along-slope length. The rafter endpoint computes the common rafter length from the horizontal run and the pitch, rafter = √(run² + rise²) with rise = run·tan(angle), and adds the along-slope length of an optional horizontal overhang — a 12-unit run at 6:12 needs a 13.42-unit rafter. The area endpoint converts a flat building footprint into the actual sloped roof surface area, footprint / cos(angle), the figure you need to order shingles, membrane or underlay; a 100 m² footprint under a 6:12 roof is about 111.8 m². Lengths are unit-agnostic — use a consistent unit. Everything is computed locally and deterministically, so it is instant and private. Ideal for roofing, construction, contractor-estimating, home-improvement, solar-install and architecture app developers, take-off and material-ordering tools, and trade software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is roofing-specific geometry; for a general grade or gradient use a slope API.

api.oanor.com/roofpitch-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Lumber Calculator API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Lumber Calculator API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Lumber Calculator API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does Lumber Calculator API cost?
Lumber Calculator API has a free tier with 100 calls / month. Paid plans start at €9.00 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is Lumber Calculator API GDPR-compliant?
All requests to Lumber Calculator API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/lumber-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/lumber-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/lumber-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/lumber-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.