August 2026
August 5, 2026
API · CLI
- CLI: Added
dcy organization-supplier(list/create/edit/delete) for the org-level supplier directory, anddcy ppwr packaging-unit supplier(list/add/remove) to assign PPWR packaging units to a supplier — one supplier per unit, enforced by the API with a409on conflict. See Organization Suppliers CLI. - API: Hotel stays custom columns now flow through CSV imports too — map an existing sidecar column to a file header, or declare a new one, completing the read/filter/import surface shipped August 4.
- API: Facilities inbound-email config gains automatic data-reminder emails —
PATCH /v1/facilities/{facility_id}/inbound-email/remindersets a reminder recipient (a free-form email, an existing org member, or both) and an optional threshold in days; a daily sweep emails facilities with no completed inbound data within that window. Setting a recipient email automatically allowlists it, so a plain reply lands back in the same inbound-email pipeline. - API: Added cascading delete for Datadis organization identifiers (NIF/CIF) —
GET /v1/datadis/organization-identifiers/{nif}/delete-previewshows what would be removed, andDELETE /v1/datadis/organization-identifiers/{nif}cascades to that identifier’s own-org supply contracts and invoices. - Fixed vehicle consumption delete endpoints (single, bulk, and bulk-by-filters) authorizing on the read perimeter instead of the write perimeter — a disabled organization’s consumptions were deletable even though its vehicle could not be updated. Cross-organization deletes authenticated with an API key now correctly return
403(CROSS_ORG_WRITE_REQUIRES_USER) instead of succeeding. - Fixed the electricity Scope 1 & 2 report (
POST /v2/download/scope-report) always generating one failed processing job alongside the successful one — the endpoint dispatched an unsupportedelectricity_lbevent that the handler has never supported. - Fixed
PATCH /v1/emission-factors/hotel_stays/config-updateblocking the whole batch when the chosen emission-factor source has no coverage for one stay’s country — uncovered stays now keep their existing config and are reported in the processing job’sfailed_recordsinstead of failing the request. - Fixed the multidb custom emission-factor pipeline further: the primary category was hardcoded to
stationaryregardless of invoice type, silently dropping the client-choice config for electricity/recharge/water/process invoices using a custom emission-factor database. - Fixed purchases
bulk-delete-by-filtersreturning a persistent409filter-hash mismatch whenever the preceding list request included asortparameter —sortno longer affects the filter hash, matching that it only controls display order. - Fixed imports auto-mapping for Spanish waste ledgers: 4-digit MITECO treatment subcodes (e.g.
R1201) now resolve to their parent operation code instead of falling through to manual mapping. - Fixed invoices and wastes custom-column creation accepting reserved grid keys (
edit,select,toc) — declaring a custom column with one of these names silently broke the shared facility-detail grid’s action column; it’s now rejected with422. - Fixed
POST /pivot_table/calculatesorting Scope 3 GHG categories lexicographically by label instead of numerically (Category 11 sorted before Category 2) — fixed backend-side so on-screen tables, Excel, and PDF exports are all consistent. - Fixed invoice create/update silently skipping the emission-factor config when a linked custom EF record had no available source for the invoice’s primary category — now fails fast with a
422(MULTIDB_CUSTOM_RECORD_INCOMPATIBLE_CATEGORY) instead of falling back to standard emissions unannounced. - Fixed the vehicles sheet in the Scope 1 & 2 report (
POST /v2/download/scope-report) shipping empty — a type mismatch oncurrency_unit_idraised on every row, and the export silently dropped each one rather than failing the job. - Fixed LCA transport (A2) impacts calculating as
0for portfolios whose transport was created via the API or older UI flows as a legacy “copy-piece” — those are now bridged into the current chain/leg model instead of being invisible to the calculation. - Raised the
facility_consumptionimport quantity limit from 50M to 10B. - Fixed hotel stay emission-factor configs only being created for a stay’s check-in year — a stay spanning a year boundary (e.g. Dec 28 – Jan 3) now gets configs for every year it touches.
August 4, 2026
API · CLI
- CLI: Added
dcy ppwr packaging-unit(list/show/create/edit/delete) anddcy ppwr packaging-unit sku(list/add/edit/delete) subcommands for managing PPWR packaging units and the SKUs they cover directly from the CLI. - CLI:
dcy file listnow shows alinked_packaging_unitscolumn — which PPWR packaging unit(s), if any, were created/applied from that file. - API: LCA calculation errors now also surface four transport (A2) data problems —
missing_transport_destination,missing_transport_origin,missing_transport_data, andmissing_transport_emission_factor— mirroring the silent-omission checks already in place for materials (A1). - API: Vehicle consumptions gain custom columns support —
custom_valuesis now returned on list, org-wide list, and detail responses, matching the existing purchases/employees/facilities behavior.POST /v2/vehicle_consumptions/migratenow returns409instead of silently dropping an org’s custom values on a cross-organization move. - API: Hotel stays gain custom columns support —
custom_valueson responses andcustom_column_schemason the list page, plus column-header filtering (filter_by/filter_match/filter_or_fields) onGET /hotel-stays, matching the filtering already available on purchases. - API: Transport routes gain custom columns support —
custom_valueson list/detail responses, sortable viasort_by, and mappable/declarable through CSV imports. - API:
employee_commutingimports now support custom columns — map an existingemployees_historicsidecar field to a file header, or declare a new one, through the imports API. - API: Purchases list now returns
custom_column_schemasunder group view, matching vehicles/vehicle-consumptions/hotel-stays/business-travels — a subsidiary’s custom column now renders under its own label instead of the holding’s. - Fixed cross-tenant authorization gaps on transport (climate) plan endpoints — reading, updating, or deleting another organization’s plan or measure is no longer possible for an authenticated caller outside that organization’s family.
- Fixed transport routes
sort_byaccepting any model attribute name (including relationships) and returning a500instead of only real, orderable columns. - Fixed PPWR packaging unit detail/update/delete endpoints (
GET/PATCH/DELETE /v2/ppwr/packaging-units/{id}) to enforce organization scoping, matching the existing SKU and substance-declaration sub-resource behavior. - Fixed a malformed
x-organization-idheader (non-UUID) on API-key authenticated requests returning a500instead of a401. - Fixed imports of the
facility_consumptionelectricity/heat/water/recharge sub-templates silently dropping mapped or declared custom columns instead of persisting them. - Fixed a
500error when submittingemployee_survey_emailsimports through the imports API. - Fixed the Scope 1 & 2 electricity/energy report (
POST /v2/download/scope-report) undercounting emissions for invoices whose billing period straddles the reporting-window boundary. - Fixed the multidb custom emission-factor pipeline: 3-gas (CO2/CH4/N2O) custom factors weren’t converting to CO2e (missing GWP conversion config), and only the primary category was processed for electricity/heat invoices, leaving secondary categories (location-based, generation, T&D) uncalculated.
start_dateon custom emission-factor versions (POST /v1/emission-factors/custom-databases/{database_id}/versions) is now optional, defaulting to1970-01-01like standard conversion factors. - Fixed custom-column filtering and sorting under group view (
consolidate_group) reading every row’s value from the header organization’s sidecar instead of the row’s own — a subsidiary’s custom-column value could silently drop out of a filtered result or sort as if empty. Affects purchases, vehicles, vehicle consumptions, business travels, facilities, wastes, hotel stays, invoices, employees, suppliers, and own workforce trainings. - Fixed dropped custom-column values during CSV imports going unreported — now surfaced via the processing job’s
job_metadata.failed_records, the same channel the Activity → Processing Jobs detail view already renders.
July 2026
July 27, 2026
API
- ⚠️ API:
DELETE /v2/elastic-data/datasets/{dataset_id}no longer returns204 No Content— it now returns200with a processing-job reference body, tracking the deletion asynchronously. See Elastic Data. - ⚠️ API: Purchases create endpoints drop the
multidbquery param — all organizations now route through the v2 conversion-factors pipeline unconditionally. - API: Elastic Data text→date/datetime column recasting now accepts day-first
DD/MM/YYYY(in addition to ISOYYYY-MM-DD), matching what the UI displays, and surfaces the expected format on a bad value. See Elastic Data. - Fixed the project task versions endpoint —
version_changes(what changed between versions) was never populated, and the most recent version was silently dropped from the list. - Fixed dataset visualization widgets rendering empty in project reports and their DOCX/PDF exports — they now resolve through the same query path as
POST /datasets/{key}/query.
July 24, 2026
API · MCP
- MCP: Expanded Elastic Dataset tools —
query_datasetgainssortandfiltersparams; addedget_dataset_record,list_dataset_groups(dataset folders), andlist_project_datasetstools. - API: Facilities
updateanddeletenow authorize across the whole accepted business family instead of the header org only — subsidiary facility rows are editable/deletable from the holding, mirroring howsold_productsalready works. Facility creation stays header-org only. - API: Logistic hub
update/deleteget the same family-wide authorization as facilities — subsidiary hub rows are editable/deletable under group view. - API: Transport (shipments/deliveries) bulk delete and own workforce bulk delete now follow the group view — family-scoped when
consolidate_groupis set, instead of only the header org. - API: Added Greenview hotel-stay emission factors for 227 additional countries (plus a missing Serbia match), broadening hotel stay CO2e coverage.
- Fixed LCA dashboard calculation errors listing the same underlying error multiple times per piece; block-scoped error codes are still preserved.
- Fixed OR-matching in Elastic Dataset record filters returning incorrect results.
July 23, 2026
API
- API: Vehicle consumption bulk delete (by IDs and by filters) now operates across the whole organization family when
consolidate_groupis set, instead of only the header org. Default behavior unchanged.
July 22, 2026
API
- ⚠️ API:
GET /v1/logistics/clientsno longer acceptsproject_id(the client list is now organization-wide, not project-scoped) and is now keyset-paginated via newsearch,last_client_name, andlimitparams — reads a dedicated lookup table instead of scanning the full logistics-requests history, fixing timeouts for large clients. - API: Added Scope 3 Category 13 (downstream leased assets) as a new GHG emission category (
downstream_leased) alongside the existing upstream-leased-assets category — accepted as acategoryvalue onPOST /historical-emissionsand invalidated_ti_all/get_total_impacts/get_greenhouse_gas_emissionsfilters. - API: Facilities list gains the same opt-in group view as business travels, vehicles, logistic hubs, transport, own workforce, and employees — a
consolidate_groupparam for holding-wide data. - API: LCA block responses now include
updated_by_nameandupdated_by_logo_urlfor the user who last updated a linked custom transport route. - API: Purchases list, totals, and count gain the same opt-in
consolidate_groupgroup view as the other modules — spans the org + descendants, each row enriched withorganization_id/name/logo. - API: Own workforce trainings paginated list gains the same opt-in
consolidate_groupgroup view as the accidents & absences list. - API: Employees
GET /v2/employeesgains asurvey_template_idfilter and now returns it in the response. - API: The emission-factors detail export now accepts
start_date/end_datein addition toyear. - Fixed the vehicle bulk-upload fuel-type dropdown excluding
battery_electric_vehicleandplug_in_hybrid_electric_vehicle, plus a related vehicle-type/fuel compatibility validation bug. - Fixed
DELETE /v1/projects/{project_id}still failing when the project had import sessions attached — sessions are now cleaned up first instead of only returning a409. - Fixed employee commuting CO2e (Scope 3 Cat. 7) to align with
total_impactsvalues, removing synthetic walking-employee rows that no longer matched the underlying calculation. - Fixed purchases bulk imports for v2 organizations — D&B supplier enrichment previously skipped them, leaving purchases unmatched to emission-factor configs and
product_nameempty. - Fixed CSV/XLSX header-row detection for files with sparse columns (filled only in the header row, never in data rows), which could misdetect the header on certain imports.
- Fixed purchases imports to resolve custom emission-factor groups and units defined on a parent organization — previously only descendant orgs were searched, blocking child-org imports.
- Fixed license plate matching during multi-org CSV imports to ignore hyphen/space formatting differences (normalizes to alphanumeric-only before comparing).
- Fixed heat invoice impact calculation falling through with no result when the v2 pipeline had no conversion steps — now falls back to the legacy emission-factor columns.
- Fixed the LCA scenario materials import template forcing material, supplier, and country into one combined dropdown value — the
material_idcolumn is nowmaterial_name, and each of the three now maps and validates independently. - API: Added a
product_name[]filter to the purchases list. - API: Purchase suppliers list (
GET /v1/purchases/suppliers) gains the same opt-inconsolidate_groupgroup view as the other modules. - API: Vehicle bulk delete (by IDs and by filters) now operates across the whole organization family when
consolidate_groupis set, instead of silently dropping subsidiary rows. Default behavior unchanged. - Fixed the business travel download export showing an emission factor from a frozen reference table instead of the one the calculation engine actually applied, so the exported factor and CO2e didn’t reconcile — the export now sources the factor and calculation chain from each trip’s own
conversion_steps, and adds aconversion_steps_detailcolumn showing the full multi-gas chain.
July 21, 2026
API
- API: PPWR packaging units gain an explicit
ppwr_categoryfield (Regulation (EU) 2025/40 Art. 3.1:sales/grouped/transport/e_commerce) — a user-set classification, never inferred, that now drives the gap and compliance engines instead of the legacypackaging_type. Also importable via aunit_ppwr_categoryCSV catalog column. - API: PPWR gap analysis adds category-conditioned obligations: Art. 24(1) void-space ratio cap for grouped/transport packaging (new
void_space_pctfield), Art. 25 + Annex V single-use plastic ban for grouped packaging (newis_single_usefield), and Art. 29 reuse-target advisories. - API: Added
POST /v2/ppwr/packaging-units/bulk-deletefor organization-scoped batch deletion of packaging units, and asearchquery param on the packaging units list endpoint for case-insensitive filtering by unit name or SKU reference. - API: Own workforce accidents & absences list and employee mobility surveys list (
GET /v2/employees) gain the same opt-in group view as business travels, vehicles, logistic hubs, and transport — aconsolidate_groupparam plusorganization_id[]filter for holding-wide data. - API: Added an opt-in
scope_to_project_organizationsquery param to the extended projects list — whentrue, projects owned by a parent/ancestor organization are only returned if the caller’s org is aproject_organizationsmember of that project. Defaults tofalse, unchanged behavior. - API: The logistics report export now includes
vehicle_license_plateandtrailer_license_platecolumns. - API: Added a bulk emission-factors export endpoint — queues an async export of emission-factor-detail records by organization(s), year, and category, with an
export_by_companyoption to produce a per-company ZIP instead of a combined workbook. - API: The business travel download export now includes the
passenger_numbercolumn (previously computed but omitted from the file). - API: Fixed integer fields above 2^53 being silently rounded during dataset ingestion — bare integer strings are now parsed exactly instead of routed through
float(). - API: Imports — custom-dataset column auto-mapping now recognizes a file header that contains every token of the field name plus an extra descriptive suffix (e.g. “Salario bruto oficina central” for field “Salario bruto”), reducing manual remapping. See
suggest-mapping. - Fixed incorrect PPWR Art. 7 recycled-content targets — the gap engine and the Declaration of Conformity resolver had disagreed with each other and with the regulation; both now read from one constants module.
- Fixed the PPWR supplier-survey template generator silently dropping questions for previously unmapped gap codes (e.g.
HEAVY_METALS_NON_COMPLIANT); itsgaps_addressedcount now matches the questions actually generated. - Fixed employee emissions calculated via the legacy path sometimes showing
co2e=0inGET /v2/employeesresponses even though the underlying emissions were non-zero.
July 20, 2026
API
- API: Added the Task Completion Assistant —
POST /v2/task-completion/projects/{project_id}/evaluatestreams (SSE) an AI-assisted evaluation of which project tasks are ready to be marked complete, combining deterministic data-presence signals with an LLM re-ask for ambiguous cases;POST /v2/task-completion/projects/{project_id}/completebulk-completes the selected tasks behind a server-side data-quality gate. Both support scoping to a subsidiary viaorganization_idand localized messages viaAccept-Language. - API: Logistic hubs list gains the same opt-in group view as business travels and vehicles — a
consolidate_groupparam (org + accepted descendants, each hub carrying its owning organization) and anorganization_id[]filter to scope it further. - API: Added an optional
request_datefield (YYYY-MM-DD) toPOST /v1/logistics/requestsand its bulk variant — distinct fromshipment_date, for customers who cross-reference logistics data against their own order-request date. - API: Employee survey custom fields support conditional branching — new
conditions(show child fields when a given option is selected) anddepends_on(link a field to a built-in step’s condition group) onCustomFieldSch. - API: Added bulk invoice splitting —
POST /v1/invoices/bulk-split-preview,bulk-split(by IDs), andbulk-split-by-filters. See invoices. - API: Transport (shipments/deliveries) list gains the same opt-in group view as business travels, vehicles, and logistic hubs — a
consolidate_groupparam with group-aware totals and anorganization_id[]filter. - Fixed vehicle consumption bulk uploads and CSV imports mishandling plates shared across organizations (fleet movements): auto-routing to the correct subsidiary now falls back correctly instead of rejecting the whole batch, and a plate genuinely ambiguous across multiple active orgs now requires an explicit organization instead of guessing one.
- Fixed a heat invoice impact miscalculation caused by an untyped UUID from a DB query; added missing standard gross-GJ conversion factors.
- Fixed
DELETE /v1/projects/{project_id}returning a500instead of a409when the project still has import sessions attached. - Fixed ROAD/RAIL logistics requests between separate landmasses (e.g. mainland Spain ↔ Canary Islands, Ibiza ↔ Mallorca) silently returning a near-zero, physically impossible distance instead of routing as maritime.
July 15, 2026
API · CLI
- API: Custom columns are now supported on eight more categories — employees, wastes, vehicles, business travels, invoices, invoice suppliers, facilities, and waste water treatments — matching the existing purchases behavior, with
custom_valuesnow returned on list/detail responses. Employees, wastes, business travels, and invoices also include custom columns in their downloaded exports. - API: Business travels and sold products list endpoints gain an opt-in
consolidate_groupquery param for a group-wide view across the header organization and its descendants — responses addorganization_name/organization_logo_url. Defaults tofalse, so existing callers are unaffected. - API: Added
GET /v1/company-lookup/match,/enrich, and/logo— a two-step Dun & Bradstreet company lookup (cheap name+country match, then a billable data enrich step) plus a Brandfetch logo suggestion, for the freemium onboarding flow. Restricted to accounts still in onboarding. - API:
GET /purchases/{id}/stepsnow returns an explicitsourcesarray per calculation period (source id, name, version), making calculation provenance explicit instead of implicit. - API: Added
non_currency_purchasesto the purchases unit-type enum, plus new ecoinvent unit options (kWh, MJ, ha) for custom emission factors. - API: Wastes gain a
provider_namefield (OCR-extracted service-provider name) on create, update, list, and detail. - API: Projects gain a
statusfield (active/archived); the extended projects list supports filtering by it. - API: LCA imports — direct material-to-process links now create connectable blocks matching the manual canvas; import summary counts (
total_inputs/total_output/total_blocks) are fixed from always returning zero; the dashboard now surfacesvalidation_errorsfor pieces that can’t compute; incompatible units raise a clearINCOMPATIBLE_UNITerror instead of silently corrupting piece data. - API: Imports — category-column value mappings are now remembered per organization/template across sessions;
mapping/suggestresponses addhistory_restored_count/stale_history_mapping_count. - API: Imports — vehicle bulk-upload fuel-type options now include electric, hybrid, and electric_renewable; large workbooks no longer error on
mapping/suggest(embedding requests are chunked under the model’s item limit). - API: Facilities creation now accepts
address_place_id/address_latitude/address_longitudefrom a Google Places result, skipping strict address validation that previously rejected valid rural/polígono addresses. - CLI: Added
dcy lca delete-materialanddcy lca bulk-delete-materials(aliasrm-materials) subcommands. See LCA CLI. - Fixed the v2 supplier-code
PATCHendpoint storing the wrong mapping ID for non-SIC (CNAE/NACE) codes, causing the assigned code to disappear on the nextGET; also fixed a404when assigning CNAE/NACE codes, since lookups only checked the SIC table. - Fixed
ChangePassword.old_passwordincorrectly enforcing an 8-character minimum, which raised an unhandled error for accounts with a legacy shorter password. - Fixed
CustomEmissionFactorDataEnergy.renewable_percentage— posting a custom energy emission factor without it no longer errors.
July 14, 2026
API · CLI
- API: Added
GET /v2/download/scope-report/{combustion,electricity,vehicles,recharge}per-category scope-report endpoints; Excel exports gaintotal_spendandcurrencycolumns. - API: Facilities list/detail responses now expose an
inbound_emailstatus field for the facility’s inbound-email onboarding state. - API: Imports — session creation accepts new routing-context parameters (
target_organization_id,measurement_campaign_id,lca_id,target_block_id) and a new anonymous suppliers import category. See imports. - API: Elastic Data — datasets can now be organized into folders (groups): new group CRUD endpoints and a
group_idfield on datasets. See datasets. - API: Elastic Data — schema inference (
POST /v2/elastic-data/inferences) accepts an optionaldataset_idto evolve an existing dataset’s schema instead of replacing it. - CLI: Fixed
dcy purchasesupplier commands —set-code,list, andexporthad incorrect download-path routing, broken pagination across all matches, and country-matching bugs; CSV parsing and export are also hardened against ragged rows and formula injection. - Fixed
GET /v2/vehicle_consumptionsand the facility wastes list returning a server error on an invalidsortvalue — both now fall back to the default order; the wastes list also gains previously-ignored sortable columns (description,total_km_to_waste_center,identification_name,updated_at). - Fixed
PATCH /v1/purchases/{id}(and the vehicle/invoice equivalents) crashing on a validcustom_emission_factor_iddue to a UUID/string type mismatch. - Fixed a spurious validation error on emission-factor config updates when
record_idscontained duplicates.
July 13, 2026
API
- API: Added a native Category 11 electricity audit export for sold products — a per product × country × period CSV with the emission-factor formula, source, and database used.
- API: PPWR gap-analysis endpoints (
/v2/ppwr/) now localize gap descriptions and required actions via theAccept-Languageheader (Spanish supported, English default). - Fixed a geocoding bug where addresses ending in an ISO alpha-2 country code (e.g. “Barcelona, ES”) could resolve to the wrong country, producing incorrect distances for business travel, logistics, and facility data.
- Fixed exports for custom emission factors showing “Unknown” instead of the emission-factor group name in the Provider column.
- Fixed the employees “unique values” endpoint not surfacing
telecommutingas awork_modelvalue alongsidehybrid.
July 10, 2026
API · MCP
- MCP: Added
create_vehicle,update_vehicle,create_employee, andupdate_employeewrite tools for managing vehicles and employees programmatically — supports type, ownership, license plate, country, situation, status, and partial updates. - MCP: Added
create_invoiceandupdate_invoicewrite tools for managing invoices programmatically, with type and status validation. - MCP: Added
create_logistics_requestwrite tool for creating logistics requests programmatically, with category, TOC, load unit, and subcontractor type validation. - MCP: Added
get_workforce_contractsread tool — exposes employee contract history filtered byown_workforce_id, returning start/end dates for contract period tracking. See workforce. - MCP: Added
get_workforce_remunerationstool to retrieve salary and compensation records for a given workforce contract, including amount, currency, and period dates. Completes the workforce tool set. - MCP: Added
list_double_materialitytool — retrieve CSRD Double Materiality assessment topics with optionalyear,lang, andmaterialfilters (docs). - MCP: Added
list_csrd_irostool — retrieve CSRD IROs (Impacts, Risks, and Opportunities) for a given year (docs). - MCP: Added
get_csrd_output_datatool — retrieve ESRS disclosure requirements grouped by code, with optional date range filters (docs). - MCP: Added
list_measurement_campaignstool — retrieve measurement campaigns (reporting periods) for an organization (docs). - MCP: Added
list_csrd_survey_resultstool — retrieve CSRD stakeholder survey results with impact and financial materiality scores, filterable byyearandlang(docs). - MCP: Added 6 PPWR packaging compliance tools —
list_packaging_units,get_packaging_unit,get_packaging_compliance,get_project_compliance,get_packaging_gaps, andget_ppwr_dashboard. Evaluate EU packaging regulation compliance at unit and project level, identify gaps, and view dashboard metrics. All use/v2/ppwr/routes. See PPWR. - API: Added optional
surface_area(numeric) andsurface_area_unit(string) fields to facility create, update, and read schemas (/v2/facilities/). Also available on waste water facility creation. Both fields are version-tracked. - MCP: Added
list_waste_water_treatmentsandget_waste_water_treatmenttools — query Scope 1 waste water treatment records by facility with date range, status, and CO2e status filters. See waste water. - MCP: Added
list_sold_products,get_sold_product_periods, andget_sold_product_period_emissionstools — access Scope 3 Category 11 (use of sold products) data including product catalog, reporting periods, and per-period emission breakdowns. See sold products. - Fixed
POST /v1/employees/csvrejecting multi-column CSVs (e.g. Organization + Email) with aFILE_PARSE_ERROR— the CSV branch now picks the email column the same way the Excel branch does.
July 9, 2026
MCP
- MCP: Added five new write tools for Scope 3 data entry —
create_purchase(purchased goods & services),create_business_travel(employee travel with origin/destination or manual distance),create_hotel_stay(accommodation withnightsorcheck_out_date),create_transport(multi-leg shipments with per-section transport mode), andcreate_waste(waste generated in operations — Scope 3 Category 5). All include client-side enum validation and async CO2e calculation. - MCP: Added
update_purchasewrite tool for partial updates to existing purchases — supportsproduct_name,quantity,unit_id,purchase_date,expense_type,description,recycled, andcustom_emission_factor_idfields with client-sideexpense_typevalidation. - MCP: Added
update_business_travelwrite tool for partial updates to business travel records — supportstransport_type, dates, origin/destination,distance_km, vehicle details, and trip metadata with client-side enum validation. - MCP: Added
update_hotel_staywrite tool for partial updates to hotel stay records — supports dates, country, hotel name/address, and room count with automatic CO2e recalculation. - MCP: Added
update_transportwrite tool for replacing transport records — accepts a fullsectionsarray with per-leg transport mode, validatestransport_type,travel_method, andfrequencyenums. - MCP: Added
update_wastewrite tool for partial updates to waste records (Scope 3 Category 5) — supportsidentification_name,base_quantity, dates,destination,total_km_to_waste_center, and emission factor fields with automatic CO2e recalculation. - MCP: All Scope 3 write tools are now complete — 5 create tools and 5 update tools covering purchases, business travels, hotel stays, transports, and wastes.
- MCP: Added
create_decarb_targetwrite tool for creating reduction targets within decarbonization plans — supportsscope(1-3),target_type(absolute/intensity),base_year,target_year,base_emissions, andreduction_percentagewith client-side validation. - MCP: Added
create_decarb_actionwrite tool for creating concrete decarbonization initiatives linked to reduction targets — supportstitle,target_id,estimated_co2e_reduction,estimated_cost,payback_period_months,priority(quick_win/medium_term/long_term), andinitiative_typewith client-side validation. - MCP: Added
create_projectwrite tool for creating ESG projects — supportsname,responsible_user_id,project_type(17 framework types including carbon_footprint, iso_14064, lca, esrs),methodology, and date fields with client-side validation. - MCP: Added
create_project_taskwrite tool for creating tasks within projects — supportstitle,assigned_to,due_date,stage(pending/in_progress/completed),category,tags, and subtask nesting viaparent_task_idwith client-sidestagevalidation. - MCP: Added
submit_kpi_responsewrite tool for submitting values to Custom KPI campaigns — supports numeric, text, date, and select-type KPIs with optionalfacility_idscoping. Each entry requires akpi_idand the matching value field (value_numeric,value_text,value_date, oroption_id). - MCP: Added data entry workflow guidance to the server’s
_INSTRUCTIONSprompt — LLMs now receive step-by-step chains for each write tool and a reminder to confirm with users before creating records. - MCP: Added
list_workforceread tool — the first tool covering the ESG social pillar (own workforce / employees). Exposes demographics, employment categories, contract dates, locations, and nationality. See workforce. - MCP: Added
list_workforce_absenteeismsread tool — exposes workforce absenteeism and workplace accident records. Each record is either an absenteeism (hours lost) or an accident (date + context), covering ESRS health & safety social disclosures. See workforce. - MCP: Added
list_workforce_trainingsread tool — exposes workforce training records (type, hours, dates, description) for ESG social disclosures. See workforce.
July 8, 2026
API · MCP
- API: Added
nightsparameter to hotel stay create and update endpoints as an alternative tocheck_out_date— whennightsis provided withcheck_in_date, the checkout date is derived automatically. Eithercheck_out_dateornightsmust be supplied on creation. - API: Added
custom_valuesresponse field to purchase list, detail, create, and update endpoints — returns elastic-data custom column values as a key-value dictionary. Purchase list sorting now also supports custom column keys. - MCP: Added
create_facilityandupdate_facilityas the first write tools for the MCP server — AI assistants can now create facilities with all standard fields and update existing ones with partial payloads and client-side status validation. - API: Added
GET /v2/elastic-data/datasets/{dataset_id}/records/{record_id}endpoint to retrieve individual dataset records by ID.
July 7, 2026
API · CLI · Documentation
- API: Added consolidated reporting endpoints —
POST /v1/total-impacts/purchases/reportreturns product-level purchase emissions ranked by CO2e, andPOST /v1/total-impacts/hotel-staysreturns hotel-stay emissions (Scope 3 Category 6) with monthly buckets and weighted totals. - API: Added header row auto-detection for tabular imports — the
header_rowparameter andheader_row_candidatesresponse field let API consumers handle files with title rows above the actual column headers. - ⚠️ CLI: Resolved flag shorthand collisions — removed
-yfrom--year/--registration-year(now means--yes) and-vfrom--verboseon vehicle diagnose/upload (now means HTTP debug). Use the long forms--yearand--verboseinstead. - CLI: Extended shell tab-completion to purchase, shipment, widget, import, and file-reading commands — widget supports two-level completion (project ID → widget ID). Also auto-registered
--project-idand--file-idflag completions across all commands that accept them. - CLI: Routed all human-facing messages (cancellation notices, empty-result warnings, validation errors, verbose output) to stderr —
--jsonoutput on stdout is now reliably parseable via pipes. - Documentation: Restructured CLI docs — split large pages into standalone command pages for facilities, vehicles, employees, invoices, purchases, transport, and 10+ more commands.
July 6, 2026
API · CLI · MCP
- Added land use change (
land_use_change) as a new GHG emission category across API, MCP, and historical emissions (Scope 1 — LULUCF). The MCPget_greenhouse_gas_emissionstool now acceptscategory='land_use_change'. - CLI: Added shell tab-completion for positional arguments on facility, vehicle, employee, file, project, hub, transport, and member commands — IDs are suggested with human-readable names or license plates.
- CLI: Changed
invoice list --sizedefault from100to50to align with all other list commands. - MCP: Fixed prompt templates (
carbon_footprint_summary,fleet_report,logistics_overview) to default year to the previous calendar year instead of hardcoded2024.
July 5, 2026
CLI
- CLI: Added SIGTERM handling for clean shutdown in containers — the CLI now exits gracefully with code 143 when stopped by Docker, Kubernetes, or systemd.
- Documentation: Expanded CLI docs with exit codes reference, structured JSON error output format,
auth status --checkfor credential validation, automatic retry behavior,--jsonshorthand,dcy doctorexit codes, andconfig unset/setvalidation.
July 4, 2026
MCP · Documentation
- MCP: Added client-side enum validation to 14 tools — catches invalid
status,ownership,situation,transport_type,category,framework,impact_category, and other enum parameters before API calls with clear error messages instead of silent empty results. - MCP: Enriched docstrings for 9 tools with GHG scope context and usage hints, improving LLM tool discovery for
list_vehicles,list_employees,list_transports,list_files,get_recent_activities,list_logistics_hubs,get_logistics_report,get_custom_kpi, andget_kpi_campaign_values. - MCP: Fixed incorrect enum values in vehicles, hotel stays, transports, and business travels tool documentation.
- MCP: Added Gemini CLI configuration to the MCP quickstart guide.
- Documentation: API response field accuracy sweep — fixed types, nullability, and missing fields across 20+ endpoint pages. Added cross-links between API, CLI, and MCP documentation.
July 3, 2026
API · MCP · Documentation
- API: Added async logistics report export endpoint
GET /v1/logistics/report/export— queues a background job to generate a detailed row-per-leg export (CSV, Excel, or JSON with optional per-client ZIP) and emails a download link when ready. - MCP: Added initial client-side enum validation and enriched tool docstrings for better LLM self-correction and tool selection.
- MCP: Expanded
_INSTRUCTIONSwith workflow guidance and best practices for multi-step analysis. - Documentation: Removed 56 internal/UI-only endpoint pages from public API docs — the developer center now shows only endpoints useful for external API consumers.
- Documentation: Fixed API base URLs from
/api/v1/to/v1/and improved the API introduction with versioning and rate limit information. - Documentation: Enriched CLI documentation across all command pages with output examples, flag tables, JSON examples, and missing subcommands.
- Documentation: Elevated 8+ MCP tool pages with response examples, parameter fixes, and scope guidance.
July 2, 2026
Documentation
- Documentation: Added Common Errors sections to all API endpoint pages with error codes, descriptions, and resolution guidance.
- Documentation: Added LCA endpoint pages —
create-from-json,create-from-excel,validate,impacts,export-xlsx, anddashboard. - Documentation: Added imports endpoint pages for
column-valuesanderror-groups.
July 1, 2026
Documentation
- Documentation: Added endpoint pages for imports module (lifecycle, mapping, validation, rows), custom KPI (datasets, definitions, assignments), dashboards, sold products, historical emissions, and logistics navigation pages.
June 2026
June 30, 2026
API · MCP
- MCP: Expanded toolset from 21 to 45 tools — added 24 new read-only tools across facilities detail, wastes, hotel stays, transports, logistics (clients/hubs/report/summary), files, historical emissions, total impacts, emission factors, projects, dashboards, decarbonization plans, KPI datasets/campaigns/assignments, LCA block/piece impacts + validation, elastic data, and compliance.
- API: Added Elastic Data field/record CRUD endpoints with type-aware filtering and sorting — new
POST/PATCH/DELETEfor fields and records with operator grammar for typed queries. - API: Added LCA ecoinvent activity linking — three new endpoints for searching ecoinvent 3.11 activities (
GET /v1/lca/ecoinvent/activities), resolving locations (GET /v1/lca/ecoinvent/activity-locations), and linking materials to impact sources (POST /v1/lca/materials/{id}/link).
June 29, 2026
API · MCP
- API: Exposed LCA portfolio and dashboard via public API —
GET /lca/portfolioandGET /lca/portfolio/{lca_id}/dashboardnow accept API key authentication alongside JWT. - MCP: Added LCA tools —
list_lcasfor querying portfolios andget_lca_dashboardfor EN 15804 environmental impact results.
June 15, 2026
API
- API: Added employees bulk delete endpoints — delete by IDs (
POST /v1/employees/bulk-delete) and by filters (POST /v1/employees/bulk-delete-by-filters).
June 8, 2026
API
- API: Added custom KPI Excel download endpoint (
GET /v1/custom-kpi/datasets/{id}/download) for programmatic data export. - API: Added
GET /v1/invoices/totalsendpoint for aggregated invoice metrics. - API: Added
filter_byparameter toGET /v1/purchasesfor server-side per-column filtering.
June 1, 2026
MCP
- MCP: Fixed Clerk SSO token support in the MCP OAuth authentication flow.
May 2026
May 9, 2026
API · Documentation
- API: Added logistics fuel recharges endpoints —
POST /v1/logistics/rechargesandPOST /v1/logistics/recharges/bulkfor recording fleet fuel consumption. - Documentation: Added Security & Compliance page covering API key lifecycle, data protection, access control, and incident response.
May 5, 2026
MCP
- MCP: Added Manus streamableHttp configuration to MCP quickstart.
May 4, 2026
Documentation
- Documentation: Added GHG Protocol data requirements guide.
- Documentation: Added Scope 3 Category 11 — Use of Sold Products guide.
April 2026
April 23, 2026
API
- API: Added
POST /v1/invoices/recalculatefor async invoice recalculation with email notification. - API: Added new filter parameters and
filter-optionsendpoint to invoices.
April 22, 2026
API · MCP
- API: Exposed
total_energy_kwhon vehicle consumption endpoints. - API: Added
GET /v1/waste-efsendpoint for querying waste emission factors. - MCP: Added
get_greenhouse_gas_emissionstool to MCP emissions page.
April 17, 2026
API
- API: Added wastes list, detail, bulk-delete, and unique-values endpoints.
April 16, 2026
CLI · Documentation
- ⚠️ CLI: Renamed CLI binary from
dcycletodcy— all commands now use thedcyprefix. - Documentation: Completed
dcyCLI command coverage in developer center docs. - Documentation: Added ISO 14001 management systems guide.
April 8, 2026
API · MCP
- API: Added Imports module —
GET /v2/imports/sessionsfor listing and filtering import sessions, plus provider-backed options endpoint. - MCP: Added remote mode setup for VS Code, ChatGPT, and Copilot Studio to MCP quickstart.
April 7, 2026
Documentation
- Documentation: Added Imports section to the developer center.
April 6, 2026
MCP
- MCP: Added Copilot Studio, ChatGPT, and Gemini CLI configuration guides to MCP quickstart.
April 1, 2026
MCP
- MCP: Launched remote MCP server at
mcp.dcycle.io— no local installation required.
March 2026
March 31, 2026
API
- API: Added autonomous file upload flow —
POST /v1/files/uploadandPOST /v1/files/processfor programmatic document upload with AI-powered extraction and retry support.
January 2026
January 30, 2026
CLI · MCP · Documentation
- CLI: Launched Dcycle CLI documentation — authentication, organizations, emissions data, logistics, and assets commands.
- CLI: Added workflow examples — CI/CD pipeline, multi-org reporting, and logistics automation.
- MCP: Launched MCP Server documentation — overview, quickstart, and tool reference pages for organizations, facilities, vehicles, emissions, and resources.
- Documentation: Added automation guides — reporting pipelines, multi-organization management, and AI-assisted analysis.
January 12, 2026
Documentation
- Documentation: Added ISO 14064 documentation structure with category-by-category emission guides.
January 11, 2026
API
- API: Updated API key authentication to include user attribution on API key requests.
December 2025
December 23, 2025
API
December 11, 2025
API
- API: Added endpoint documentation for business travels and employees.
December 3, 2025
Documentation
- Documentation: Added GHG Protocol Scope 3 guides — Category 1 through Category 9, covering purchased goods, capital goods, fuel & energy, upstream transport, waste, business travel, employee commuting, and downstream transport.
December 2, 2025
API
- API: Added logistics package and client endpoint pages with traceability parameter documentation.
November 2025
November 20, 2025
API · Documentation
- Launched the Dcycle Developer Center at code.dcycle.io — the central hub for API, CLI, and MCP documentation.
- API: Published initial API reference for logistics (calculate shipment, upload CSV, get TOCs, get report), vehicles, and facilities.
- Documentation: Published introduction, quickstart, and authentication guides.