Carbon Accounting API
A real Scope 1/2/3 carbon ledger with automation on top: a seeded emission-factor library converts every activity to CO2e at log time, a public REST API lets your systems push data automatically, and the agent writes GHG-Protocol-style reports with hotspots and quantified reductions. Factors are indicative — verify before regulatory filings.
The Carbon Accounting API agent (agent #20, Operations + Finance) replaces the emissions spreadsheet with a structured, auditable ledger. Activities arrive four ways — the console form, CSV import, the agent parsing a pasted list, or a key-authenticated public REST API your ERP/logistics/finance systems can POST to — and every activity is priced at log time as CO2e = quantity × emission factor, stored with its factor id. The built-in library seeds 42 indicative factors (DEFRA/EPA/IEA-derived, 2024 values) across all three GHG-Protocol scopes, region-aware where it matters, and your custom factors override it. Scheduled runs produce GHG-style reports: scope totals in tCO2e, category breakdown, 12-month trend, top hotspots, and exactly 3 reduction recommendations grounded in your actual top sources. Every number carries the disclaimer: factors are indicative — verify against current DEFRA/EPA/IEA datasets before regulatory or audited filings.
What it does
At its core is a factor-resolved ledger. When an activity is logged — diesel_litre, electricity_kwh, flight_longhaul_km, spend_cloud_it_usd — the factor library resolves the right coefficient with a strict precedence: your org's custom factor for the exact region, then your custom GLOBAL factor, then the seeded factor for the region, then the seeded GLOBAL one (ties broken by most recent valid_year). Units are validated, not coerced: pass 'kWh' against a litre-based factor and the row is rejected with the expected unit, never silently miscomputed. The seeded library covers Scope 1 fuels and vehicles (diesel 2.66 kgCO2e/litre, petrol 2.31, refrigerant R410a leakage at GWP 2088/kg), Scope 2 grid electricity keyed by region (UK 0.207, US 0.369, EU 0.23, world 0.436 kgCO2e/kWh — location-based), and Scope 3 travel (long-haul flights 0.148 kg per passenger-km, economy including radiative forcing), hotels, freight (air 1.13 vs sea 0.016 kg per tonne-km), spend-based EEIO categories (kgCO2e per USD for cloud/IT, professional services, catering, and more), waste, water, and remote work.
Around the ledger sit the agent and the API. The agent answers what-if questions with carbon_estimate (compute-only, nothing persisted), logs activities you describe in plain text after resolving them via carbon_factors_search, and on schedule produces the report: scope 1/2/3 totals to 2dp tCO2e, category shares, the zero-filled 12-month trend with month-on-month change, the top-8 hotspots, and exactly 3 prioritized recommendations generated from the hotspot categories with the tonnage quantified (padded with sensible generics when data is thin) — optionally pushing the top action to the Operations Manager as a task. The public API (/api/v1/carbon/*) is CORS-enabled and key-authenticated: write-only 'ingest' keys (safe to embed in scripts) can POST single activities or batches up to 100 and get computed CO2e back per item; 'full' keys can also read the ledger, footprint aggregates, and the factor library. Requests are metered (carbon_api_ingest per inserted item, carbon_api_read per read) and require an active subscription — the API returns 402 otherwise.
How it works
Setting it up — owner / admin
- 1Subscribe and open the Carbon consoleSubscribe from the marketplace and deploy from /dashboard/agents/[id]. The console at /dashboard/carbon has five tabs — Overview (charts), Activities, Factors, API, and Reports. No external tools are required; the factor library is built in.
- 2Set region, boundary, and contextIn config, pick the Reporting region (UK / US / EU / Global — it selects the right grid-electricity and hotel factors), state your Organisational boundary (e.g. 'operational control — HQ + 2 offices', cited in every report), and describe the company (offices, fleet, travel patterns) so parsed logging resolves the right activity types.
- 3Seed the ledgerLog a few activities in the Activities tab or import a CSV (header: occurred_on, activity_type, quantity, unit, description; up to 1,000 rows). Browse the Factors tab to see valid activity types — and add custom factors (e.g. your renewable tariff's supplier mix) that override the seeded library.
- 4Wire up the APIIn the API tab, create a key — choose 'ingest' scope for write-only keys safe to embed in scripts, or 'full' for read access too; the plaintext key (mnki_ingest_… / mnki_live_…) is shown once and stored hashed. Then POST activities from your systems: curl -X POST https://<your-domain>/api/v1/carbon/activities -H 'Authorization: Bearer <key>' -H 'content-type: application/json' -d '{"activity_type":"diesel_litre","quantity":120,"occurred_on":"2026-07-01"}' — the response returns the computed co2e_kg and factor_id. Batches: {"activities":[…]} up to 100 items, each validated individually. Full-scope keys can also GET /activities, /footprint?from=&to=, and /factors.
- 5Run the first report, then scheduleHit Run now — the agent aggregates the footprint, trend, and hotspots and saves the first GHG-style report to the Reports tab. Monthly is the natural schedule; ingestion (API/CSV/console) is continuous regardless.
- 6Choose autonomyReport only, or 'Push the top reduction action to the Operations Manager' — each scheduled report's #1 recommendation then lands as an ops task with the expected saving attached.
Using it day to day — your team
- 1Watch the OverviewThe console Overview at /dashboard/carbon shows the live footprint charts — monthly trend, scope split, and hotspots — fed by everything logged through the console, CSV, API, and agent.
- 2Log as you goAdd activities in the Activities tab, or just tell the agent ('3 flights London–New York in business, 400 litres of diesel for the vans') — it resolves each line against the factor library, logs the valid ones with computed CO2e, and tells you exactly why any line was rejected.
- 3Ask emissions questionsChat uses read-only tools plus estimate: 'what was Q2 Scope 2?', 'what's our biggest source?', 'what would switching that freight to sea save?' — every answer computed from the real ledger and factors, with the disclaimer attached.
- 4Check the factor behind any numberEvery activity row stores its factor id; the Factors tab shows the coefficient, unit, scope, region, and source for each — so any CO2e figure can be traced to quantity × factor in one click.
- 5Read the monthly reportEach scheduled run saves a report to the Reports tab: scope totals in tCO2e, category shares, the trend with month-on-month change, hotspots, and 3 prioritized reductions with quantified expected savings — board-ready.
Use cases
What to expect
- A live Scope 1/2/3 footprint dashboard fed continuously by console, CSV, API, and agent-parsed logging
- Every activity priced at log time (CO2e = quantity × factor, 3dp) and stored with its factor id — traceable, auditable rows, never invented totals
- A 42-factor seeded library (region-aware electricity and hotels, flights with radiative forcing, freight, spend-based EEIO) that your custom factors override
- A key-authenticated public REST API (ingest and full scopes, batches up to 100, per-item validation, metered) for system integrations
- Scheduled GHG-Protocol-style reports — scope totals, trend, hotspots, and exactly 3 quantified reduction recommendations — always carrying the indicative-factors disclaimer
Metrics to watch
- Total tCO2e and the month-on-month change — the headline pair every report leads with
- Scope split — Scope 2 is usually the fastest to cut (renewable tariff), Scope 3 usually the biggest
- Top sources — the hotspot list the reduction recommendations are generated from; watch the #1 shrink after acting
- Coverage — activities logged per month by source (console / csv / api / agent); rising API share means the ledger is automating itself
- API usage — carbon_api_ingest and carbon_api_read counts this month against your tier's request limits
- Custom-factor share — how much of your footprint is priced on your own verified factors vs the indicative seeded ones (the audit-readiness dial)