Skip to content

Repository files navigation

ZeroCarbon Node.js SDK

Official Node.js/TypeScript client for ZeroCarbon.codes - India's leading Carbon Accounting & Offsetting API.

Installation

npm i zerocarbon-nodejs-sdk
# or
yarn add @zerocarbon/sdk

Quick Start

const{ ZeroCarbon }=require('@zerocarbon/sdk');// Initialize clientconstclient=newZeroCarbon({apiKey: 'YOUR_API_KEY'});// Calculate flight emissionsconstemissions=awaitclient.calculate.flight({origin: 'DEL',destination: 'BOM',cabinClass: 'economy'});console.log(`Emissions: ${emissions.emissions_kg_co2e} kg CO2e`);// Get offset recommendationsconstoffsets=awaitclient.offsets.getRecommendations({emissionsKgCo2e: emissions.emissions_kg_co2e,preferredRegion: 'India'});console.log(`Top project: ${offsets.recommendations[0].name}`);// Purchase and retire creditsconsttransaction=awaitclient.offsets.purchase({projectId: offsets.recommendations[0].project_id,quantityKgCo2e: emissions.emissions_kg_co2e,retirementReason: 'Business flight offsetting'});console.log(`Certificate: ${transaction.certificate_url}`);

TypeScript Support

Full TypeScript support with type definitions included:

import{ZeroCarbon,FlightEmissions}from'@zerocarbon/sdk';constclient=newZeroCarbon({apiKey: 'YOUR_API_KEY'});constemissions: FlightEmissions=awaitclient.calculate.flight({origin: 'DEL',destination: 'BOM'});

Features

  • ✅ Calculate emissions from flights, electricity, fuel, and more
  • ✅ AI-powered spend-based emission matching
  • ✅ Carbon offset recommendations
  • ✅ Purchase and retire carbon credits
  • ✅ Generate BRSR-compliant reports
  • ✅ Webhook support
  • ✅ Test mode for development
  • ✅ Full TypeScript support

Examples

Calculate Electricity Emissions

constemissions=awaitclient.calculate.electricity({amountKwh: 1000,country: 'IN',state: 'Maharashtra'});// Returns: 820 kg CO2e

Smart Spend Matching

constemissions=awaitclient.calculate.spend({amount: 100000,currency: 'INR',category: 'electricity',description: 'Monthly office electricity bill'});// AI automatically matches to emission factors

Generate BRSR Report

constreport=awaitclient.brsr.generateReport({companyId: 'comp_123',financialYear: '2024-25',format: 'pdf'});console.log(report.download_url);

Register Webhook

constwebhook=awaitclient.webhooks.register({url: 'https://your-app.com/webhooks/carbon',events: ['offset.completed','offset.failed']});console.log(`Webhook secret: ${webhook.secret}`);

Test Mode

Enable test mode to avoid real charges:

constclient=newZeroCarbon({apiKey: 'test_YOUR_API_KEY',testMode: true});

Error Handling

try{constemissions=awaitclient.calculate.flight({origin: 'DEL',destination: 'BOM'});}catch(error){console.error('API Error:',error.message);}

License

MIT License - see LICENSE file for details.

Support

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages