Authentication
WasteCalc API uses Bearer token authentication. Include your API key in the Authorization header on every request.
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 |
|---|---|---|---|
| Starter | 500 | 10 req/sec | $0.12/call |
| Pro | 5,000 | 50 req/sec | $0.12/call |
| Enterprise | Unlimited | 200 req/sec | None |
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 |
|---|---|---|
| 400 | invalid_request | Missing or invalid parameters |
| 401 | unauthorized | Invalid or missing API key |
| 403 | forbidden | Feature not available on your plan |
| 404 | not_found | Resource not found (e.g., invalid ZIP code) |
| 422 | unprocessable | Valid request but estimation failed (e.g., unsupported material combination) |
| 429 | rate_limited | Monthly quota or burst limit exceeded |
| 500 | internal_error | Server 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.
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.
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.
| 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.
Material Types
| Identifier | Display Name | Category |
|---|---|---|
| drywall | Drywall / Gypsum Board | Gypsum |
| wood_framing | Dimensional Lumber & Framing | Wood |
| plywood | Plywood & OSB | Wood |
| concrete | Concrete & Masonry | Concrete |
| brick | Brick & Block | Concrete |
| metal_framing | Metal Studs & Framing | Metal |
| roofing | Asphalt Shingles & Roofing | Mixed C&D |
| insulation | Fiberglass & Foam Insulation | Mixed C&D |
| flooring | Carpet, Tile & Hardwood | Mixed C&D |
| windows | Windows & Glazing | Mixed C&D |
| mixed_cd | General Mixed C&D Debris | Mixed C&D |
Project Types
| Type | Description | Waste Factor |
|---|---|---|
| renovation | Interior or exterior remodeling of existing structure | 3.5-5 lbs/sqft |
| demolition | Partial or full structure teardown | 85-150 lbs/sqft |
| new_build | Ground-up new construction | 3.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.