# ibm-envizi-emissions-api-nodejs-sdk **Repository Path**: mirrors_ibm/ibm-envizi-emissions-api-nodejs-sdk ## Basic Information - **Project Name**: ibm-envizi-emissions-api-nodejs-sdk - **Description**: IBM Envizi - Emissions API Node.js SDK - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-09 - **Last Updated**: 2026-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IBM Envizi - Emissions API Node.js SDK [IBM Envizi - Emissions API](https://www.ibm.com/products/envizi/emissions-api) (Emissions API) is a managed factor database and calculation engine for embedding greenhouse gas (GHG) emissions calculations into operational decision making. The `emissions-api-sdk` is a Node.js SDK for using Emissions API in your projects. ## Sign up To get started with the Emissions API follow these steps: - Sign up at the [IBMid sign up](https://www.ibm.com/account/reg/us-en/signup?formid=urx-54311) page. - You will be sent an invite email to join to create an account. - Read the [Introduction](https://developer.ibm.com/apis/catalog/ghgemissions--ibm-envizi-emissions-api/Introduction) page to get an overview of the Emissions API. ## Installation ```bash npm install emissions-api-sdk # or yarn install emissions-api-sdk ``` ## Quick Start ```javascript import { Client, LocationEmission } from 'emissions-api-sdk'; // Initialize client await Client.getClient({ patToken: process.env.ENVIZI_PAT_TOKEN, clientId: process.env.ENVIZI_CLIENT_ID }); // Calculate emissions const result = await LocationEmission.calculate({ "location": { "country": "USA", "stateProvince": "california" }, "activity": { "type": "electricity", "value": 1, "unit": "kWh" } }); ``` ## Metadata APIs The Metadata API provides a unified way to query metadata for any endpoint: ```javascript import { Metadata } from 'emissions-api-sdk'; // Get types for any endpoint (defaults to 'calculation') const allTypes = await Metadata.getTypes(); const locationTypes = await Metadata.getTypes('location'); const stationaryTypes = await Metadata.postTypes('stationary'); // Get areas for any endpoint const allAreas = await Metadata.getArea(); const mobileAreas = await Metadata.getArea('mobile'); const fugitiveAreas = await Metadata.postArea('fugitive'); // Get units for any type const allUnits = await Metadata.getUnits(); // All units const typeUnits = await Metadata.getUnits('Natural Gas'); // Units for specific type ``` **Supported endpoints**: `calculation`, `location`, `stationary`, `mobile`, `fugitive`, `factor`, `search`, `transportation-and-distribution`, `economic-activity`, `real-estate` ## Type Recommender API Search for activity types using semantic search with optional unit and scope filtering. Reranking is enabled by default; set `enableReranker` to `false` to use semantic similarity ordering without cross-encoder reranking. Type results can include `scope`, the distinct GHG Protocol scopes associated with each activity type. ```javascript import { TypeRecommender } from 'emissions-api-sdk'; // Basic search with natural language const types = await TypeRecommender.search({ "location": { "country": "usa" }, "activity": { "search": "employee travelled by electric vehicle" } }); // Search with unit filter const typesWithUnit = await TypeRecommender.search({ "location": { "country": "usa" }, "activity": { "search": "office consumed electricity", "unit": "kWh" } }); // Search without cross-encoder reranking const typesWithoutReranker = await TypeRecommender.search({ "location": { "country": "usa" }, "activity": { "search": "office consumed electricity" }, "enableReranker": false }); // Search with scope filter const typesWithScope = await TypeRecommender.search({ "location": { "country": "usa" }, "activity": { "search": "heating with natural gas", "scope": "1" } }); // Search with pagination and filters const typesWithAll = await TypeRecommender.search({ "location": { "country": "usa", "stateProvince": "california" }, "time": { "date": "2025-06-10" }, "activity": { "search": "purchased electricity for data center", "unit": "MWh", "scope": "2" }, "pagination": { "page": 1, "size": 10 } }); ``` ## Factor Search API Search for emission factors with optional unit and scope filtering. Reranking is enabled by default; set `enableReranker` to `false` to use semantic similarity ordering without cross-encoder reranking. ```javascript import { Factor } from 'emissions-api-sdk'; // Basic search with natural language const results = await Factor.search({ "time": { "date": "2020-06-10" }, "activity": { "search": "employee business travel by air" }, "location": { "country": "USA" } }); // Search with unit filter const resultsWithUnit = await Factor.search({ "activity": { "search": "office electricity consumption", "unit": "kWh" }, "location": { "country": "USA" } }); // Search without cross-encoder reranking const resultsWithoutReranker = await Factor.search({ "activity": { "search": "employee business travel by air" }, "location": { "country": "USA" }, "enableReranker": false }); // Search with scope filter const resultsWithScope = await Factor.search({ "activity": { "search": "facility heating with natural gas", "scope": "1" }, "location": { "country": "USA" } }); // Search with both unit and scope const resultsWithBoth = await Factor.search({ "activity": { "search": "purchased electricity for manufacturing", "unit": "MWh", "scope": "2" }, "location": { "country": "USA", "stateProvince": "california" } }); ``` ### Get Organization Usage ```javascript import { Usage } from 'emissions-api-sdk'; // Retrieves current billing period or historical usage data for the Organization // History Flag to retrieve current billing or historical usage data. const usage = await Usage.getUsage(true); ``` ## Audit Log API Controls whether the organization's API requests and responses are stored for auditing. Organizations can disable storage if they don't need their API calls to be audited. ```javascript import { AuditLog } from 'emissions-api-sdk'; // Get current configuration const config = await AuditLog.getConfig(); console.log(config); // { logRequest: true, logResponse: true } // Disable storage await AuditLog.update({ logRequest: false, logResponse: false }); // Enable only request storage await AuditLog.update({ logRequest: true, logResponse: false }); ``` ## Authentication The SDK supports three authentication methods: ### Personal Access Token (PAT) (Recommended) ```javascript await Client.getClient({ patToken: process.env.ENVIZI_PAT_TOKEN, clientId: process.env.ENVIZI_CLIENT_ID }); ``` **Note:** When using PAT token, do not provide `orgId`. ### API Key ```javascript await Client.getClient({ apiKey: process.env.ENVIZI_API_KEY, clientId: process.env.ENVIZI_CLIENT_ID, orgId: process.env.ENVIZI_ORG_ID }); ``` ### Pre-generated JWT Token ```javascript await Client.getClient({ token: process.env.JWT_TOKEN, clientId: process.env.ENVIZI_CLIENT_ID }); ``` ## Documentation For detailed [documentation](https://ibm.github.io/ibm-envizi-emissions-api-nodejs-sdk/), see: - [Getting Started](https://ibm.github.io/ibm-envizi-emissions-api-nodejs-sdk/getting_started.html) - [Authentication](https://ibm.github.io/ibm-envizi-emissions-api-nodejs-sdk/authentication.html) - [Client Configuration](https://ibm.github.io/ibm-envizi-emissions-api-nodejs-sdk/client.html) - [API Reference](https://ibm.github.io/ibm-envizi-emissions-api-nodejs-sdk/reference.html) Other resources: - [APIHub](https://developer.ibm.com/apis/catalog/ghgemissions--ibm-envizi-emissions-api/api/API--ghgemissions--authentication) - API documentation (OpenAPI) - [Tutorials & Sample Applications](https://ibm.github.io/ibm-envizi-emissions-api/) - [IBM Envizi for Excel](https://ibm.github.io/ibm-envizi-emissions-api-excel-addin) - Emissions API Excel Add-in. ## License This project is licensed under the terms of the [LICENSE](LICENSE) file.