{"openapi":"3.1.0","info":{"title":"Mulch & Material Volume API","version":"1.0.0","description":"Landscape-material volume estimating as an API, computed locally and deterministically. The volume endpoint computes how much mulch, topsoil, compost or gravel a bed needs as area × depth — from an explicit area or from length × width or a circular diameter/radius, with the depth given in metres, centimetres, feet or inches — and reports the result in cubic metres, cubic yards, cubic feet and litres; a 10 m × 5 m bed at 7.5 cm (3 in) deep needs 3.75 m³, about 4.9 cubic yards, and pass a bag size to also get the number of bags (75 fifty-litre bags). The coverage endpoint inverts it: the area a known volume covers at a chosen depth — one cubic yard at 2 inches deep covers about 15 m² (162 sq ft). The bags endpoint returns how many bags of a given litre size supply a required volume. Lengths use unit=m (default) or unit=ft, and depth also accepts depth_cm or depth_inches. Everything is computed locally and deterministically, so it is instant and private. Ideal for landscaping, gardening, home-improvement, nursery, hardscape and contractor-estimating app developers, mulch-and-soil calculators and material-ordering tools, and trade software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is loose-material volume by geometry; for structural concrete mixes use a concrete API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/mulch-api","description":"oanor gateway"}],"tags":[{"name":"Mulch"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/bags":{"get":{"operationId":"get_v1_bags","tags":["Mulch"],"summary":"Bags needed for a volume","description":"","parameters":[{"name":"cubic_meters","in":"query","required":false,"description":"Required volume (m³)","schema":{"type":"string"},"example":"3.75"},{"name":"cubic_yards","in":"query","required":false,"description":"Or cubic yards","schema":{"type":"string"}},{"name":"bag_liters","in":"query","required":true,"description":"Bag size (litres)","schema":{"type":"string"},"example":"50"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Bags = ⌈total litres / bag size⌉. A 50 L bag yields 0.05 m³, so 3.75 m³ needs 75 bags.","inputs":{"volume_m3":3.75,"bag_liters":50},"exact_bags":75,"bags_needed":75,"total_liters":3750},"meta":{"timestamp":"2026-06-05T19:50:21.225Z","request_id":"8ae5b5b9-3e5e-4eec-9b07-e03eacd3a041"},"status":"ok","message":"Bags needed","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/coverage":{"get":{"operationId":"get_v1_coverage","tags":["Mulch"],"summary":"Coverage area for a volume","description":"","parameters":[{"name":"cubic_yards","in":"query","required":false,"description":"Volume (cubic yards)","schema":{"type":"string"},"example":"1"},{"name":"cubic_meters","in":"query","required":false,"description":"Or cubic metres","schema":{"type":"string"}},{"name":"liters","in":"query","required":false,"description":"Or litres","schema":{"type":"string"}},{"name":"depth_inches","in":"query","required":false,"description":"Depth (inches)","schema":{"type":"string"},"example":"2"},{"name":"depth_cm","in":"query","required":false,"description":"Or depth (cm)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Coverage area = volume / depth. One cubic yard at 2 in deep covers about 15 m² (≈162 sq ft).","inputs":{"depth_m":0.0508,"volume_m3":0.76455},"area_m2":15.0503,"area_ft2":162},"meta":{"timestamp":"2026-06-05T19:50:21.333Z","request_id":"97d810d4-7294-4421-949a-5ba34fc18892"},"status":"ok","message":"Coverage area","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/volume":{"get":{"operationId":"get_v1_volume","tags":["Mulch"],"summary":"Material volume for a bed","description":"","parameters":[{"name":"length","in":"query","required":false,"description":"Bed length","schema":{"type":"string"},"example":"10"},{"name":"width","in":"query","required":false,"description":"Bed width","schema":{"type":"string"},"example":"5"},{"name":"area","in":"query","required":false,"description":"Or area directly","schema":{"type":"string"}},{"name":"diameter","in":"query","required":false,"description":"Or circular diameter","schema":{"type":"string"}},{"name":"depth_cm","in":"query","required":false,"description":"Depth (cm)","schema":{"type":"string"},"example":"7.5"},{"name":"depth_inches","in":"query","required":false,"description":"Or depth (inches)","schema":{"type":"string"}},{"name":"unit","in":"query","required":false,"description":"Length unit: m or ft","schema":{"type":"string"},"example":"m"},{"name":"bag_liters","in":"query","required":false,"description":"Bag size (litres) for bag count","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Material volume = area × depth. A 10 m × 5 m bed at 7.5 cm (3 in) deep needs 3.75 m³ (≈4.9 cubic yards).","inputs":{"area_m2":50,"depth_m":0.075},"liters":3750,"cubic_feet":132.43,"cubic_yards":4.90481,"cubic_meters":3.75},"meta":{"timestamp":"2026-06-05T19:50:21.440Z","request_id":"130f6d83-9683-449d-ba8d-8458fde01fd1"},"status":"ok","message":"Material volume","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Set unit=m (default) or unit=ft for lengths; depth may also be given as depth_cm or depth_inches. Volume is reported in m³, cubic yards, cubic feet and litres. For structural concrete mixes use a concrete API.","service":"mulch-api","endpoints":{"GET /v1/bags":"Number of bags to supply a required volume.","GET /v1/meta":"This document.","GET /v1/volume":"Material volume from a bed's area (or dimensions) and depth.","GET /v1/coverage":"Area a given volume covers at a depth."},"description":"Landscape material volume — mulch, topsoil, compost or gravel for a bed: volume from area and depth, coverage, and bag counts."},"meta":{"timestamp":"2026-06-05T19:50:21.555Z","request_id":"c37a8599-140b-4646-a8cc-9d3e2bb906e4"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":6800,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":430,"monthly_call_quota":68000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1180,"monthly_call_quota":300000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3700,"monthly_call_quota":1620000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/mulch-api"}