{"openapi":"3.0.3","info":{"title":"BuildCalcPro Construction Formula API","version":"1.0.0","description":"Free REST API for construction material calculations. No API key required. Calculate concrete, roofing, drywall, paint, tile, gravel, insulation, mulch, brick, and lumber quantities.","contact":{"name":"BuildCalcPro","url":"https://buildcalcpro.org"}},"servers":[{"url":"https://buildcalcpro.org","description":"Production"}],"paths":{"/api/calculate/concrete":{"get":{"operationId":"calculateConcrete","summary":"Calculate concrete volume and bags needed","description":"Calculate concrete for slabs, footings, or columns. Returns cubic yards, cubic feet, cubic meters, and number of 60lb/80lb bags.","parameters":[{"name":"length_ft","in":"query","required":true,"schema":{"type":"number"},"description":"Length in feet"},{"name":"width_ft","in":"query","required":true,"schema":{"type":"number"},"description":"Width in feet"},{"name":"thickness_in","in":"query","schema":{"type":"number","default":4},"description":"Thickness in inches"},{"name":"shape","in":"query","schema":{"type":"string","enum":["slab","footing","column","cylinder"],"default":"slab"}},{"name":"quantity","in":"query","schema":{"type":"number","default":1}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/roofing":{"get":{"operationId":"calculateRoofing","summary":"Calculate shingle bundles and roofing materials","description":"Calculate shingle bundles, roofing squares, underlayment rolls, and ridge caps based on building dimensions and roof pitch.","parameters":[{"name":"length_ft","in":"query","required":true,"schema":{"type":"number"},"description":"Building length in feet"},{"name":"width_ft","in":"query","required":true,"schema":{"type":"number"},"description":"Building width in feet"},{"name":"pitch","in":"query","schema":{"type":"string","default":"4/12"},"description":"Roof pitch (e.g. 4/12, 6/12)"},{"name":"waste_pct","in":"query","schema":{"type":"number","default":10},"description":"Waste percentage"}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/drywall":{"get":{"operationId":"calculateDrywall","summary":"Calculate drywall sheets and accessories","description":"Calculate drywall sheets, joint tape, compound, and screws needed for a room.","parameters":[{"name":"length_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"width_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"height_ft","in":"query","schema":{"type":"number","default":8}},{"name":"include_ceiling","in":"query","schema":{"type":"boolean","default":false}},{"name":"sheet_size","in":"query","schema":{"type":"string","enum":["4x8","4x12"],"default":"4x8"}},{"name":"doors","in":"query","schema":{"type":"number","default":0}},{"name":"windows","in":"query","schema":{"type":"number","default":0}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/paint":{"get":{"operationId":"calculatePaint","summary":"Calculate gallons of paint needed","description":"Calculate gallons and liters of paint for room walls.","parameters":[{"name":"length_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"width_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"height_ft","in":"query","schema":{"type":"number","default":8}},{"name":"doors","in":"query","schema":{"type":"number","default":0}},{"name":"windows","in":"query","schema":{"type":"number","default":0}},{"name":"coats","in":"query","schema":{"type":"number","default":2}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/tile":{"get":{"operationId":"calculateTile","summary":"Calculate tiles needed for floors or walls","parameters":[{"name":"room_length_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"room_width_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"tile_length_in","in":"query","schema":{"type":"number","default":12}},{"name":"tile_width_in","in":"query","schema":{"type":"number","default":12}},{"name":"grout_gap_in","in":"query","schema":{"type":"number","default":0.125}},{"name":"waste_pct","in":"query","schema":{"type":"number","default":10}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/gravel":{"get":{"operationId":"calculateGravel","summary":"Calculate gravel tonnage and volume","parameters":[{"name":"length_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"width_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"depth_in","in":"query","schema":{"type":"number","default":4}},{"name":"gravel_type","in":"query","schema":{"type":"string","enum":["pea-gravel","crushed-stone","river-rock","crusher-run","limestone","decomposed-granite"],"default":"crushed-stone"}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/insulation":{"get":{"operationId":"calculateInsulation","summary":"Calculate insulation depth and quantity","parameters":[{"name":"area_sqft","in":"query","required":true,"schema":{"type":"number"}},{"name":"target_r_value","in":"query","schema":{"type":"number","default":38}},{"name":"insulation_type","in":"query","schema":{"type":"string","enum":["fiberglass-batt","blown-cellulose","blown-fiberglass","spray-open","spray-closed"],"default":"fiberglass-batt"}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/mulch":{"get":{"operationId":"calculateMulch","summary":"Calculate mulch, soil, or compost volume","parameters":[{"name":"length_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"width_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"depth_in","in":"query","schema":{"type":"number","default":3}},{"name":"material","in":"query","schema":{"type":"string","enum":["mulch","topsoil","compost","gravel","sand"],"default":"mulch"}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/brick":{"get":{"operationId":"calculateBrick","summary":"Calculate bricks/blocks and mortar needed","parameters":[{"name":"wall_length_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"wall_height_ft","in":"query","required":true,"schema":{"type":"number"}},{"name":"brick_type","in":"query","schema":{"type":"string","enum":["standard-brick","modular-brick","cmu-8","cmu-12"],"default":"standard-brick"}},{"name":"waste_pct","in":"query","schema":{"type":"number","default":10}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}},"/api/calculate/lumber":{"get":{"operationId":"calculateLumber","summary":"Calculate board feet for lumber","parameters":[{"name":"thickness_in","in":"query","schema":{"type":"number","default":2}},{"name":"width_in","in":"query","schema":{"type":"number","default":4}},{"name":"length_ft","in":"query","schema":{"type":"number","default":8}},{"name":"quantity","in":"query","schema":{"type":"number","default":1}}],"responses":{"200":{"description":"Calculation results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculationResponse"}}}}}}}},"components":{"schemas":{"CalculationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"calculator":{"type":"string"},"inputs":{"type":"object","additionalProperties":true},"results":{"type":"object","additionalProperties":true},"formula":{"type":"string"},"notes":{"type":"string"}}}}}}