CBAM ADD-ONADD-ON
This feature is currently in preview. That means that we believe the feature is good enough to start using, but:
- There might still be bugs or edge cases we haven't covered.
- The documentation and error messages might be less detailed.
- We might need to make further changes in the API surface.
We need the ability to iterate quickly on preview versions, so we offer less guarantees of stability. When we make changes to the preview version, we will release a new version, and you must migrate to this new version within one month. Read more about API versioning at Climatiq here.For this reason, preview endpoints are not available without explicitly opting in. If you would like to opt-in to this preview feature, please contact us.
The Carbon Border Adjustment Mechanism (CBAM) (opens in a new tab) has been introduced by the European Union (EU) to promote lower carbon production in countries outside of the EU. It places requirements on importers of certain goods (currently Iron & Steel, Aluminum, Cement, Fertilizer, Electricity and Hydrogen) to report emissions from their production and ultimately pay a tax on those emissions. Starting in 2026, companies will be required to purchase certificates corresponding to the total emissions from their imported goods in these categories.
Climatiq's CBAM feature uses benchmark emission factors published by the EU that may be used for reporting purposes where estimates are permitted. These include direct, indirect and total emissions for the countries that, together, produce more than 90% of EU imports. Where there is no EF for the combination of good and region, the EU default "Rest of World" EF is applied (opens in a new tab). The default factors may also be obtained directly by using "ROW"
as the region. Currently, the CBAM emission factors cover just those published by the EU for Iron & Steel, Aluminum, Cement and Fertilizer.
The goods covered by CBAM regulations are defined by specific Combined Nomenclature (opens in a new tab)(CN) codes. The definitive list of goods is given on the CBAM website in Annex 1 to the Regulation. (opens in a new tab)
Note that the official CBAM guidance is subject to review and revision by the EU and users are responsible for ensuring they comply with the latest guidance.
Estimate
POST Calculate total estimated emissions produced for a particular Combined Nomenclature (opens in a new tab)(CN) code, for use with CBAM reporting.
https://preview.api.climatiq.io/cbam/v1-preview1/estimate
This endpoint lets you specify a CN code and have Climatiq automatically select the appropriate emission factor.
CN codes have to follow the same format as the CBAM regulations to be accepted by the endpoint. The format is one of the following - note the spaces between sets of digits.
- 4 digits: 7309
- 6 digits: 7318 15
- 8 digits: 7318 24 00
The string of digits also has to match the string in the CBAM regulations exactly - there is no hierarchy or fall back e.g. “7309 14 00” will not be converted into “7309”.
Request
This endpoint accepts the following parameters:
- cn_coderequired string
The combined nomenclature code for the imported goods.
- production_regionrequired string
The region the goods were produced in. If you specify
"ROW"
then this will return the EU default factors. - weightrequired float
The weight of the imported goods in the defined unit
- weight_unitstring
Unit of weight. One of
g
,kg
,t
(metric ton),lb
,ton
(US short ton)Default Valuekg
curl --request POST \ --url https://preview.api.climatiq.io/cbam/v1-preview1/estimate \ --header "Authorization: Bearer $CLIMATIQ_API_KEY" \ --data '{ "cn_code": "7206 10 00", "production_region": "CN", "weight": 100, "weight_unit": "t"}'
Response
This endpoint returns an object with several EstimationWithSourceTrail, which includes the total amount of emissions in kgCO2e
and the emission factor used to calculate the emissions.
- co2efloat
The total greenhouse gas emissions associated with the imported goods, expressed in the unit listed in
co2e_unit
- co2e_unitstring
The unit in which the
co2e
field is expressed. Currently, this value is always "kg" - co2e_calculation_methodstring
Which calculation methodology that was used for the calculation. The value of this is either
"ipcc_ar4_gwp100"
,"ipcc_ar5_gwp100"
,"ipcc_ar6_gwp100"
or"ipcc_mixed_gwp100"
. Learn more about calculation methods here. - estimated_costs_eurfloat
Estimated cost in euros of buying carbon certificates for emissions equivalent to
co2e
, based on the average 2023 certificate cost of 84 euros per tonne. - direct_emissionsEstimationWithSourceTrail
An object that represents the estimated direct emissions occurred during the production of the imported goods
- indirect_emissionsEstimationWithSourceTrail
An object that represents the estimated indirect emissions occurred during the production of the imported goods
- noticesarray of Notices
Any notices related to the calculation.
{ "co2e": 206000, "co2e_unit": "kg", "co2e_calculation_method": "ipcc_ar5_gwp100", "estimated_costs_eur": 17304, "direct_emissions": { "co2e": 183000, "co2e_unit": "kg", "co2e_calculation_method": "ar5", "co2e_calculation_origin": "source", "emission_factor": { "name": "Iron non-alloy steel - primary - ingots", "activity_id": "metals-type_iron_non_alloy_steel_primary_ingots", "id": "969d9d23-bec0-4c5f-9727-1ca6a0db7505", "access_type": "public", "source": "CBAM", "source_dataset": "Emission intensities at country level", "year": 2023, "region": "CN", "category": "Metals", "source_lca_activity": "direct", "data_quality_flags": [] }, "constituent_gases": { "co2e_total": 183000, "co2e_other": null, "co2": null, "ch4": null, "n2o": null }, "activity_data": { "activity_value": 100000, "activity_unit": "kg" }, "audit_trail": "enabled", "source_trail": [ { "data_category": "emission_factor", "name": "Iron non-alloy steel - primary - ingots", "source": "CBAM", "source_dataset": "Emission intensities at country level", "year": "2023", "region": "CN", "region_name": "China" } ] }, "indirect_emissions": { "co2e": 23000, "co2e_unit": "kg", "co2e_calculation_method": "ar5", "co2e_calculation_origin": "source", "emission_factor": { "name": "Iron non-alloy steel - primary - ingots", "activity_id": "metals-type_iron_non_alloy_steel_primary_ingots", "id": "46f63b74-63fb-4a52-8fea-436a322893b2", "access_type": "public", "source": "CBAM", "source_dataset": "Emission intensities at country level", "year": 2023, "region": "CN", "category": "Metals", "source_lca_activity": "indirect", "data_quality_flags": [] }, "constituent_gases": { "co2e_total": 23000, "co2e_other": null, "co2": null, "ch4": null, "n2o": null }, "activity_data": { "activity_value": 100000, "activity_unit": "kg" }, "audit_trail": "enabled", "source_trail": [ { "data_category": "emission_factor", "name": "Iron non-alloy steel - primary - ingots", "source": "CBAM", "source_dataset": "Emission intensities at country level", "year": "2023", "region": "CN", "region_name": "China" } ] }, "notices": []}
Notice
The notices
array can contain objects like these:
Notice attributes | Type | Description |
---|---|---|
severity | string | Either warning or info . warning is for messages that might lead to inaccurate calculations. You should check these to make sure the results are fit for your intended purpose. info is for information that will help you understand the calculation result better. |
message | string | An explanation of the notice. |
code | string | A machine-readable categorization of the notice to allow automatic handling. |
The different possible values for code
are as follows. You should not treat this list as exhaustive as more values may be added with time:
Notice code value | description |
---|---|
region_fallback | No specific emission factors were found for the combination of product and imported region. A wider geographic emission factor was used instead. |