{"url_path":"/sec/cdtg/10-k/2026/cover-page","section_key":"cover-page","section_title":"Cover Page","topic":"sec","document":{"doc_type":"20-F","doc_date":"2026-05-15","source_url":"https://www.sec.gov/Archives/edgar/data/1793895/0001731122-26-000740-index.html","accession_number":"0001731122-26-000740","cik":"0001793895","ticker":"CDTG","issuer_name":"CDT Environmental Technology Investment Holdings Ltd","edgar_url":"https://www.sec.gov/Archives/edgar/data/1793895/0001731122-26-000740-index.html","primary_entity_key":"0001793895","primary_entity_name":"CDT Environmental Technology Investment Holdings Ltd"},"word_count":1882,"has_tables":true,"body_markdown":"false\n2025\nFY\n0001793895\n\n0001793895\n\n2025-01-01\n2025-12-31\n\n0001793895\n\ndei:BusinessContactMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\n2025-12-31\n\n0001793895\n\n2024-12-31\n\n0001793895\n\nCDTG:CommonStockClassAMember\n\n2025-12-31\n\n0001793895\n\nCDTG:CommonStockClassAMember\n\n2024-12-31\n\n0001793895\n\nCDTG:CommonStockClassBMember\n\n2025-12-31\n\n0001793895\n\nCDTG:CommonStockClassBMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:CommonClassBMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:CommonClassBMember\n\n2024-12-31\n\n0001793895\n\n2024-01-01\n2024-12-31\n\n0001793895\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nCDTG:SewageTreatmentSystemsMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:SewageTreatmentSystemsMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:SewageTreatmentSystemsMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nCDTG:SewageTreatmentServicesAndOthersMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:SewageTreatmentServicesAndOthersMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:SewageTreatmentServicesAndOthersMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nus-gaap:CommonStockMember\n\n2022-12-31\n\n0001793895\n\nus-gaap:AdditionalPaidInCapitalMember\n\n2022-12-31\n\n0001793895\n\nCDTG:RetainedEarningsStatutoryReservesMember\n\n2022-12-31\n\n0001793895\n\nCDTG:RetainedEarningsUnrestrictedMember\n\n2022-12-31\n\n0001793895\n\nus-gaap:AccumulatedOtherComprehensiveIncomeMember\n\n2022-12-31\n\n0001793895\n\nus-gaap:NoncontrollingInterestMember\n\n2022-12-31\n\n0001793895\n\n2022-12-31\n\n0001793895\n\nus-gaap:CommonStockMember\n\n2023-12-31\n\n0001793895\n\nus-gaap:AdditionalPaidInCapitalMember\n\n2023-12-31\n\n0001793895\n\nCDTG:RetainedEarningsStatutoryReservesMember\n\n2023-12-31\n\n0001793895\n\nCDTG:RetainedEarningsUnrestrictedMember\n\n2023-12-31\n\n0001793895\n\nus-gaap:AccumulatedOtherComprehensiveIncomeMember\n\n2023-12-31\n\n0001793895\n\nus-gaap:NoncontrollingInterestMember\n\n2023-12-31\n\n0001793895\n\n2023-12-31\n\n0001793895\n\nus-gaap:CommonStockMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:AdditionalPaidInCapitalMember\n\n2024-12-31\n\n0001793895\n\nCDTG:RetainedEarningsStatutoryReservesMember\n\n2024-12-31\n\n0001793895\n\nCDTG:RetainedEarningsUnrestrictedMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:AccumulatedOtherComprehensiveIncomeMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:NoncontrollingInterestMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:CommonStockMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nus-gaap:AdditionalPaidInCapitalMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nCDTG:RetainedEarningsStatutoryReservesMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nCDTG:RetainedEarningsUnrestrictedMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nus-gaap:AccumulatedOtherComprehensiveIncomeMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nus-gaap:NoncontrollingInterestMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nus-gaap:CommonStockMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nus-gaap:AdditionalPaidInCapitalMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:RetainedEarningsStatutoryReservesMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:RetainedEarningsUnrestrictedMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nus-gaap:AccumulatedOtherComprehensiveIncomeMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nus-gaap:NoncontrollingInterestMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nus-gaap:CommonStockMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nus-gaap:AdditionalPaidInCapitalMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:RetainedEarningsStatutoryReservesMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:RetainedEarningsUnrestrictedMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nus-gaap:AccumulatedOtherComprehensiveIncomeMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nus-gaap:NoncontrollingInterestMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nus-gaap:CommonStockMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:AdditionalPaidInCapitalMember\n\n2025-12-31\n\n0001793895\n\nCDTG:RetainedEarningsStatutoryReservesMember\n\n2025-12-31\n\n0001793895\n\nCDTG:RetainedEarningsUnrestrictedMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:AccumulatedOtherComprehensiveIncomeMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:NoncontrollingInterestMember\n\n2025-12-31\n\n0001793895\n\nCDTG:CQBVIMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:CDTBVIMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:UltraHKMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:CDTHKMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ShenzhenCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:BJCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:FJLSYMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:TJCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:CDCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:BJCXCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:BDCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:HSCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:GXCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:HZCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:HHHTCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:TYCDTMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ShaowuMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nus-gaap:IPOMember\n\n2024-04-22\n\n0001793895\n\nus-gaap:IPOMember\n\n2024-04-21\n2024-04-22\n\n0001793895\n\nus-gaap:IPOMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:IPOMember\n\n2024-12-31\n\n0001793895\n\ncurrency:CNY\n\n2025-12-31\n\n0001793895\n\ncurrency:CNY\n\n2024-12-31\n\n0001793895\n\ncurrency:HKD\n\n2025-12-31\n\n0001793895\n\ncurrency:HKD\n\n2024-12-31\n\n0001793895\n\ncurrency:CNY\n\n2025-01-01\n2025-12-31\n\n0001793895\n\ncurrency:CNY\n\n2024-01-01\n2024-12-31\n\n0001793895\n\ncurrency:CNY\n\n2023-01-01\n2023-12-31\n\n0001793895\n\ncurrency:HKD\n\n2025-01-01\n2025-12-31\n\n0001793895\n\ncurrency:HKD\n\n2024-01-01\n2024-12-31\n\n0001793895\n\ncurrency:HKD\n\n2023-01-01\n2023-12-31\n\n0001793895\n\n2024-04-28\n2024-04-29\n\n0001793895\n\nCDTG:SewageTreatmentServicesMember\n\n2025-12-31\n\n0001793895\n\nCDTG:SewageTreatmentServices1Member\n\n2025-12-31\n\n0001793895\n\n2022-01-01\n2022-12-31\n\n0001793895\n\n2022-01-02\n\n0001793895\n\nus-gaap:BuildingMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:EquipmentMember\nsrt:MinimumMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:EquipmentMember\nsrt:MaximumMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:FurnitureAndFixturesMember\nsrt:MinimumMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:FurnitureAndFixturesMember\nsrt:MaximumMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:AutomobilesMember\nsrt:MinimumMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:AutomobilesMember\nsrt:MaximumMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:BuildingMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:EquipmentMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:EquipmentMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:FurnitureAndFixturesMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:FurnitureAndFixturesMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:AutomobilesMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:AutomobilesMember\n\n2024-12-31\n\n0001793895\n\nCDTG:FujianTantanTechnologyCoLtdMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:FujianTantanTechnologyCoLtdMember\n\n2025-12-31\n\n0001793895\n\nCDTG:FujianTantanTechnologyCoLtdMember\n\n2024-12-31\n\n0001793895\n\nCDTG:FuzhouJinhuiEnvironmentalServiceCoLtdMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:FuzhouJinhuiEnvironmentalServiceCoLtdMember\n\n2025-12-31\n\n0001793895\n\nCDTG:FuzhouJinhuiEnvironmentalServiceCoLtdMember\n\n2024-12-31\n\n0001793895\n\nCDTG:YueyuQiMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:YueyuQiMember\n\n2025-12-31\n\n0001793895\n\nCDTG:YueyuQiMember\n\n2024-12-31\n\n0001793895\n\nCDTG:WanqiangLinMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WanqiangLinMember\n\n2025-12-31\n\n0001793895\n\nCDTG:WanqiangLinMember\n\n2024-12-31\n\n0001793895\n\nCDTG:BeijingMinhongyunEnergySupplyCoLtdMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:BeijingMinhongyunEnergySupplyCoLtdMember\n\n2025-12-31\n\n0001793895\n\nCDTG:BeijingMinhongyunEnergySupplyCoLtdMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ShenzhenLiYaxinIndustrialCoLtdMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ShenzhenLiYaxinIndustrialCoLtdMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ShenzhenLiYaxinIndustrialCoLtdMember\n\n2024-12-31\n\n0001793895\n\nCDTG:YunwuLiMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:YunwuLiMember\n\n2025-12-31\n\n0001793895\n\nCDTG:YunwuLiMember\n\n2024-12-31\n\n0001793895\n\nCDTG:JianzhongZhaoMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:JianzhongZhaoMember\n\n2025-12-31\n\n0001793895\n\nCDTG:JianzhongZhaoMember\n\n2024-12-31\n\n0001793895\n\nCDTG:JianshanMaMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:JianshanMaMember\n\n2025-12-31\n\n0001793895\n\nCDTG:JianshanMaMember\n\n2024-12-31\n\n0001793895\n\nCDTG:YanWangMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:YanWangMember\n\n2025-12-31\n\n0001793895\n\nCDTG:YanWangMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ShaozhaoXuMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ShaozhaoXuMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ShaozhaoXuMember\n\n2024-12-31\n\n0001793895\n\nCDTG:TotalMember\n\n2025-12-31\n\n0001793895\n\nCDTG:TotalMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ChinaBankOfCommunicationMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ChinaBankOfCommunicationMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ChinaBankOfCommunicationMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoMember\nsrt:MinimumMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoMember\nsrt:MaximumMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoMember\n\n2024-12-31\n\n0001793895\n\nCDTG:BankOfChinaMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:BankOfChinaMember\n\n2025-12-31\n\n0001793895\n\nCDTG:BankOfChinaMember\n\n2024-12-31\n\n0001793895\n\nCDTG:WeizhongBanksMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBanksMember\n\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBanksMember\n\n2024-12-31\n\n0001793895\n\nCDTG:WeizhongBankMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBankMember\n\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBankMember\n\n2024-12-31\n\n0001793895\n\nCDTG:WeizhongBankOneMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBankOneMember\n\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBankOneMember\n\n2024-12-31\n\n0001793895\n\nCDTG:WeizhongBankTwoMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBankTwoMember\n\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBankTwoMember\n\n2024-12-31\n\n0001793895\n\nCDTG:SichuanXinwangMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:SichuanXinwangMember\n\n2025-12-31\n\n0001793895\n\nCDTG:SichuanXinwangMember\n\n2024-12-31\n\n0001793895\n\nCDTG:WeizhongMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongMember\n\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongMember\n\n2024-12-31\n\n0001793895\n\nCDTG:WeizhongOneMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongOneMember\n\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongOneMember\n\n2024-12-31\n\n0001793895\n\nCDTG:SichuanXinwangBankCoLtdMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:WeizhongBankMember\nsrt:MinimumMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:SichuanXinwangBankCoLtdMember\n\n2025-12-31\n\n0001793895\n\nCDTG:SichuanXinwangBankCoLtdMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdMember\nsrt:MinimumMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdMember\nsrt:MaximumMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdOneMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdOneMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdOneMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdTwoMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdTwoMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ZhejiangHechengRuralCommercialBankCoLtdTwoMember\n\n2024-12-31\n\n0001793895\n\nCDTG:LongTermLoansMember\n\n2025-12-31\n\n0001793895\n\nCDTG:LongTermLoansMember\n\n2024-12-31\n\n0001793895\n\nCDTG:LouHongMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:LouHongMember\n\n2025-12-31\n\n0001793895\n\nCDTG:LouHongMember\n\n2024-12-31\n\n0001793895\n\nCDTG:RunzeLiMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:RunzeLiMember\n\n2025-12-31\n\n0001793895\n\nCDTG:RunzeLiMember\n\n2024-12-31\n\n0001793895\n\nCDTG:ShanghaiXinjingConstructionLaborServiceCenterMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:ShanghaiXinjingConstructionLaborServiceCenterMember\n\n2025-12-31\n\n0001793895\n\nCDTG:ShanghaiXinjingConstructionLaborServiceCenterMember\n\n2024-12-31\n\n0001793895\n\nCDTG:NewBenGlobalEnterprisesMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:NewBenGlobalEnterprisesMember\n\n2025-12-31\n\n0001793895\n\nCDTG:NewBenGlobalEnterprisesMember\n\n2024-12-31\n\n0001793895\n\nCDTG:NanjingChuangbaoManagementMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:NanjingChuangbaoManagementMember\n\n2025-12-31\n\n0001793895\n\nCDTG:NanjingChuangbaoManagementMember\n\n2024-12-31\n\n0001793895\n\nCDTG:PRCSubsidiariesMember\n\n2025-12-31\n\n0001793895\n\nCDTG:PRCSubsidiariesMember\n\n2024-12-31\n\n0001793895\n\nCDTG:HongKongSubsidiariesMember\n\n2025-12-31\n\n0001793895\n\nCDTG:HongKongSubsidiariesMember\n\n2024-12-31\n\n0001793895\n\nCDTG:PRCSubsidiariesOtherThanShenzhenCDTMember\n\n2025-12-31\n\n0001793895\n\nCDTG:PRCSubsidiariesOtherThanShenzhenCDTMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:CreditRiskMember\n\n2025-12-31\n\n0001793895\n\nus-gaap:CreditRiskMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:CreditRiskMember\ncountry:CN\n\n2025-12-31\n\n0001793895\n\ncurrency:CNY\nus-gaap:CreditRiskMember\n\n2024-12-31\n\n0001793895\n\nus-gaap:CreditRiskMember\ncountry:HK\n\n2025-12-31\n\n0001793895\n\nus-gaap:CreditRiskMember\ncountry:HK\n\n2024-12-31\n\n0001793895\n\nCDTG:Customer1Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer2Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer3Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer1Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer2Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer3Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer4Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer5Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer1Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nCDTG:Customer2Member\nus-gaap:SalesRevenueNetMember\nus-gaap:CustomerConcentrationRiskMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nCDTG:Customer1Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer2Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer3Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer4Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer5Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Customer1Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer2Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer3Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Customer4Member\nus-gaap:AccountsReceivableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Vendor1Member\nCDTG:PurchaseMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Vendor2Member\nCDTG:PurchaseMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Vendor3Member\nCDTG:PurchaseMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Vendor1Member\nCDTG:PurchaseMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Vendor2Member\nCDTG:PurchaseMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Vendor3Member\nCDTG:PurchaseMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Vendor1Member\nCDTG:PurchaseMember\nus-gaap:CustomerConcentrationRiskMember\n\n2022-01-01\n2022-12-31\n\n0001793895\n\nCDTG:Vendor1Member\nus-gaap:AccountsPayableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Vendor2Member\nus-gaap:AccountsPayableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nCDTG:Vendor1Member\nus-gaap:AccountsPayableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Vendor2Member\nus-gaap:AccountsPayableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nCDTG:Vendor3Member\nus-gaap:AccountsPayableMember\nus-gaap:CustomerConcentrationRiskMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\n2019-10-15\n\n0001793895\n\n2020-12-30\n\n0001793895\n\n2024-04-21\n2024-04-22\n\n0001793895\n\n2024-03-01\n2024-03-26\n\n0001793895\n\n2024-03-26\n\n0001793895\n\n2024-04-01\n2024-04-22\n\n0001793895\n\n2024-05-01\n2024-05-05\n\n0001793895\n\nCDTG:EquityIncentivePlanMember\nus-gaap:SubsequentEventMember\n\n2026-04-17\n\n0001793895\n\nus-gaap:SubsequentEventMember\n\n2026-04-17\n\n0001793895\n\nsrt:ParentCompanyMember\n\n2025-12-31\n\n0001793895\n\nsrt:ParentCompanyMember\n\n2024-12-31\n\n0001793895\n\nsrt:ParentCompanyMember\n\n2025-01-01\n2025-12-31\n\n0001793895\n\nsrt:ParentCompanyMember\n\n2024-01-01\n2024-12-31\n\n0001793895\n\nsrt:ParentCompanyMember\n\n2023-01-01\n2023-12-31\n\n0001793895\n\nsrt:ParentCompanyMember\n\n2023-12-31\n\n0001793895\n\nsrt:ParentCompanyMember\n\n2022-12-31\n\niso4217:USD\n\nxbrli:shares\n\niso4217:USD\n\nxbrli:shares\n\nxbrli:pure\n\niso4217:HKD\n\n \n\nUNITED STATES\n\nSECURITIES AND EXCHANGE\nCOMMISSION\n\nWashington, D.C. 20549\n\n \n\nFORM 20-F\n\n \n\n(Mark One)\n\n \n\n☐\n \nREGISTRATION STATEMENT PURSUANT\nTO SECTION 12(b) OR 12(g) OF THE SECURITIES EXCHANGE ACT OF 1934\n\n  \n\nOR\n\n \n\n☒\n \nANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE\nACT OF 1934\n\n \n\nFor the fiscal year ended December 31, 2025\n\n \n\nOR\n\n \n\n☐\n \nTRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES\nEXCHANGE ACT OF 1934\n\n \n\nFor the transition period from to\n\n \n\nOR\n\n \n\n☐\n \nSHELL COMPANY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES\nEXCHANGE ACT OF 1934\n\n \n\nDate of event requiring this shell company report _____________\n\n \n\nCommission file number: 001-42007\n\n \n\n**CDT Environmental Technology Investment Holdings Limited**\n\n(Exact Name of Registrant as Specified in Its Charter)\n\n \n\n**N/A**\n\n(Translation of Registrant’s Name Into English)\n\n \n\n**Cayman Islands**\n\n(Jurisdiction of Incorporation or Organization)\n\n \n\n**C1, 4th Floor, Building 1, Financial Base, No. 8\nKefa Road**\n\n \n\n**Nanshan District, Shenzhen, China 518057**\n\n(Address of Principal Executive Offices)\n\n \n\n**Yunwu Li\nChief Executive Officer\nC1, 4th Floor, Building 1, Financial Base, No. 8 Kefa Road**\n\n**Nanshan District, Shenzhen, China 518057\nE-mail: liyunwu@cdthb.cn\nTelephone: + 86-0755-86667996**\n\n(Name, Telephone, E-mail and/or Facsimile number and Address of Company Contact Person)\n\n \n\n \n\n \n\nSecurities registered or to be registered pursuant\nto Section 12(b) of the Act:\n\n \n\nTitle of each class\n \nTrading symbol(s)\n \nName of each exchange on which registered\n\n**Class\nA Ordinary Shares, par value $0.0025 per share**\n \n**CDTG**\n \n**Nasdaq Capital Market**\n\n \n\nSecurities registered or to be registered pursuant to Section 12(g) of\nthe Act:\n\n \n\n**None**\n\n(Title of Class)\n\n \n\nSecurities for which there is a reporting obligation pursuant to Section\n15(d) of the Act:\n\n \n\n**None**\n\n(Title of Class)\n\n \n\nIndicate the number of outstanding shares of each\nof the issuer’s classes of capital or common stock as of the close of the period covered by the annual report:\n\n \n\nAs of December 31, 2025, there were 13,525,000 Class\nA ordinary shares issued and outstanding, par value $0.0025 per ordinary share.\n\n \n\nIndicate by check mark if the registrant is a well-known\nseasoned issuer, as defined in Rule 405 of the Securities Act.\n\n \n\n☐\nYes ☒ No\n\n \n\nIf this report is an annual or transition report,\nindicate by check mark if the registrant is not required to file reports pursuant to Section 13 or 15(d) of the Securities Exchange Act\nof 1934.\n\n \n\n☐\nYes ☒ No\n\n \n\nNote - Checking the box above will not relieve any\nregistrant required to file reports pursuant to Section 13 or 15(d) of the Securities Exchange Act of 1934 from their obligations under\nthose Sections.\n\n \n\nIndicate by check mark whether the registrant (1)\nhas filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months\n(or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements\nfor the past 90 days.\n\n \n\n☒\nYes ☐ No\n\n \n\nIndicate by check mark whether the registrant has\nsubmitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (§232.405 of\nthis chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).\n\n \n\n☒\nYes ☐ No\n\n \n\nIndicate by check mark whether the registrant is a large accelerated filer,\nan accelerated filer, a non-accelerated filer, or an emerging growth company. See definition of “large accelerated filer,”\n“accelerated filer,” and “emerging growth company” in Rule 12b-2 of the Exchange Act.\n\n \n\nLarge accelerated filer ☐\n \nAccelerated filer ☐\n \nNon-accelerated filer ☒\n \nEmerging growth company ☒\n\n \n\nIf an emerging growth company that prepares its financial\nstatements in accordance with U.S. GAAP, indicate by check mark if the registrant has elected not to use the extended transition period\nfor complying with any new or revised financial accounting standards† provided pursuant to Section 13(a) of the Exchange Act. ☐\n\n \n\n \n\n \n\n † The term “new or revised financial\naccounting standard” refers to any update issued by the Financial Accounting Standards Board to its Accounting Standards Codification\nafter April 5, 2012.\n\n \n\nIndicate by check mark whether the registrant has\nfiled a report on and attestation to its management’s assessment of the effectiveness of its internal control over financial reporting\nunder Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its\naudit report. ☐\n\n \n\nIf securities are registered pursuant to Section 12(b)\nof the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of\nan error to previously issued financial statements. ☐\n\n \n\nIndicate by check mark whether any of those error\ncorrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant’s\nexecutive officers during the relevant recovery period pursuant to §240.10D-1(b). ☐\n\n \n\nIndicate by check mark which basis of accounting the\nregistrant has used to prepare the financial statements included in this filing:\n\n \n\nU.S. GAAP ☒\n \nInternational Financial Reporting Standards as issued\n\nby the International Accounting Standards Board ☐\n \nOther ☐\n\n \n\nIf “Other” has been checked in response\nto the previous question, indicate by check mark which financial statement item the registrant has elected to follow.\n\n \n\n☐"}