API Documentation

WasteCalc API v1 reference. Base URL: https://api.wastecalcapi.com/v1

Authentication

WasteCalc API uses Bearer token authentication. Include your API key in the Authorization header on every request.

Authorization: Bearer wc_live_your_api_key_here

API keys are prefixed with wc_live_ for production and wc_test_ for sandbox. Sandbox calls return realistic mock data and do not count against your quota.

Keep your API key secure. Never expose it in client-side JavaScript or commit it to version control. Use environment variables or a secrets manager.

Base URL & Versioning

All API requests should be made to:

https://api.wastecalcapi.com/v1

The current version is v1. We follow semantic versioning. Breaking changes will introduce a new version prefix (v2) with at least 6 months of parallel support for the previous version.

Rate Limits

Rate limits are applied per API key based on your plan:

Plan Monthly calls Burst limit Overage
Starter50010 req/sec$0.12/call
Pro5,00050 req/sec$0.12/call
EnterpriseUnlimited200 req/secNone

When rate limited, the API returns HTTP 429 with a Retry-After header indicating when you can retry.

Error Codes

WasteCalc API uses standard HTTP status codes. All error responses include a JSON body with error and message fields.

Status Code Description
400invalid_requestMissing or invalid parameters
401unauthorizedInvalid or missing API key
403forbiddenFeature not available on your plan
404not_foundResource not found (e.g., invalid ZIP code)
422unprocessableValid request but estimation failed (e.g., unsupported material combination)
429rate_limitedMonthly quota or burst limit exceeded
500internal_errorServer error - retry with exponential backoff

POST /estimate

Generate a complete construction waste estimate for a single project. Returns waste by category, dumpster sizing, tipping fees, recycling diversion, and EPA regulatory data.

POST /v1/estimate

Request Parameters

Parameter Type Required Description
project_type string required One of: renovation, demolition, new_build
square_footage integer required Total project area in square feet (min 100, max 2,000,000)
zip_code string required US ZIP code for tipping fee lookup (5 digits)
materials array required Array of material type strings. See Material Types
include_recycling boolean optional Include recycling diversion rates. Default: false. Pro+ only.
include_epa boolean optional Include EPA regulatory flags. Default: true
currency string optional Currency for tipping fees. Default: USD

Example Request

// POST https://api.wastecalcapi.com/v1/estimate
{
  "project_type": "renovation",
  "square_footage": 2400,
  "zip_code": "90210",
  "materials": ["drywall", "wood_framing", "concrete"],
  "include_recycling": true,
  "include_epa": true
}

Example Response

{
  "id": "est_01J8KX2PQR3STUVWXYZ",
  "project_type": "renovation",
  "square_footage": 2400,
  "zip_code": "90210",
  "waste_estimate": {
    "total_tons": 4.32,
    "by_category": {
      "drywall": { "tons": 1.44, "cubic_yards": 4.8 },
      "wood_framing": { "tons": 1.68, "cubic_yards": 9.6 },
      "concrete": { "tons": 1.20, "cubic_yards": 2.4 }
    }
  },
  "dumpster_recommendation": {
    "size_cubic_yards": 20,
    "count": 1,
    "overage_buffer_pct": 15,
    "alternative_sizes": [15, 30]
  },
  "tipping_fees": {
    "currency": "USD",
    "state": "CA",
    "jurisdiction": "Los Angeles County",
    "by_category": {
      "drywall": { "per_ton": 82.50, "estimated_total": 118.80 },
      "wood_framing": { "per_ton": 64.00, "estimated_total": 107.52 },
      "concrete": { "per_ton": 28.00, "estimated_total": 33.60 }
    },
    "estimated_total": 259.92,
    "data_updated": "2026-01-15"
  },
  "recycling": {
    "diversion_rate_pct": 62,
    "recyclable_tons": 2.68,
    "by_category": {
      "drywall": 75,
      "wood_framing": 58,
      "concrete": 91
    }
  },
  "epa": {
    "applicable_regulations": ["RCRA_subtitle_D"],
    "hazmat_flags": { "lead_paint_threshold": false, "asbestos_threshold": false },
    "state_classification": "CA_CD_CLASS_A",
    "form_r_code": "N/A"
  },
  "created_at": "2026-04-03T14:22:31Z"
}

POST /estimate/batch

Generate waste estimates for up to 50 projects in a single request. Available on Pro and Enterprise plans.

POST /v1/estimate/batch

The batch endpoint accepts an array of estimate objects using the same parameters as POST /estimate. The response contains an array of estimate results in the same order as the request.

GET /tipping-fees

Look up tipping fee schedules for a ZIP code without running a full estimation. Useful for pre-populating cost calculators.

GET /v1/tipping-fees?zip_code=90210&material=drywall
Parameter Type Required Description
zip_code string required US ZIP code (5 digits)
material string optional Filter by specific material type. Returns all materials if omitted.

GET /materials

Returns the full list of supported material type identifiers and their display names.

GET /v1/materials

Material Types

Identifier Display Name Category
drywallDrywall / Gypsum BoardGypsum
wood_framingDimensional Lumber & FramingWood
plywoodPlywood & OSBWood
concreteConcrete & MasonryConcrete
brickBrick & BlockConcrete
metal_framingMetal Studs & FramingMetal
roofingAsphalt Shingles & RoofingMixed C&D
insulationFiberglass & Foam InsulationMixed C&D
flooringCarpet, Tile & HardwoodMixed C&D
windowsWindows & GlazingMixed C&D
mixed_cdGeneral Mixed C&D DebrisMixed C&D

Project Types

Type Description Waste Factor
renovationInterior or exterior remodeling of existing structure3.5-5 lbs/sqft
demolitionPartial or full structure teardown85-150 lbs/sqft
new_buildGround-up new construction3.9-4.9 lbs/sqft

Response Schema

All API responses use JSON with consistent field naming (snake_case). Monetary values are returned as floats in the specified currency. Weight values use US tons (short tons, 2,000 lbs). Volume values use cubic yards.

Construction PM Integration

Typical integration pattern for construction project management software: call POST /estimate when a project is created with square footage and material takeoff data. Store the estimate ID against your project record. Display waste cost as a budget line item.

Dumpster Rental Integration

Call POST /estimate at checkout after the customer inputs their project type and size. Use the dumpster_recommendation.size_cubic_yards to pre-select the recommended container size. Highlight the alternative sizes for upsell or downsell opportunities.

Waste Hauler Dispatch Integration

Call POST /estimate when a pickup is scheduled. Use waste_estimate.by_category to pre-populate EPA manifest fields and route to the correct disposal facility by material type.

EPA Reporting Integration

Use the epa object in estimate responses to pre-populate required regulatory fields. The applicable_regulations array lists the federal statutes applicable to the project. form_r_code maps to EPA Form R submission codes where applicable.

Changelog

  • v1.1 (2026-04-03) - Added recycling diversion rate by material + ZIP. Added batch endpoint. Improved tipping fee coverage to 2,800+ jurisdictions.
  • v1.0 (2026-03-22) - Initial release. POST /estimate, GET /tipping-fees, GET /materials. 50-state coverage. EPA regulatory flags.

API Status

Current API status: Operational. For real-time uptime, incidents, and scheduled maintenance, check status.wastecalcapi.com.