Build on qlim8
Programmatic access to carbon accounting data. Integrate via REST API, connect AI agents with MCP, or use the TypeScript and Python SDKs.
What do you want to build?
Choose an integration path based on your use case.
REST API v1
Full programmatic access to emissions, activities, reports, targets, value chain, scenarios, data sources, quota, categories, PCF, departments, attestations, notifications, and webhooks. Bearer auth, RFC 9457 errors, cursor pagination, idempotent writes.
MCP Server AI
Connect Claude, ChatGPT, Claude Code, Cursor, or any MCP-compatible agent directly to your carbon data — 31 curated tools, 3 resources, and 3 prompts, no custom code required.
TypeScript SDK ↗
Typed API client for Node.js and the browser. Full type inference, auto-generated from the OpenAPI spec.
npm install @qlim8/api-clientPython SDK ↗
Sync and async client with Pydantic models. Works with FastAPI, Django, or standalone scripts.
pip install qlim8Webhooks
Subscribe to report.generation_completed, supplier.connected, target.created, and more. HMAC-SHA256 signed with automatic retry.
Migration guide
Moving from the legacy X-API-Key endpoints? Covers auth header, error format, pagination, and webhook setup — sunset date 30 Sep 2027.
Guides
Task-focused references — every example in curl, TypeScript, and Python.
Quickstart
Make your first API call in under 60 seconds.
# 1. Mint an API key at app.qlim8.com → Collectors → API Keys
# Select scopes: emissions:read
# 2. Fetch your emissions summary for 2024
curl "https://api.qlim8.com/api/v1/emissions/summary?from=2024-01-01T00:00:00Z&to=2024-12-31T23:59:59Z" \
-H "Authorization: Bearer qk_live_<your-key>"
# Response
{
"total_co2e_kg": 142300.5,
"by_scope": { "1": 12000, "2": 45000, "3": 85300.5 },
"entry_count": 847
}
Authentication
All endpoints require a Bearer token. Mint keys at Collectors → API Keys in the app.
Authorization: Bearer qk_live_<64-hex>
Full access on production data. Rate limit: 600 read / 60 write req/min per key.
Authorization: Bearer qk_sandbox_<64-hex>
Isolated environment, no production data. 10× stricter rate limits.
Each API key carries a set of scopes (e.g. emissions:read, reports:generate, webhooks:manage). Request only the scopes your integration needs — the principle of least privilege applies. The full scope list is in the API reference.