Construction Calculator API

v1.0.0 · 65 calculators · imperial & metric · JSON

Contractor-grade material take-offs and planning costs, from the same tested formulas that run the Smart Calculator sites (smartroofingcalculator.com, smartdeckingcalculator.com, smartfencingcalculator.com, smarttilecalculator.com, smartgravelcalculator.com).

Access is through RapidAPI: subscribe there, then call the RapidAPI host with your key. Direct calls to this origin are refused.

Get a free API key on RapidAPI OpenAPI 3.1 spec

What you can build

Quick start

Use the host shown on the RapidAPI listing; the one below is illustrative.

curl --get https://construction-calculator-api.p.rapidapi.com/v1/roofing/shingles \
  -H "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: construction-calculator-api.p.rapidapi.com" \
  -d length=50 -d width=40 -d pitch=6 -d wastePercent=10
{ "endpoint": "/v1/roofing/shingles", "units": "imperial",
  "result": { "roofArea": 2236.068, "squares": 24.5967, "bundles": 74, … },
  "units_of_measure": { "roofArea": "sq ft", "bundles": "count", … },
  "notes": ["Average residential roof size."], "warnings": [], "requestId": "…" }
// JavaScript (Node 18+ or the browser, through your own backend so the key stays private)
const r = await fetch("https://construction-calculator-api.p.rapidapi.com/v1/fencing/posts?length=150&postSpacing=8&gates=1", {
  headers: { "X-RapidAPI-Key": process.env.RAPIDAPI_KEY, "X-RapidAPI-Host": "construction-calculator-api.p.rapidapi.com" },
});
const { result } = await r.json();
# Python
import os, requests
r = requests.get("https://construction-calculator-api.p.rapidapi.com/v1/drywall/room",
    params={"length": 12, "width": 12, "height": 8},
    headers={"X-RapidAPI-Key": os.environ["RAPIDAPI_KEY"], "X-RapidAPI-Host": "construction-calculator-api.p.rapidapi.com"})
print(r.json()["result"])

Every endpoint takes GET query parameters or a POST JSON body. Add units=metric to send and receive m, mm, m², m³, kg, t and L. Counts (bundles, sheets, bags) and money are never converted.

Errors

{ "error": { "status": 400, "code": "INVALID_PARAMETER",
    "message": "'length' must be greater than 0 ft",
    "details": [{ "param": "length", "issue": "must be greater than 0 ft" }] },
  "requestId": "…" }

Codes: INVALID_PARAMETER, MISSING_PARAMETER, INVALID_JSON, PAYLOAD_TOO_LARGE (400/413) · UNAUTHORIZED (401) · NOT_FOUND (404) · METHOD_NOT_ALLOWED (405) · RATE_LIMITED (429) · INTERNAL_ERROR (500).

Endpoints

Roofing 22

GET /v1/roofing/pitchRoof pitch → angle, slope %, pitch factor, ridge height
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/areaRoof area and squares from a footprint
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/shinglesShingle bundles and squares
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/underlaymentUnderlayment rolls
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/drip-edgeDrip edge pieces
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/ridge-capHip & ridge cap bundles
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/starter-stripStarter strip bundles
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/nailsRoofing nails (count and pounds)
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/sheathingPlywood / OSB roof sheathing sheets
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/flashingFlashing linear feet, pieces and material cost ranges
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/valleysValley flashing / ice-and-water
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/ventilationAttic ventilation (NFA, intake & exhaust vents)
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/waste-factorWaste factor with complexity add-ons
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/guttersGutters, downspouts, hangers, corners
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/trussesTruss count, rafter length, ridge height
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/metal-costMetal roof installed cost estimate
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/flat-roofFlat roof membrane rolls & adhesive
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/tile-roofConcrete / clay / slate roof tiles and weight
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/coatingRoof coating gallons and 5-gal pails
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/snow-loadSnow load on a roof vs its capacity
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/laborRoofing crew days and labor hours
smartroofingcalculator.com (src/lib/calculations.ts)
GET /v1/roofing/solar-potentialRooftop solar panels, kW, output and payback
smartroofingcalculator.com (src/lib/calculations.ts)

Decking 9

GET /v1/decking/costDeck cost estimate (low–high) with breakdown
smartdeckingcalculator.com (src/lib/calculator.ts)
GET /v1/decking/boardsDeck boards (rows × boards per row + pattern waste)
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)
GET /v1/decking/joistsJoist count and linear feet
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)
GET /v1/decking/screwsDeck screws per sq ft, total, pounds and boxes
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)
GET /v1/decking/postsDeck posts per beam and total
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)
GET /v1/decking/footingsFooting diameter and concrete bags per post
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)
GET /v1/decking/balustersRailing balusters under the 4-inch rule
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)
GET /v1/decking/cable-railingCable railing runs, cable length, posts, tensioners
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)
GET /v1/decking/stainDeck stain / sealer gallons
smartdeckingcalculator.com + DeckFenceMath.kt (studio deck app port)

