New API: This endpoint is part of the new API architecture with improved design and maintainability.
Key Features
- Waste Tracking: Create and manage waste disposal records per facility
- Emission Factors: Link waste records to standard emission factors (LER/RD codes) or custom emission factors
- CO2e Calculation: Automatic emissions calculation based on waste type and quantity
- Flexible Units: Support for different quantity units with automatic conversion
- Pagination Support: Efficiently retrieve large lists of waste records
Authentication
All endpoints require authentication using an API key included in thex-api-key header.
Headers
All requests must include:string
required
Your organization UUIDExample:
a8315ef3-dd50-43f8-b7ce-d839e68d51fastring
required
Your API key for authenticationExample:
sk_live_1234567890abcdefAvailable Endpoints
List Wastes
Retrieve all waste records with filtering and pagination
Create Wastes (v2, beta)
Create one or up to 5,000 wastes in one request, with asynchronous calculation
Delete Wastes (v2, beta)
Delete up to 5,000 wastes by id, asynchronously
Update Waste
Modify waste record details
Create Waste (deprecated)
Superseded by Create Wastes (v2)
LER Codes
Look up
waste_ler_code_idR/D Codes
Look up
waste_rd_code_idHow Dcycle finds the emission factor: from the LER code (plus the R/D code when you send it),
from the
description when you have no codes, or from your own factor in custom_ef_record_id.
A record needs at least one of the three. See
How the emissions are calculated.Waste Attributes
Core Information
- identification_name (
string, required): Waste identification name or invoice number - description (
string, optional): Description of the waste - start_date (
date, required): Start date of the waste period - end_date (
date, required): End date of the waste period - base_quantity (
float, required): Waste quantity in the specified unit - facility_id (
UUID, required): UUID of the facility this waste belongs to
Disposal Details
- destination (
string, optional): Waste destination or treatment facility - provider_name (
string, optional): Business name of the waste manager - transporter_name (
string, optional): Business name of the carrier, when it is not the waste manager - total_km_to_waste_center (
float, optional): Distance to waste center in km
Emission Configuration
- waste_ler_code_id (
UUID): id of the LER code, fromGET /v1/wastes/ler-codes. Required unless you send adescriptionor acustom_ef_record_id - waste_rd_code_id (
UUID, optional): id of the R/D treatment code, fromGET /v1/wastes/rd-codes - unit_id (
UUID): id of the quantity unit, fromGET /v2/units.POST /v2/wastesrequires kilograms (61743a63-ff70-459c-9567-5eee8f7dfd5c, the unitGET /v2/units?type=wasteslists), or the unit of thecustom_ef_record_idrecord; there is no default - custom_emission_factor_id (
UUID, optional): Deprecated, no longer functional - custom_ef_record_id (
UUID, optional): id of one of your custom emission factor records
Read-Only Fields
- co2e (
float): Calculated CO2 equivalent emissions in kg CO2e - co2e_biomass (
float): Biogenic CO2 emissions in kg CO2e - status (
string): Where the waste is in its calculation; the values are listed in Get Waste
Workflow
Creating wastes
- Find the ids of the facility, the unit, the LER code and the R/D code: see Find the ids you send
- Validate the batch with
POST /v2/wastes?dry_run=true: every check runs and nothing is written - Send it with
POST /v2/wastes: one or up to 5,000 records, stored at once, answered with an ingest job - Follow the calculation with
GET /v2/ingest-jobs/{job_id}, or receive theingest_job.finishedwebhook when it ends - Check the failures in the job’s items and read each waste with Get Waste
Response Format
Waste Object
Error Handling
Common HTTP Status Codes
The v2 endpoints (
/v2/wastes) answer errors as problem details: branch on code, and read
the list of problems in errors.
Related Documentation
Facilities API
Manage facilities where waste is generated
Scope 3 Category 5
Guide for waste-related emissions (GHG Protocol)