Platform · Layer 04

Whatever the dashboard does, the API does too.

The web app is a client of the same API you get. Query inventory, execute purchases, retire credits, and stream verification events into your own systems.

99.95%
Uptime SLA
3
Official SDKs
12 mo
Deprecation window
Free
Sandbox
Built for integration

Versioned, documented, and left alone.

Versions live in the URL, with a twelve-month minimum deprecation window and notice at twelve, six and one month out. Breaking changes only land in a new major version, so a v1 endpoint will behave in five years exactly as it does now.

Auth
OAuth 2.0
SDKs
JS · Python · Go
Read limit
1,000 / min
Write limit
60 / min
Request access
# Retire credits against a target
POST /v1/retirements

{
  "portfolio_id": "pf_02H8K4M1",
  "amount_tco2": 1250,
  "beneficiary": "Acme Corp",
  "vintage_year": 2026
}

# 200 OK
{
  "retirement_id": "ret_02H8L9Q3",
  "status": "complete",
  "attestation_url": "https://…"
}
Questions

What engineering teams ask

Issuances, retirements, readings and attestations all read unauthenticated. A key is needed for writes and for your own portfolio endpoints, but working through the public record needs nothing from us.

Bulk retirements queue and hand back a job ID instead of blocking. Poll the job endpoint if you must, but the webhook is the better route.

Free, unlimited, and stocked with synthetic sites and credits. Keys issue instantly and never touch production data or a real credit.

Very likely. We keep integrations with the common carbon accounting platforms, and webhooks push retirement and verification events as they land, so nothing has to poll.

Get started

Sandbox keys come back instantly

Build against synthetic data, then move to production when the integration is ready. Nobody will make you sit through a call first.