Craft Quantities: construction material calculators
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Construction quantities from cited calculators, takeoffs, a planner and house drawings. No prices.
| Author | com.craftquantities |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 575 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Craft Quantities: construction material calculators": {
"url": "https://api.craftquantities.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (38)
searchread-onlySearches the site's construction pages for a question in everyday words, such as how much concrete or tile a job needs, and returns the matching pages: id, kind, title, link, description and slug. It finds; it computes nothing.
Parameters:
query(required) — string — What to find, such as "concrete slab" or "skirting board".kinds— array — Only these kinds of result; every kind when left out.limit— integer
Hints: read-only yes · destructive no · idempotent yes · open-world no
fetchread-onlyReturns the full text of one Craft Quantities page, identified by its id: what the page works out, its inputs or measurements with units and opening values, and its sources.
Parameters:
id(required) — string — A page id, such as calculator:concrete-calculator, takeoff:concrete-slab or diagnosis:drain-gurgles.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_calculatorread-onlyReturns the input fields of one calculator, identified by its slug: each field's id, label, accepted units, range and default value in metric and US units, with the calculator's version, page and citation. It computes nothing.
Parameters:
slug(required) — string — The calculator's slug, such as concrete-calculator.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
calculateread-onlyComputes the result of one calculator, identified by its slug, from the input values given: the amount of material a job needs, such as the bags of concrete for a slab or the sheets of drywall for a room, counted in bags, sheets, studs, tiles, litres, gallons, cubic yards or m³. Returns it in metric and US units with the inputs used, sources, a citation and the page link. No prices.
Parameters:
slug(required) — string — The calculator's slug, such as concrete-calculator.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.inputs— object — The calculator's input values, by input id (an unknown id is refused with the accepted ids). A length, area, volume or other measured input takes "12 ft", "3.5 m", "8' 3 1/2\"" or {"value": 12, "unit": "ft"}; a count or percentage takes a number; a select takes one of its option values. Inputs left out take the value the calculator's page opens on.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.explain— boolean — true adds the working: the inputs as the calculator received them, every intermediate figure its own compute reports with its unit, the range check and the unit restatement, ending on the same figures. The answer's figures are identical either way.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
convert_unitsread-onlyConverts one value from one unit to another, for example 2 m³ to cubic yards, with the exact factor the site's calculators apply, and returns the converted value and the factor.
Parameters:
value(required) — numberfrom(required) — stringto(required) — stringdetail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.dimension— string — Only where a unit names more than one kind of quantity.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_sourcesread-onlyWhere does a figure come from, and how is it cited? Returns a calculator's sources as it cites them, the codes and standards they name, the site's standards pages, and a citation in plain, APA, Harvard and BibTeX. It adds no source the calculator does not cite.
Parameters:
slug(required) — string — The calculator's slug, such as concrete-calculator.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
open_in_site_linkread-onlyReturns a link that opens a construction calculator's page on craftquantities.com with the reader's figures filled in and their unit system, so a person can see or change the working on the page.
Parameters:
slug(required) — string — The calculator's slug, such as concrete-calculator.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.inputs— object — The calculator's input values, by input id (an unknown id is refused with the accepted ids). A length, area, volume or other measured input takes "12 ft", "3.5 m", "8' 3 1/2\"" or {"value": 12, "unit": "ft"}; a count or percentage takes a number; a select takes one of its option values. Inputs left out take the value the calculator's page opens on.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_takeoffread-onlyReturns the measurements one whole-job takeoff needs, identified by its id: each measurement's id, unit and opening figure, its build-up choices, the calculators it runs and what it leaves out.
Parameters:
takeoff(required) — string — A takeoff id, such as concrete-slab.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
run_takeoffread-onlyWorks one whole-job takeoff, identified by its id, from the measurements given: the materials list of a job such as a slab or a deck, each line from its own calculator, with what to order, waste allowances, metric and US units, labour hours (not a price), what is not counted, a citation and the page link. It does not size structure.
Parameters:
takeoff(required) — string — A takeoff id, such as concrete-slab.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.leaveOut— array — Rows the reader leaves out of the job: still worked and shown, not put in the project or counted in labour.selection— object — Build-up choice id → option id, the takeoff's own (a stud size, an insulation, a cladding). Choices left out take the page's own for the system.allowances— object — Row → an allowance the reader sets: a percentage (cutting waste, overlap), or the option an allowance follows (a lay pattern). Row names are the takeoff's steps (the calculator slug, or the step key where one runs twice).inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.measurements— object — Measurement id → value, each length, area or volume with its unit ("12 ft", {"value": 3.6, "unit": "m"}); counts as numbers. Ids are those of the takeoff; any left out opens at the page's own figure.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_exampleread-onlyReturns one worked construction estimate from the site, identified by its slug: the measurements, the steps in order with the calculator each uses, the figure each step pins and the waste chosen.
Parameters:
slug(required) — string — A worked example's slug, such as bathroom-gutted-and-retiled.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
run_exampleread-onlyRe-runs every pinned step of a worked construction estimate now, in both unit systems, and returns whether each still meets the published figure.
Parameters:
slug(required) — string — A worked example's slug, such as bathroom-gutted-and-retiled.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_project_file_from_calculationsread-onlyCreates one My Project backup file from a list of calculator lines (each a calculator slug and its input values). Each line is computed as the site's page adds it; the reader restores the file on craftquantities.com as a new project. Nothing is stored or sent; no prices.
Parameters:
calculators(required) — array — The calculator lines: each a slug and its input values.name— string — The new project's name.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_project_file_from_takeoffsread-onlyCreates one My Project backup file from a list of whole-job takeoffs (each a takeoff id and its measurements). Each takeoff's lines are worked as its page commits them; the reader restores the file on craftquantities.com as a new project. Nothing is stored or sent; no prices.
Parameters:
takeoffs(required) — array — The takeoffs: each an id and its measurements.name— string — The new project's name.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_project_file_from_houseread-onlyCreates one My Project backup file from a House Estimator form: the house's lines, and its drawing, which the site's canvas reopens. The reader restores the file on craftquantities.com as a new project. Nothing is stored or sent; no prices.
Parameters:
houses(required) — array — The House Estimator form (one house; two give their lines without a drawing).name— string — The new project's name.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_project_file_from_planread-onlyCreates one My Project backup file from a room plan: one planned space, or several spaces and a roof. Its lines and its plan are saved as the site's planner saves them; the reader restores the file on craftquantities.com as a new project. Nothing is stored or sent; no prices.
Parameters:
plan(required) — object — One planned space, or a planned project of spaces and a roof.name— string — The new project's name.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_project_file_from_drawingread-onlyCreates one My Project backup file from a Construction Canvas drawing: its lines, and the drawing itself, which the site's canvas reopens. The reader restores the file on craftquantities.com as a new project. Nothing is stored or sent; no prices.
Parameters:
drawing(required) — object — The drawing: a house form, shapes, drawing commands or a canvas document.name— string — The new project's name.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.
Hints: read-only yes · destructive no · idempotent yes · open-world no
check_quoteread-onlyIs a builder's quote right on quantities? Reads a contractor's quote (pasted text) against the reader's own job and returns each quoted quantity against the range the job's calculators give, the lines it leaves out or adds, and the questions to ask. Money is removed and not judged; a difference is a question, not a verdict.
Parameters:
job(required) — string — The quote check: bathroom-quote, plastering-quote, or a takeoff's ({takeoff id}-quote).quote(required) — string — The quote's text. Prices may be left in; they are taken out before reading.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.selection— object — Build-up choice id → option id, the takeoff's own (a stud size, an insulation, a cladding). Choices left out take the page's own for the system.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.measurements— object — Measurement id → value, each length, area or volume with its unit ("12 ft", {"value": 3.6, "unit": "m"}); counts as numbers. Ids are those of the takeoff; any left out opens at the page's own figure.
Hints: read-only yes · destructive no · idempotent yes · open-world no
estimate_houseread-onlyEstimates the materials to build one rectangular house of one or two storeys from a few figures (footprint, walls, roof, openings): every quantity with what to order, assumptions, plans of each storey and labour hours, as the site's House Estimator does. It counts; it does not design a structure. No prices.
Parameters:
pitch— string — Roof pitch, rise in 12.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.family— stringsystem— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.values— object — The form's figures, each length with its unit: length, width, storeyHeight, eaveOverhang, rakeOverhang, slabThickness, footingWidth, footingDepth, trenchDepth, windowWidth, windowHeight, doorWidth, doorHeight ("12 m", "40 ft"); and the counts partitions, windows, outsideDoors, interiorDoors, iceDamEaves. Any left out opens where the page opens it.example— string — Start from one of the site's example houses (its slug) in place of the estimator's opening house.storeys— integerselection— object — The exterior wall's build-up choices.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.roofFamily— stringroofSelection— object
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_plannerread-onlyReturns the room planner's fields for one kind of space: its figures, surfaces and finish ids, scope questions and rows, with their ids.
Parameters:
kind(required) — string — The kind of space: a room or a bathroom (from its size, doors and windows), or a slab, deck, driveway, fence, loft, retaining wall, exterior wall or stair.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
plan_roomread-onlyPlans one space, such as a room or a bathroom, from its size, openings and the finishes chosen, as the site's room planner does, and returns its materials list: each row with its quantity, what it still needs, what is not built and why, and labour hours. Quantities only; it does not size structure.
Parameters:
kind(required) — string — The kind of space: a room or a bathroom (from its size, doors and windows), or a slab, deck, driveway, fence, loft, retaining wall, exterior wall or stair.figures(required) — object — The space's figures, by the planner's ids, each a length with its unit (a room: length, width, height, wallThickness; a fence: length, height; a stair: totalRise, width …).name— stringdoors— objectscope— object — Scope question name → answer value, by the planner's ids.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.inputs— object — Branch id → { calculator input id: value in its base unit }.intent— string — A trade, or everything.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.windows— objectfinishes— object — Surface role → finish id, by the planner's ids.leaveOut— array — Branch ids to leave out.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
plan_projectread-onlyPlans several spaces together, with an optional roof over them, as one project in the site's room planner, and returns each space's rows, every line together, labour hours and the plan. Quantities only; it does not size structure.
Parameters:
spaces(required) — array — The spaces, in order, each one planned space.roof— objectdetail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_drawingread-onlyDraws one plan on the Construction Canvas from the shapes, rooms laid out by adjacency on a grid, house figures, drawing commands, canvas document or template given, and returns its materials list, a plan of each level, labour hours, a link that opens the drawing on the canvas, and a file. It does not size structure.
Parameters:
name— string — The project's name in the file.house— object — The House Estimator's form: the house drawn as the estimator draws it.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.layout— object — Rooms by name, size and which room each stands against, laid out on a grid: shared walls drawn once as partitions, every snap or move reported, and each room checked to close.shapes— array — Simple shapes the assistant has read from the reader's words — a room, a deck, a patio, a bed, a path, a fence of legs and turns — compiled into the canvas's own commands. Every length with its unit.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.variant— string — With template: one of its two "what changes if" variants, by id; a wrong one is refused with the template's own list.commands— array — Drawing commands, in order, on the canvas's blank drawing (one storey; the wall, partition, window and door types). The whole request is at most 64 KiB.document— object — A Construction Canvas document (schema 1 to the canvas's current), opened and checked by the canvas's own opener.template— string — A Construction Canvas template's slug (the template index lists them: single-room, deck, two-car-garage …): the drawing its page shows, in the reader's system, with a link that opens it.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
import_quoteread-onlyTurns a supplier's or builder's quote the reader has, prices and all, into a My Project file, as the site's Quote to Estimate does, and checks its own arithmetic. The prices are the reader's figures from their document, not the site's.
Parameters:
quote(required) — string — The quote's text, one item to a line, with its prices.name— stringdetail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.currency— string — The quote's currency symbol, where the quote does not show it.supplier— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
diagnose_symptomread-onlyMatches one building defect described in plain words, such as a crack, a damp patch, a water leak or a tripping breaker, to the site's diagnosis pages, and returns the candidate causes, what tells them apart, the checks in order and when to call a professional; ambiguous words return candidates. It does not say which cause it is.
Parameters:
symptom(required) — string — What the reader sees, hears or smells, in their own words: "my breaker keeps tripping when the kettle is on".limit— integer — How many diagnoses at most. Left out: one when the match is clear, up to three when it is not.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.
Hints: read-only yes · destructive no · idempotent yes · open-world no
solve_backwardsread-onlyWorks out how far one amount of material goes, such as 40 bags of concrete or 24 gallons of paint: the area it covers and the size of slab, room, deck or wall that is, as the site's Solve Backwards page works it, waste taken off. It does not size structure.
Parameters:
have(required) — How much the reader has: a count for counted things (20, "20 sheets"); a measure with its unit for paint, concrete, soil ("24 gal", "2 m3", {"value": 90, "unit": "L"}).page— string — A Solve Backwards page's slug, such as wall-paint, drywall-sheets, bricks, concrete-bags, ready-mix-concrete.query— string — Or what the reader has, in words ("sheets of drywall", "bags of concrete"), when the slug is not known.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.system— string — The page's system; it sets the market's product (a 4 × 8 ft sheet in imperial). Left out: the unit's system, else metric.settings— object — Optional: another calculator input, with its unit (a slab's thickness "4 in", coats 3). The inputs the page grows cannot be set.
Hints: read-only yes · destructive no · idempotent yes · open-world no
market_documentsread-onlyFinds which family of building codes or standards governs one kind of work in one market (US, Canada, UK or Australia, or a country mapped to one), who publishes it and the site's standards page. It does not say which edition is in force: adoption is local, and the answer names who decides.
Parameters:
market(required) — string — US, CA, UK, AU or INTL — or a country's name ("England", "Canada"); a country the site has no market for answers as INTL.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.subject— string — The work, in words: "kitchen wiring", "stair handrails", "gas boiler flue".calculator— string — Or a calculator's slug: the subjects its own sources name.
Hints: read-only yes · destructive no · idempotent yes · open-world no
translate_termread-onlySays one building-trade word in US, Canadian, UK and Australian usage, such as plasterboard (drywall in the US) or skirting (baseboard): each market's word, how close each is, false-friend warnings, unit traps such as US and imperial gallons or short and metric tons with their conversions, and the market's document family. Brand names, plurals and misspellings match too.
Parameters:
term(required) — string — A trade word or phrase as one market says it, a brand name said for the product, or a misspelling: "plasterboard", "gyprock", "casing", "skirting", "eavestrough", "a yard of concrete".to— string — The market to say it in.from— string — The market whose word it is, where known.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_supplier_quote_requestread-onlyCreates a request for quote from a materials list or bill of materials (the lines of a takeoff, house, plan or calculation, or the reader's own): Markdown to paste, a CSV, the site's link a merchant opens to price it, and a My Project file. It carries no price and sends nothing to anyone.
Parameters:
items(required) — arraynote— string — A note to the merchants: delivery address area, dates, access.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.project— string — The project's name, as the merchants will see it.currency— string — The currency prices are asked in; left out, the market's.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_benchmarkread-onlyReturns items of the Construction Quantities Benchmark, a CC BY 4.0 dataset of construction quantity questions built from the site's calculator test vectors: each with its inputs and a prompt in metric and US units, the expected answer in each system with its tolerance, and the worked steps. A page of calculators at a time or one calculator's items, with the download link and how to cite it.
Parameters:
page— integer — Which page of the benchmark, from 1: each page holds the items of a few calculators, in slug order. 1 when left out.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.calculator— string — One calculator's items only, by its slug, such as concrete-calculator.
Hints: read-only yes · destructive no · idempotent yes · open-world no
measure_sketchread-onlyMeasures areas, perimeters and lengths from points read off a floor plan, sketch or photo (pixel coordinates) and one known reference (a figured dimension, an ID-1 card or an A4 or Letter sheet): scaled figures in metric and US units with an uncertainty band, closure and crossing checks, and a canvas link. It receives no image.
Parameters:
shapes(required) — array — The outlines and lines read off the image, in its pixels.reference(required) — object — ONE known size in the same image: a figured dimension, or an object of known size by its four corners.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.pixelError— number — How far any point may be off, in pixels: it sets the band.
Hints: read-only yes · destructive no · idempotent yes · open-world no
export_drawingread-onlyExports a Construction Canvas drawing (a template, shapes, a room layout, drawing commands, house figures or a canvas document) as DXF for CAD, with the site's CQ-* layers, and as SVG, one plan per level in millimetres, or as one openBIM IFC4 model with quantity sets, as the canvas's own download writes them; a file too large to return is rebuilt from the drawing's link.
Parameters:
house— object — The House Estimator's form: the house drawn as the estimator draws it.level— string — One level by its id or name; left out, every level with something on its plan.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.layout— object — Rooms by name, size and which room each stands against, laid out on a grid: shared walls drawn once as partitions, every snap or move reported, and each room checked to close.shapes— array — Simple shapes the assistant has read from the reader's words — a room, a deck, a patio, a bed, a path, a fence of legs and turns — compiled into the canvas's own commands. Every length with its unit.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.formats— array — dxf, svg, ifc (openBIM IFC4: one file for the whole drawing, every level, with quantity sets), or several; left out, dxf and svg.variant— string — With template: one of its two "what changes if" variants, by id; a wrong one is refused with the template's own list.commands— array — Drawing commands, in order, on the canvas's blank drawing (one storey; the wall, partition, window and door types). The whole request is at most 64 KiB.document— object — A Construction Canvas document (schema 1 to the canvas's current), opened and checked by the canvas's own opener.template— string — A Construction Canvas template's slug (the template index lists them: single-room, deck, two-car-garage …): the drawing its page shows, in the reader's system, with a link that opens it.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
layout_reinforcementread-onlyLays out reinforcing bars in a rectangular slab or footing from the bar size, spacing and cover the engineer gives: bars each way, bar lengths, total length with lap, stock sticks, weight where the site's calculator carries the size, and the layout as SVG and DXF. A quantity layout, not a design: it does not size structure or check a code.
Parameters:
length(required) — Along x, with its unit.width(required) — Along y, with its unit.cover(required) — The cover to the bars on plan, as the engineer gives it.barSize(required) — string — As the engineer gives it: #4, 15M, N12, H12, T12 or 12 mm.mats— One mat, or two (top and bottom) laid out alike.chairs— object — Count the bar supports too, from the supplier's support spacing.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.element— A slab, or a pad or strip footing, as a rectangle on plan.formats— array — The drawing's files: svg, dxf or both (the default).spacing— The spacing both ways, as the engineer gives it.widthwise— object — The bars running along the width (spaced along the length): a spacing of their own, or a count.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.lapPercent— number — The lap-splice allowance on the total; left out, the Rebar Calculator's own default.lengthwise— object — The bars running along the length (spaced across the width): a spacing of their own, or a count.
Hints: read-only yes · destructive no · idempotent yes · open-world no
calculate_batchread-onlyRuns up to 25 construction calculator calculations in one request, each a calculator slug or permanent id with its own input values, and returns each run's full answer in order (metric and US units, inputs used, sources, citation, page link) or that run's refusal; one refusal leaves the rest answered. No prices.
Parameters:
items(required) — array — The runs, 1 to 25, each one calculator and its inputs; answered in the same order.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — The market for every run that does not name its own.system— string — The unit system for every run that does not name its own.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
update_projectread-onlyChanges a My Project project carried in a state token (cqp1.…, from a project file answer): add or remove a room or space, change a dimension, add or remove a takeoff or calculator line, change a roof pitch, rename. Rebuilds every line and returns the new token, a short diff, the totals and a site link. The token is compressed, not encrypted; nothing is stored. No prices.
Parameters:
token(required) — string — A project state token from a project-file answer or an earlier update.file— boolean — true: the updated My Project file as well.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.operations— array — The changes, applied in order (0 to 20); none returns the project as the token holds it.
Hints: read-only yes · destructive no · idempotent yes · open-world no
classify_itemsread-onlyGroups a materials list, bill of materials, takeoff, plan or project (lines, calculator slugs or a project state token) by CSI MasterFormat 2018 division, by the site's own keyword rule over each line's calculator or words. A suggested grouping, not a specification; no Uniclass or NRM grouping is given. No prices.
Parameters:
lines— array — Lines of a takeoff, plan, house, drawing or bill: each a label, and the calculator slug where known.token— string — A project state token: its lines are grouped.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.calculators— array — Calculator slugs or permanent ids.
Hints: read-only yes · destructive no · idempotent yes · open-world no
resolve_idread-onlyResolves a permanent Craft Quantities id (such as cq-c0412), a current or earlier slug, or a craftquantities.com address to the page as it is today: its kind, current slug, slug history, page link and permanent /id/ link. Ids are assigned once and kept when a page is renamed or moved; a removed page names its replacement.
Parameters:
ref(required) — string — A permanent id (cq-c0412), a current or earlier slug, or a craftquantities.com address.kind— Only pages of this kind.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
plan_programmeread-onlyBuilds a construction programme (build schedule, Gantt) from a project's labour hours: tasks by trade, stage and level in the usual order of work, each its hours over the crew and working day given, with totals, a CSV and, with a start date, an iCalendar file. Reads a project state token, a My Project file, takeoffs or a drawing. Weather, inspections and lead times are not modelled. No prices.
Parameters:
crew— integer — People in each trade's crew, unless named in crews.file— object — A My Project file (the backup a project-file answer returns, or one the reader exported): its active project's lines and any hours typed on them.name— string — The project's name, for the files.crews— object — People in a trade's crew, by trade id (carpentry, drywall, electrical, roofing …).token— string — A project state token (cqp1.…) from a project-file answer or an update: the project whose lines are put in order.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.market— string — Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.daysOff— array — Dates not worked (holidays, a shutdown), YYYY-MM-DD.drawing— object — A Construction Canvas drawing (a template, a house form, shapes, drawing commands or a canvas document), as a project file takes it; its levels set the level-by-level order.takeoffs— array — Whole-job takeoffs, each an id and its measurements, as a project file takes them.workDays— array — The days of the week worked, 1 Monday to 7 Sunday.startDate— string — Optional first day (YYYY-MM-DD): the working days are then given dates and a calendar file is returned. No date is assumed without it.hoursPerDay— number — Working hours in a crew's day.
Hints: read-only yes · destructive no · idempotent yes · open-world no
optimise_cutsread-onlyOptimises a cut list: pieces of given lengths cut from the stock lengths a merchant sells (timber, studs, joists, rafters, rebar, trim), or rectangles nested on sheets (plasterboard, drywall, plywood, OSB, tiles) in straight edge-to-edge cuts. Gives the stock or sheets to buy, a cutting plan per bar or sheet, the real waste and a lower bound. Quantities only: no prices, no structural design.
Parameters:
kind(required) — linear: lengths cut from stock lengths (studs, plates, joists, rafters, bars, trim, boards). sheet: rectangles nested on sheets (plasterboard or drywall, plywood, OSB, tiles).pieces(required) — array — The cut list: up to 200 lines and 3000 pieces (1500 for sheets) in all.kerf— The saw's kerf, charged on every piece (both ways on a sheet). Left out, the material's: 3 mm or 1/8 in for a saw, none for a bar shear or a board knife.stock— array — linear: the stock lengths on offer, each in any number, with units ("4.8 m", "16 ft"). Left out, the market's usual lengths for the material in the system asked for.detail— string — full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.rotate— boolean — sheet: whether pieces may turn a quarter (no grain or strength axis to keep). Left out: yes for plasterboard and tiles, no for plywood and OSB.sheets— array — sheet: the sheet sizes on offer (the plan takes the one that buys the least area). Left out, the market's usual size for the material.system— string — The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.material— What is cut, for the market's stock lengths or sheet sizes, saw kerf and grain when they are left out: timber (the default for linear), rebar or casing; plasterboard (the default for sheet), plywood, OSB or tile.minOffcut— linear: the shortest offcut worth keeping; shorter ones count as waste.inputUnits— string — Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.