Dcycle API Introduction
The Dcycle API allows you to integrate carbon emissions calculation and tracking directly into your applications and workflows.Base URL
All API requests must be made to:Authentication
All API requests require authentication using your API key and organization ID:User Attribution: All operations are automatically attributed to the user who created the API key. This ensures proper audit trails and data governance without requiring an explicit user header.
Versioning
The API uses path-based versioning. Most endpoints are available under/v1/, with newer or enhanced endpoints under /v2/:
The v2 standard (BETA)
These resources follow the standard every new endpoint will share. This is the list the rest of the documentation refers to as “the v2 standard resources”:/v2/wastes/v2/facilities/v2/invoices/v2/purchases/v2/vehicles/v2/vehicle-consumptions/v2/own-workforce: employees, trainings and absences/v2/business-travels/v2/logistics/requests/v2/ingest-jobs/v2/webhook-endpoints
- Writes that start background work are asynchronous. Creating wastes, invoices, purchases, logistics requests, vehicle consumptions or business travels, and every bulk delete answer
202 Acceptedwith an ingest job and aLocationheader; you follow the job, or receive a webhook when it finishes. - Plain creates are synchronous.
POST /v2/facilities,POST /v2/vehiclesand the own workforce employees, trainings and absences start no calculation, so they answer201 Createdwith the created resources themselves. Every route and its kind is in Synchronous and asynchronous routes. - Bulk is all or nothing. One invalid record rejects the whole request, and the
422 BULK_RECORDS_REJECTEDlists the invalid records (up to 100;rejectedis the total).?dry_run=trueruns the same record checks without writing, and does not check theIdempotency-Key. - Retries are safe. Bulk writes require an
Idempotency-Keyheader, one per batch and unique in your organization: resending the same request (same route and body) within 24 hours returns the same answer (the same job, or the same created resources) withIdempotent-Replayed: trueinstead of writing again; the same key with another body or on another route is422 IDEMPOTENCY_KEY_REUSED. After 24 hours the key is free and a request with it is a new one. See The Idempotency-Key. - Errors are problem details (
application/problem+json): branch oncode. - Timestamps are UTC, with a trailing
Z.
Response Format
The API returns responses in JSON format:HTTP Status Codes
Error Format
The v2 standard resources answer every error as an RFC 9457 problem details body, described in Errors. The rest of the API keeps the format below. Application errors include a machine-readablecode and a human-readable detail:
Common Errors
403 Forbidden
403 Forbidden
You don’t have permission to access this resource. Verify your
x-organization-id header.404 Not Found
404 Not Found
The requested resource doesn’t exist. Check the endpoint URL and resource UUID.
422 Validation Error
422 Validation Error
The request body failed validation. Inspect the
detail array — each entry includes loc (field path), msg (error message), and type (error category).429 Too Many Requests
429 Too Many Requests
You’ve exceeded the endpoint’s rate limit. Wait the number of seconds specified in the
Retry-After response header before retrying.Pagination
Endpoints that return lists support pagination:page: Page number (default: 1)size: Items per page (default: 50, max: 100)
Data Types
UUIDs
All resource IDs use UUID v4 format:Dates
Dates use ISO 8601 format (YYYY-MM-DD):Timestamps
Timestamps use ISO 8601 format with UTC timezone:Rate Limits
Limits are applied per API key and per endpoint. Limited endpoints returnX-RateLimit-Limit,
X-RateLimit-Remaining and X-RateLimit-Reset on every response, and answer 429 Too Many Requests with a Retry-After header once the allowance is spent.
Rate Limits
Which endpoints are limited, the exact numbers, and how to handle a 429.
API Endpoints Overview
Core Data
- Organizations — Manage organization hierarchy and structure
- Facilities — Manage sites, offices, and production plants
- Projects — Organize emission reduction initiatives
Emission Sources
- Invoices — Process utility bills (electricity, gas, water)
- Vehicles — Track fleet, fuel consumption, and transport emissions
- Logistics — Calculate shipment emissions (ISO 14083)
- Logistic Hubs — Manage warehouses and distribution centers
- Purchases — Track supply chain emissions
- Employees — Manage employee commuting data
- Business Travels — Track business travel emissions
- Hotel Stays — Track hotel accommodation emissions
- Wastes — Manage waste generation and disposal
- Waste Water Treatments — Track wastewater emissions
Analysis & Reporting
- Emissions — View aggregated emission summaries
- Historical Emissions — Compare emissions across years
- Dashboards — Build custom visualizations
- LCA — Life Cycle Assessment portfolios
- Sold Products — Track product-level emissions
- Custom KPI — Define and track custom sustainability metrics
Data Management
Reference Data
- Transport — Transport types, methods, and reference data
- Vehicle Fuels — Fuel types and emission factors
- Unknown Vehicles — Vehicle type classification
Quick Start Example
Next Steps
Quickstart Guide
Make your first API call in 5 minutes
Authentication
Learn about API Keys and authentication
Facilities
Manage facilities and track emissions
Logistics
Calculate shipment emissions
MCP Server
Query your data from AI assistants via MCP