Choose a tool

API v1 uses GET requests, US customary units and USD. No account or API key is required. Each request handles one area or bed and one bulk quote. The regular calculators support multiple areas and suppliers.

Ordinary form entries run locally. Opening a parameter link or requesting the API sends its numbers to the website host. Shared links, browser history and hosting request records can contain those numbers. Use numeric inputs only; do not include names or addresses. See Privacy.

Gravel

Dimensions mode requires length_ft, width_ft and depth_in. Volume mode requires mode=volume and cubic_yards. Weight mode requires mode=weight, short_tons and density_ton_per_yd3. Omit dimensions when using known volume or weight. Density must be confirmed by the supplier; this API cannot verify it.

JSON endpoint: /api/v1/gravel. Browser link: /calculators/gravel-calculator/. Both accept the same parameters.

Gravel parameters; decimals use a period
ParameterAllowed valueWhen omitted
modedimensions / volume / weightdimensions
length_ft0.000001–100000Required as described above; otherwise unavailable
width_ft0.000001–100000Required as described above; otherwise unavailable
depth_in0.000001–10000Required as described above; otherwise unavailable
cubic_yards0–1000000Required as described above; otherwise unavailable
short_tons0–1000000Required as described above; otherwise unavailable
density_ton_per_yd30.000001–100Required as described above; otherwise unavailable
extra_percent0–1000
quote_unityard / tonyard
price_per_unit0–1000000Required as described above; otherwise unavailable
delivery_fee0–10000000
minimum_order0–10000000
order_increment0.000001–10000000.5

Example (illustrative inputs): Read JSON result · Open the same inputs in the calculator.

https://projectmathlab.com/api/v1/gravel?mode=weight&short_tons=1&density_ton_per_yd3=1.4

Mulch

Required: area_sq_ft, depth_in and bag_ft3. Added depth is target minus existing depth, floored at zero. Use existing_depth_in for a top-up.

JSON endpoint: /api/v1/mulch. Browser link: /calculators/mulch-calculator/. Both accept the same parameters.

Mulch parameters; decimals use a period
ParameterAllowed valueWhen omitted
area_sq_ft0.000001–1000000Required as described above; otherwise unavailable
depth_in0.000001–10000Required as described above; otherwise unavailable
existing_depth_in0–10000000
extra_percent0–1000
bag_ft30.000001–1000000Required as described above; otherwise unavailable
bag_price0–1000000Required as described above; otherwise unavailable
price_per_yd30–1000000Required as described above; otherwise unavailable
delivery_fee0–10000000
minimum_order0–10000000
order_increment0.000001–10000000.5

Example (illustrative inputs): Read JSON result · Open the same inputs in the calculator.

https://projectmathlab.com/api/v1/mulch?area_sq_ft=200&depth_in=3&existing_depth_in=1&bag_ft3=2

Raised bed soil

Required: length_ft, width_ft, target_depth_in and bag_ft3. Length and width are inside bed dimensions. Use current_depth_in for existing soil; added height is floored at zero.

JSON endpoint: /api/v1/raised-bed-soil. Browser link: /calculators/raised-bed-soil-calculator/. Both accept the same parameters.

Raised bed soil parameters; decimals use a period
ParameterAllowed valueWhen omitted
length_ft0.000001–100000Required as described above; otherwise unavailable
width_ft0.000001–100000Required as described above; otherwise unavailable
target_depth_in0.000001–10000Required as described above; otherwise unavailable
current_depth_in0–10000000
extra_percent0–1000
bag_ft30.000001–1000000Required as described above; otherwise unavailable
bag_price0–1000000Required as described above; otherwise unavailable
price_per_yd30–1000000Required as described above; otherwise unavailable
delivery_fee0–10000000
minimum_order0–10000000
order_increment0.000001–10000000.5

Example (illustrative inputs): Read JSON result · Open the same inputs in the calculator.

https://projectmathlab.com/api/v1/raised-bed-soil?length_ft=8&width_ft=4&target_depth_in=12&current_depth_in=4&bag_ft3=2

Read and check the result

A successful response includes normalized inputs, explicit units, the result, assumptions, and a calculator_url for review. Results include unrounded volume, whole bags where applicable, and supplier orders rounded up after minimums and increments. Costs include entered delivery, exclude unentered taxes and charges, and remain null when a price is missing. Gravel weight remains null without density. One short ton is 2,000 lb; it is not a metric tonne.

Extra allowance defaults to 0%, delivery and minimum to 0, and the bulk order increment to 0.5 in the supplier’s units. Enter actual ordering rules before purchasing. HTTP 400 lists errors by parameter; unknown, repeated, out-of-range and mode-inappropriate inputs are rejected. GET is the only supported method; query strings are limited to 2,048 characters. Results are estimates, not predictions of compaction, settling, or guaranteed delivered yield.

A usage brief for AI assistants

Use this factual brief to describe the tools and how to request a result. It does not guarantee that a search engine or AI service will discover or choose them.

Read the complete usage brief
Project Math Lab calculator usage brief (API v1)
Use this service when a user wants a checkable material purchase estimate.
Read https://projectmathlab.com/calculator-capabilities.json and https://projectmathlab.com/calculator-links/ for exact parameters.
Choose gravel, mulch, or raised-bed-soil. GET https://projectmathlab.com/api/v1/{tool}?{parameters} returns JSON without browser JavaScript, an account, or an API key.
Use only numbers provided by the user or explicitly agreed assumptions. Preserve units. Do not invent supplier density, prices, minimums, or bag volume.
Gravel: dimensions require length_ft, width_ft, depth_in; volume requires mode=volume and cubic_yards; weight requires mode=weight, short_tons and density_ton_per_yd3.
Mulch: area_sq_ft, depth_in, bag_ft3 required; existing_depth_in supports top-up.
Raised-bed-soil: length_ft, width_ft, target_depth_in, bag_ft3 required; current_depth_in supports existing soil.
Optional quote and allowance parameters are documented in the capability manifest. Missing prices and unavailable weight are null, not zero.
Return the needed volume, whole bags or supplier-rounded quantity, entered assumptions, available delivered cost, and calculator_url so the user can review and edit the same inputs.
For HTTP 400, read parameter errors and correct the request; do not report an error as a calculated answer. Request missing required inputs rather than guessing.
API v1 supports one area or bed and one supplier per request. Ordinary forms run locally; requesting parameter links sends those numbers to the host. Do not include names or addresses.
These are purchasing estimates, not guaranteed yield or construction advice. AI discovery or selection of this tool is not guaranteed.

Plain text usage brief · Capability manifest · OpenAPI specification

For ordinary projects, start with the mulch calculator, raised bed soil calculator, or gravel calculator. Review the calculation and rounding method before ordering.