{
  "name": "Project Math Lab",
  "version": "1",
  "description": "Checkable US DIY material purchase estimates. No account or API key required.",
  "documentation": "https://projectmathlab.com/calculator-links/",
  "ai_brief": "https://projectmathlab.com/calculator-ai-brief.txt",
  "openapi": "https://projectmathlab.com/api/v1/openapi.json",
  "method": "GET",
  "output": "application/json",
  "tools": [
    {
      "tool": "gravel",
      "endpoint": "https://projectmathlab.com/api/v1/gravel",
      "calculator": "https://projectmathlab.com/calculators/gravel-calculator/",
      "parameters": {
        "mode": {
          "type": "string",
          "enum": [
            "dimensions",
            "volume",
            "weight"
          ],
          "default": "dimensions"
        },
        "length_ft": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 100000
        },
        "width_ft": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 100000
        },
        "depth_in": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 10000
        },
        "cubic_yards": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "short_tons": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "density_ton_per_yd3": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 100
        },
        "extra_percent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "default": 0
        },
        "quote_unit": {
          "type": "string",
          "enum": [
            "yard",
            "ton"
          ],
          "default": "yard"
        },
        "price_per_unit": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "delivery_fee": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "minimum_order": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "order_increment": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 1000000,
          "default": 0.5
        }
      },
      "example": "https://projectmathlab.com/api/v1/gravel?mode=weight&short_tons=1&density_ton_per_yd3=1.4"
    },
    {
      "tool": "mulch",
      "endpoint": "https://projectmathlab.com/api/v1/mulch",
      "calculator": "https://projectmathlab.com/calculators/mulch-calculator/",
      "parameters": {
        "area_sq_ft": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 1000000
        },
        "depth_in": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 10000
        },
        "existing_depth_in": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "extra_percent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "default": 0
        },
        "bag_ft3": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 1000000
        },
        "bag_price": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "price_per_yd3": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "delivery_fee": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "minimum_order": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "order_increment": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 1000000,
          "default": 0.5
        }
      },
      "example": "https://projectmathlab.com/api/v1/mulch?area_sq_ft=200&depth_in=3&existing_depth_in=1&bag_ft3=2"
    },
    {
      "tool": "raised-bed-soil",
      "endpoint": "https://projectmathlab.com/api/v1/raised-bed-soil",
      "calculator": "https://projectmathlab.com/calculators/raised-bed-soil-calculator/",
      "parameters": {
        "length_ft": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 100000
        },
        "width_ft": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 100000
        },
        "target_depth_in": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 10000
        },
        "current_depth_in": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "extra_percent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "default": 0
        },
        "bag_ft3": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 1000000
        },
        "bag_price": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "price_per_yd3": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "delivery_fee": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "minimum_order": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "default": 0
        },
        "order_increment": {
          "type": "number",
          "minimum": 0.000001,
          "maximum": 1000000,
          "default": 0.5
        }
      },
      "example": "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"
    }
  ],
  "limits": [
    "One measured area, rectangular section, or rectangular bed and one bulk supplier quote per request. Use the interactive calculators for multiple sections or quotes.",
    "US customary units and USD only in API v1. Short tons are 2,000 lb, not metric tonnes.",
    "No supplier data lookup, density verification, construction specifications, taxes, compaction prediction, or guaranteed yield.",
    "Numeric URL parameters are sent to the host and may appear in request records and browser history. Do not send personal information."
  ]
}