Brick calculator
623 bricks is the order for a 10 m² wall in 215 by 65 mm bricks with 10 mm joints and the default 5 percent waste. Enter the area, the brick face and the joint, raise the waste for fancier bonds and buy a whole number. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Area
- 10
- Brick length
- 215
- Brick height
- 65
- Joint
- 10
- Area m2
- 10 bricks
- Brick length mm
- 215
- Brick height mm
- 65
- Joint mm
- 10
This brick calculator estimates how many bricks you need for a wall or other flat masonry face once you know the wall area in square metres, the brick face length and height in millimetres, and the mortar joint thickness. It builds a modular face unit that includes the joint on both edges, divides the wall area by that module area, then applies an optional waste percentage for cuts, breakage, and bond pattern, and rounds up to a whole brick count. A common check uses a ten square metre wall, two-hundred-fifteen by sixty-five millimetre bricks, ten millimetre joints, and five percent waste, which yields a few hundred bricks rather than a rough bag-of-bricks guess. The engine is pure deterministic arithmetic with no network calls, no sampling, and no date-dependent shortcuts.
What your brick count tells you
Brick orders are almost always face-module problems: each brick occupies a rectangle that is larger than the clay face by the thickness of the mortar joint on the length and height edges. If you divide wall area by the bare brick face alone you under-order, because the joints also cover the wall. There is no catalogue of pallet sizes and no site-specific bond layout baked into the core number: you get a geometric take-off so you can raise waste for half-bats, openings, or awkward returns.
Where brick take-offs fit in DIY, trade quotes, and software
Homeowners meet this calculation when a garden wall, chimney repair, or garage face needs a second pallet after a surprise waste of cut bricks, or when a materials list must not overshoot the budget before the weekend pour. Bricklayers and small contractors use the same numbers to turn a measured elevation into a shopping list before they leave the merchant yard, raising waste for English or Flemish bond patterns that use more half-bats than a simple stretcher course.
Estimators embed the contract in take-off tools so a room or elevation schedule of area, face size, joint, and waste becomes an integer brick count without a spreadsheet full of hidden cells. Product and education tools show learners why a ten millimetre joint on a modular brick face changes the count far more than eyeballing the bare face area.
Pair it with paint, mulch, or grout helpers when you are building a small lab of free, deterministic home-improvement calculators, and keep site judgement for openings, piers, and specials that your elevation requires beyond the pure face-module count.
What you can do with it
DIY garden and house wall shopping lists
Convert measured m², brick face size, and mortar joint into an integer brick order before you buy at the merchant.
FAQ
What does the brick calculator cost?
It is free in your browser on this page.
What happens if a dimension is zero or negative?
Wall area, brick length, brick height, and joint must all be strictly positive. Waste percent may be zero but not negative.
Why include the mortar joint in the module?
Each brick occupies more wall area than its clay face alone because mortar fills the gaps. Ignoring the joint under-counts bricks. This tool uses the standard modular face (length+joint) by (height+joint).
Does this include openings, piers, or mortar volume?
No. Subtract window and door areas from your wall area before calling, and use a dedicated mortar calculator if you need sand and cement volumes. This page returns brick count only.
Should I raise the waste for English or Flemish bond?
Yes. Those bonds use more half-bats than a simple stretcher course, so more bricks end up cut. The default is 5 percent; raise it for those patterns and for openings or awkward returns, because the count itself is a pure geometric take-off.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/home/bricks \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"area":10,"brick_length":215,"brick_height":65,"joint":10}'const res = await fetch("https://api.kit.forhosting.com/home/bricks", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"area": 10,
"brick_length": 215,
"brick_height": 65,
"joint": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/bricks",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"area": 10,
"brick_length": 215,
"brick_height": 65,
"joint": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/bricks", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"area":10,"brick_length":215,"brick_height":65,"joint":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"area":10,"brick_length":215,"brick_height":65,"joint":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/bricks", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"area": 10,
"brick_length": 215,
"brick_height": 65,
"joint": 10
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.bricks",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What the brick estimate means and what the response contains
This calculator returns the parsed wall area in square metres, the brick face length and height in millimetres, the joint thickness, the waste percent applied, the module length and height, the module area in square metres, the exact fractional brick count before waste, the count after waste as a float, the final integer bricks_required after ceiling, a unit tag, the precision used, a method tag, and a short formula string you can audit. Rejected cases include missing area, brick face dimensions, or joint, non-finite values, magnitudes above the documented ceiling, and any dimension that is zero or negative, because a zero joint or zero area does not define a positive brick total.
How wall area, face size, joint, and waste are read and stay reproducible
Prefer area for the wall surface in square metres, with aliases wall_area, total_area, surface, sqm, and m2 so forms and query strings can reuse the same contract. Brick face length accepts brick_length plus aliases length, L, and brick_l; face height accepts brick_height plus height, H, brick_h, brick_width, and width for callers who label the short face edge as width. Joint thickness accepts joint plus mortar_joint, joint_width, mortar, and j. Optional waste_percent defaults to five percent and may be set via waste, waste_margin, margin, or waste_pct; zero waste is allowed when you want a pure geometric fill, but negative waste is rejected. Optional precision, with aliases decimals and dp, chooses decimal places for the non-integer numeric fields, defaulting to four and capped at fifteen so JSON goldens stay stable while bricks_required remains an integer. Computation adds the joint to each face edge, converts the module from square millimetres to square metres by dividing by one million, divides area by module area for bricks_exact, multiplies by one plus waste over one hundred, then ceilings with a tiny epsilon so values that sit just under an integer from floating-point noise still round up cleanly. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the module formula yourself.
Where brick take-offs fit in DIY, trade quotes, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a phone check on site to an automated pipeline without changing the mathematical result.
Integration use cases
Trade quotes and elevation take-offs
Turn elevation schedules of area, modular face size, joint, and waste into reproducible bricks_required values for written quotes.
Estimating software and CI fixtures
Seed deterministic bricks_required and module_area_m2 values for unit tests, property checks, and automated pipelines.
Technical questions
How is the brick count calculated?
module_area_m² = ((brick_length_mm + joint_mm) × (brick_height_mm + joint_mm)) / 1e6; bricks_exact = area_m² / module_area_m²; bricks_required = ceil(bricks_exact × (1 + waste_percent/100)). Default waste is 5%.