Fencing 9

GET /v1/fencing/postsFence posts (line + gate)
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/picketsFence pickets
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/railsFence rails and rail sticks
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/post-concreteConcrete bags to set fence posts
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/panelsPrefab fence panels, posts and brackets
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/chain-linkChain-link fence full takeoff
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/electricElectric fence wire, posts, insulators, ground rods, energizer
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/acreageFence length to enclose an acreage
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt
GET /v1/fencing/stainFence stain gallons
smartfencingcalculator.com (src/lib/calculations.ts) + DeckFenceMath.kt

Drywall 4

GET /v1/drywall/sheetsDrywall sheets for an area
Studio drywall app (DrywallMath) via InteriorMath.kt
GET /v1/drywall/roomFull drywall takeoff for a room
Studio drywall app (DrywallMath) via InteriorMath.kt
GET /v1/drywall/finishingJoint compound, tape and corner bead
Studio drywall app (DrywallMath) via InteriorMath.kt
GET /v1/drywall/screwsDrywall screws per sheet and total
Studio drywall app (DrywallMath) via InteriorMath.kt

Insulation 3

GET /v1/insulation/blown-inBlown-in insulation bags to reach a target R-value
Studio insulation app via InteriorMath.kt; smart-insulation-guide
GET /v1/insulation/battsWall batt bundles
Studio insulation app via InteriorMath.kt; smart-insulation-guide
GET /v1/insulation/r-value-thicknessThickness and units to add for a target R-value
smartroofingcalculator.com (calcInsulation)

Tile 5

GET /v1/tile/countTiles and boxes for an area
smarttilecalculator.com (src/lib/tileCalculations.ts) + InteriorMath.kt
GET /v1/tile/groutGrout pounds, bags and coverage per bag
smarttilecalculator.com (src/lib/tileCalculations.ts) + InteriorMath.kt
GET /v1/tile/thinsetThinset mortar bags by trowel notch
smarttilecalculator.com (src/lib/tileCalculations.ts) + InteriorMath.kt
GET /v1/tile/backer-boardCement backer board sheets and screws
smarttilecalculator.com (src/lib/tileCalculations.ts) + InteriorMath.kt
GET /v1/tile/costTile job cost (material band + supplies + labor)
smarttilecalculator.com (src/lib/tileCalculations.ts) + InteriorMath.kt

Landscape & Aggregates 6

GET /v1/landscape/gravelGravel / crushed stone: cubic yards, tons, bags, truckloads, cost
smartgravelcalculator.com (src/lib/calculators*.ts) + YardMath.kt
GET /v1/landscape/mulchMulch cubic yards, bags and bulk vs bagged cost
smartgravelcalculator.com (src/lib/calculators*.ts) + YardMath.kt
GET /v1/landscape/topsoilTopsoil cubic yards, tons and bags
smartgravelcalculator.com (src/lib/calculators*.ts) + YardMath.kt
GET /v1/landscape/sandSand cubic yards, tons and 50 lb bags
smartgravelcalculator.com (src/lib/calculators*.ts) + YardMath.kt
GET /v1/landscape/sodSod rolls/slabs, pallets, weight and trips
Studio sod app (SodMath) via YardMath.kt
GET /v1/landscape/grass-seedGrass seed pounds and bags by species
Studio sod app (SodMath) via YardMath.kt

Concrete 2

GET /v1/concrete/slabConcrete slab: cubic yards, bags, gravel base, ready-mix vs bags
smartgravelcalculator.com (src/lib/calculators*.ts) + YardMath.kt
GET /v1/concrete/volumeConcrete for slabs, footings, round columns or holes → yards and bags
DeckFenceMath.kt (DeckFootings) + smartgravelcalculator.com

Paint 1

GET /v1/paint/roomPaint and primer gallons for a room
API-authored (label-coverage method)

Conversions 4

GET /v1/convert/unitsConvert length, area, volume, mass or temperature
ConversionFormulas.kt (studio converter), exact SI factors
GET /v1/convert/pitchRoof pitch ↔ degrees ↔ percent slope
smartroofingcalculator.com (calcPitch)
GET /v1/convert/board-feetLumber board feet and linear feet
API-authored (standard lumber board-foot rule)
GET /v1/convert/volume-from-areaArea × depth → cubic feet, cubic yards, cubic meters
smartgravelcalculator.com (cubicYards)

Try it free on RapidAPI

Planning estimates, not engineering. © Dixon App Studio · Try the formulas by hand: roofing, decking, fencing, tile, gravel · developer page