Carbon-Aware API

Developer tools — pay-per-call in USDC · Swagger docs

Endpoints

EndpointDescriptionCredits
POST /v1/keys/registerCreate your API key (free)
GET /v1/credits/balanceCheck remaining credits
GET /v1/carbon-intensityReal-time gCO₂eq/kWh — zones GB, FR1 cr
POST /v1/webhook/transformJinja2 template transform + optional forward1 cr
POST /v1/fake/generateSynthetic test data via Faker (6 locales)1 cr
GET /v1/oracle/{asset}Crypto price USD+EUR+24h change (BTC, ETH, MATIC…)2 cr
GET /v1/oracle/gas/{chain}Gas price in Gwei — Polygon or Ethereum2 cr
POST /v1/chain/gateVerify ERC20/ERC721/ERC1155 balance on Polygon3 cr
POST /v1/prompt/guardPrompt injection detector (11 patterns + Mistral)5 cr
POST /v1/text/anonymizePII detector/redactor — RGPD compliant8 cr
POST /v1/review/codeAI code review — issues, score, recommendations10 cr
POST /v1/debug/explainStack trace explainer — root cause + fix10 cr
POST /v1/llm/completeGeneric LLM completion via Mistral (prompt or chat)1 cr/100 tok
POST /v1/pdf/extractPDF → structured JSON (invoice, CV, table, raw)20 cr

Getting started

1
Register — get your API key instantly, no account needed
curl -X POST https://carbon.norm.ovh/v1/keys/register \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com"}'
2
Buy credits — send USDC, USDT, or MATIC/POL on Polygon, email your tx hash
1 USDC = 200 credits · wallet: 0x11bF0A45d5228A48Fb29460f10Eb50Cf49205196
Then email sofia.luz@norm.ovh with your tx hash + api_key — our bot credits your account automatically
3
Call any tool — pass your key in the X-API-Key header
curl https://carbon.norm.ovh/v1/oracle/ETH \
  -H "X-API-Key: sk-ca-..."

Example calls

Replace sk-ca-... with your API key.

Carbon intensity — French grid (real-time)

curl "https://carbon.norm.ovh/v1/carbon-intensity?zone=FR"   -H "X-API-Key: sk-ca-..."
# → {"zone":"FR","carbon_intensity_gco2eq_kwh":42.1,...}

ETH price (USD + 24h change)

curl "https://carbon.norm.ovh/v1/oracle/ETH"   -H "X-API-Key: sk-ca-..."

Generate 10 synthetic users (French locale)

curl -X POST "https://carbon.norm.ovh/v1/fake/generate"   -H "X-API-Key: sk-ca-..."   -H "Content-Type: application/json"   -d '{"fields":["name","email","address"],"locale":"fr_FR","count":10}'

Explain a stack trace

curl -X POST "https://carbon.norm.ovh/v1/debug/explain"   -H "X-API-Key: sk-ca-..."   -H "Content-Type: application/json"   -d '{"trace":"TypeError: Cannot read properties of undefined (reading map)
  at App.js:42"}'

Use case — Green CI pipeline

Run heavy builds only when the grid is clean. One API call, no SDK, no account setup beyond registration.

#!/bin/bash
INTENSITY=$(curl -s "https://carbon.norm.ovh/v1/carbon-intensity?zone=FR"   -H "X-API-Key: sk-ca-..." | jq .carbon_intensity_gco2eq_kwh)

if (( $(echo "$INTENSITY < 100" | bc -l) )); then
  echo "Grid green (${INTENSITY} gCO2/kWh) — running build"
  make heavy-build
else
  echo "Grid too dirty (${INTENSITY} gCO2/kWh) — skipping"
  exit 1
fi