Enterprise feature
BI Export for Power BI, Tableau, and Excel
One OData v4 endpoint. Six entity sets. Audit-proof response headers that tie every number back to a row in the CarbonTrace audit log. Connect your favourite BI tool in under ten minutes.
Endpoint
https://carbontrace.cloud/api/v1/odataAuthenticate with a CarbonTrace API key (starts with ct_live_) that has BI export enabled. Use HTTP Basic auth: API key as username, empty password. Or Authorization: Bearer ct_live_….
Four persona dashboards
Build these dashboards in Power BI or Tableau using the same data model we ship with our in-app widgets (N70).
CIO
Total IT footprint, YoY trend, top emitting categories, spend-to-carbon ratio.
- •Total footprint (kg CO₂e)
- •YoY growth %
- •Cost per kg CO₂e
ESG Officer
SBTi progress vs. trajectory, CSRD ESRS E1 disclosures, scope breakdown.
- •SBTi pace gap
- •Scope 3 Cat. 1 + 2 + 11
- •CSRD-ready tables
Procurement
Supplier comparison, reuse vs. buy new, avoided emissions from refurb.
- •Avg. kg CO₂e per device
- •Reuse savings %
- •Top suppliers
Audit
Methodology trail, confidence distribution, data-source coverage.
- •% rows with high confidence
- •Methodology card coverage
- •Source mix (Blancco / PCF / parametric)
Quickstart
Power BI Desktop
- Open Power BI Desktop → Get Data → OData feed
- URL:
https://carbontrace.cloud/api/v1/odata - Auth: Basic. Username = your API key. Leave password empty.
- Select the entity sets you want and click Load.
- Build visuals. Click Refresh to pull latest data.
Total Footprint (kg) = SUM( Assets[total_kg_co2e] )
YoY Growth % = VAR curr = CALCULATE( [Total Footprint (kg)], YEAR(Assets[purchase_date]) = YEAR(TODAY()) ) VAR prev = CALCULATE( [Total Footprint (kg)], YEAR(Assets[purchase_date]) = YEAR(TODAY())-1 ) RETURN DIVIDE( curr - prev, prev )
Tableau Desktop
- Connect → Web Data Connector
- URL:
https://carbontrace.cloud/connectors/tableau/ - Paste the OData endpoint and your API key, click Connect to Tableau
- All six entity sets appear as tables — drag to the canvas.
Excel
- Data → Get Data → From Other Sources → From OData Feed
- URL:
https://carbontrace.cloud/api/v1/odata - Auth: Basic. Username = API key, password blank.
- Select tables, Load to worksheet. Power Query refreshes on demand.
Entity sets
Assets
Denormalized asset fact — every device in your inventory with full carbon breakdown.
Certificates
Issued CO₂ certificates — public claims + compliance audit trail.
Products
Your org's product library.
EmissionFactors
Emission factors visible to your org (platform + org-specific).
SbtiTargets
Science-Based Targets — baselines, targets, and trajectories.
MonthlyEmissions
Pre-rolled monthly emissions by category and country — ready for time series charts.
Supported filter syntax
A safe subset of OData v4. Unsupported operators return 501 Not Implemented with the list of what is supported in the response body — no silent failures.
| Supported | Example |
|---|---|
| eq | category eq 'laptop' |
| ne | status ne 'retired' |
| gt / ge / lt / le | total_kg_co2e gt 200 |
| and / or | country eq 'BE' and category eq 'laptop' |
| startswith() | startswith(department, 'Finance') |
| contains() | contains(product_name, 'Pro') |
| endswith() | endswith(serial_number, 'X1') |
| Unsupported | Reason |
|---|---|
| $expand | Entities are pre-denormalized. Use MonthlyEmissions for rollups. |
| $apply | Server-side aggregation not available in v1 — aggregate client-side. |
| $batch | BI export is strictly read-only. Use a single request per entity. |
| any() / all() / has() | Collection predicates are not supported in v1. |
| $compute / $search | Not in v1. Use $select + client-side compute. |
Forensic proof headers
Every OData response carries three headers that link the returned rows to the CarbonTrace audit log. Use them in compliance workflows to prove that a given dashboard value came from a specific, tamper-evident query.
X-CarbonTrace-ProofID of the audit_log row recording this query. Hash-chained per N128.X-CarbonTrace-Proof-HashSHA256 of the returned rows (deterministic: rows already ordered).X-CarbonTrace-Data-FreshnessISO timestamp of the latest underlying asset/calculation update.Sandbox mode
Test your dashboards before pushing real data. Use a sandbox key (ct_test_…) against the same OData endpoint — you get 50 fictitious assets, 20 certificates, 15 products, and 24 months of rolled-up emissions for an org called SandboxCorp. All responses are deterministic, so dashboards render identically for every customer demo.
Rate limits
BI tools burn many small calls per refresh. BI export uses a dedicated bucket of 500,000 requests/day and 2,000/minute per API key, separate from the normal Enterprise API quota (100k/day). Sandbox keys share a smaller 20k/day bucket.
FAQ
- Why no Looker support?
- LookML doesn't speak OData. A native Looker block is planned as N86b — subscribe via Settings → Notifications when you want to be alerted.
- Can I write data back?
- No. BI export is read-only. POST/PUT/PATCH/DELETE return 405. Use the regular REST API for mutations.
- How do I schedule a refresh?
- On the BI-tool side. Power BI Service, Tableau Server, and Excel via Power Query can all run OData refreshes on a schedule.
- Is the data cached?
- No. Every OData response reads directly from live Postgres views with row-level security. No materialised view staleness.
- What about GDPR / data residency?
- All data stays in eu-west-1. No third-party cloud export. Your API key is bound to your org — cross-org queries are blocked at the row-level security layer.
- Can I connect from my own ETL tool?
- Yes. OData v4 is a W3C-standard protocol. Any HTTP client that can speak OData (or just JSON) works. See the OpenAPI spec for the full contract.
Ready to connect your BI tool?
Enable BI export on an API key in Settings and you're ready to go.